package bsearch.space;
import org.nlogo.util.MersenneTwisterFast;
/** For any parameter that is fixed for the search.
*/
public strictfp class ConstantSpec extends ParameterSpec {
private Object obj;
public ConstantSpec(String name, Object obj) {
super(name);
this.obj = obj;
}
// We only ever return the same object.
@Override
public Object generateRandomValue(MersenneTwisterFast rng) {
return obj;
}
/**
* Always returns the same constant value of this parameter - no mutation possible.
*/
@Override
public Object mutate(Object obj, double mutStrength, MersenneTwisterFast rng) {
return obj;
}
@Override
public int choiceCount()
{
return 1 ;
}
@Override
public String toString()
{
return "[ \"" + name + "\" " + obj + " ]";
}
@Override
public Object getValueFromChoice(long choice, long maxNumChoices) {
return obj;
}
@Override
public long getChoiceIndexFromValue(Object val, long maxNumChoices) {
return 0;
}
}