/**
*
*/
package eu.quanticol.carma.simulator.grr;
import java.util.Arrays;
import java.util.function.Function;
/**
* @author loreti
*
*/
public class Configuration {
private Object[] data;
public Configuration( int size ) {
this.data = new Object[size];
}
public Configuration( Object ... data ) {
this.data = data;
}
public <T> T get( Class<T> clazz , int idx ) {
return clazz.cast(data[idx]);
}
public Configuration copy() {
return new Configuration( Arrays.copyOf(data, data.length) );
}
public boolean satisfy( Function<Configuration,Boolean> predicate ) {
try {
return predicate.apply(this);
} catch ( Exception e ) {
return false;
}
}
@Override
public int hashCode() {
return Arrays.hashCode(data);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Configuration) {
return (this==obj)||(Arrays.deepEquals(this.data, ((Configuration) obj).data));
}
return false;
}
@Override
public String toString() {
return Arrays.deepToString(data);
}
}