diff options
Diffstat (limited to 'src/jcgp/backend/resources/ModifiableResources.java')
-rw-r--r-- | src/jcgp/backend/resources/ModifiableResources.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/jcgp/backend/resources/ModifiableResources.java b/src/jcgp/backend/resources/ModifiableResources.java new file mode 100644 index 0000000..3e6b55e --- /dev/null +++ b/src/jcgp/backend/resources/ModifiableResources.java @@ -0,0 +1,42 @@ +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; + } + +} |