aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/modules/Module.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/backend/modules/Module.java')
-rw-r--r--src/jcgp/backend/modules/Module.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/jcgp/backend/modules/Module.java b/src/jcgp/backend/modules/Module.java
index b53184e..a4d36c1 100644
--- a/src/jcgp/backend/modules/Module.java
+++ b/src/jcgp/backend/modules/Module.java
@@ -3,6 +3,7 @@ package jcgp.backend.modules;
import java.util.ArrayList;
import jcgp.backend.parameters.Parameter;
+import jcgp.backend.resources.Resources;
/**
* This class defines the expected behaviour of a module. Generally, modules
@@ -15,6 +16,9 @@ import jcgp.backend.parameters.Parameter;
* In addition, implementations of {@code Module} should specify a module name
* in their constructor using {@code setName()}. If a name is not provided,
* the simple name of the class will be used.
+ * <br>
+ * All modules, by definition, contain a reference to the experiment's resources, which
+ * must be passed at construction. The resources should be accessed with {@code getResources()}.
*
* @see Parameter
* @author Eduardo Pedroni
@@ -24,6 +28,17 @@ public abstract class Module {
private ArrayList<Parameter<?>> localParameters = new ArrayList<Parameter<?>>();
private String name = getClass().getSimpleName();
+ private Resources resources;
+
+ /**
+ * Makes a new instance of this class. This should never
+ * be called directly, and should instead be used by subclasses.
+ *
+ * @param resources a reference to the experiment's resources.
+ */
+ protected Module(Resources resources) {
+ this.resources = resources;
+ }
/**
* This method is used by the GUI in order to build visual
@@ -66,6 +81,13 @@ public abstract class Module {
this.name = name;
}
+ /**
+ * @return the experiment's resources.
+ */
+ protected Resources getResources() {
+ return resources;
+ }
+
@Override
public String toString() {
return name;