package jcgp.backend.resources; import jcgp.backend.resources.parameters.BooleanParameter; import jcgp.backend.resources.parameters.DoubleParameter; import jcgp.backend.resources.parameters.IntegerParameter; /** * * This subclass of Resources allows modifications to be made. * A read-only cast of this class is passed to modules for safety, * and only classes with access to a JCGP instance may modify * the resources. * * @author eddy * */ public class ModifiableResources extends Resources { public ModifiableResources() { super(); } public void set(String key, Object value) { if (parameters.get(key) instanceof IntegerParameter) { ((IntegerParameter) parameters.get(key)).set(((Integer) value).intValue()); } else if (parameters.get(key) instanceof DoubleParameter) { ((DoubleParameter) parameters.get(key)).set(((Double) value).doubleValue()); } else if (parameters.get(key) instanceof BooleanParameter) { ((BooleanParameter) parameters.get(key)).set(((Boolean) value).booleanValue()); } } public void setFunctionSet(int index) { functionSet = functionSets[index]; set("arity", functionSet.getMaxArity()); } public void setConsole(Console console) { this.console = console; } }