diff options
Diffstat (limited to 'src/jcgp/backend/population/MutableElement.java')
-rw-r--r-- | src/jcgp/backend/population/MutableElement.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/jcgp/backend/population/MutableElement.java b/src/jcgp/backend/population/MutableElement.java new file mode 100644 index 0000000..8548e63 --- /dev/null +++ b/src/jcgp/backend/population/MutableElement.java @@ -0,0 +1,34 @@ +package jcgp.backend.population; + +public interface MutableElement { + + /** + * This method sets the indexed connection to the specified new connection. + * Implementing classes may choose to ignore the given index (such as in the + * case of outputs, which only have one connection). + * + * @param index + * @param newConnection + */ + public void setConnection(int index, Connection newConnection); + + /** + * This method returns true if and only if:</br> + * - the elements being compared are not the same instance;</br> + * - the connections of the compared elements are not the same instance;</br> + * - the elements have the same function (in the case of Node);</br> + * - the grid position of the elements themselves are the same;</br> + * - the grid position of all equivalent connections are the same;</br></br> + * + * The relationship computed by this method is:</br> + * - symmetric: a.copyOf(b) == b.copyOf(a);</br> + * - not reflexive: a.copyOf(a) returns false;</br> + * - not transitive: if a.copyOf(b) is true and b.copyOf(c) is true, a.copyOf(c) is + * not necessarily true since it is possible that a == c.</br> + * + * @param m + * @return + */ + boolean copyOf(MutableElement m); + +} |