From 56da78d22aac07d24c94057402003145e468255d Mon Sep 17 00:00:00 2001
From: Alexander Diewald <diewald@fortiss.org>
Date: Mon, 22 Oct 2018 19:15:30 +0200
Subject: [PATCH] Cleanup: Remove the composite features from the phenotypes

* Reduce the Phenotypes to remove unused features.
* Remove the DebugUtils (not used anymore).
* Remove the getPhenotypeType method that became obsolete after
  migrating the DSE to Guice.

Issue-Ref: 3557
Issue-Url: https://af3-developer.fortiss.org/issues/3557
Signed-off-by: Alexander Diewald <diewald@fortiss.org>
---
 .../dse/backend/opt4j/encoding/comm/.ratings  |  2 +-
 .../opt4j/encoding/comm/MessageEncoding.java  |  7 --
 .../opt4j/encoding/partitionmapping/.ratings  |  2 +-
 .../PartitionMappingEncoding.java             |  7 --
 .../backend/opt4j/encoding/platform/.ratings  |  2 +-
 .../PlatformCommunicationGraphEncoding.java   |  7 --
 .../encoding/safetyfunctionarch/.ratings      |  2 +-
 .../SafetyFunctionArchEncoding.java           |  7 --
 .../backend/opt4j/encoding/taskgraph/.ratings |  8 +-
 .../taskgraph/AbstractTaskGraphEncoding.java  |  7 --
 .../InstantiatedAcyclicTaskGraphEncoding.java |  7 --
 .../InstantiatedTaskGraphEncoding.java        |  7 --
 .../taskgraph/SafeTaskGraphEncoding.java      |  7 --
 .../taskmapping/abstractmapping/.ratings      |  2 +-
 .../AbstractTaskMappingEncoding.java          |  7 --
 .../taskmapping/instantiatedmapping/.ratings  |  2 +-
 .../InstantiatedTaskMappingEncoding.java      |  7 --
 .../compositegene/phenotype/.ratings          |  5 +-
 .../compositegene/phenotype/Phenotype.java    | 34 +--------
 .../phenotype/PhenotypeBase.java              | 54 -------------
 .../alg/dse/backend/opt4j/solution/.ratings   |  4 +-
 .../opt4j/solution/StrictTTSchedule.java      |  7 --
 .../fortiss/af3/exploration/alg/util/.ratings |  2 +-
 .../alg/util/ExplorationAlgDebugUtils.java    | 75 -------------------
 24 files changed, 15 insertions(+), 256 deletions(-)
 delete mode 100644 org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java

diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings
index bf9e4f54..8d0c9300 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings
@@ -1 +1 @@
-MessageEncoding.java 6a4bb9c487db5055ea263253e3e3247177476065 YELLOW
+MessageEncoding.java 3c04ebae651542778e45c7d47352fdc47e2439ee YELLOW
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java
index 6a4bb9c4..3c04ebae 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java
@@ -21,7 +21,6 @@ import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISignalAdapter;
@@ -56,10 +55,4 @@ public class MessageEncoding<S extends TaskMappingEntry<ITaskAdapter<?>, IExecut
 		return filterSet(messages,
 				m -> m.getSignalAdapter().getSignalType() == ISignalAdapter.SignalType.PERIODIC);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return MessageEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
index ce4a1e98..eab7b9c6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
@@ -1,3 +1,3 @@
 Partition.java 89cfb87a73d3ae080a9dbe5594b48ad552f7a9f1 RED
-PartitionMappingEncoding.java 95bf57d5cdeb40c37fdcfdd6a02e2ac96a6d9959 RED
+PartitionMappingEncoding.java 2d1af8dac3fa1e9cf4d94aae01bdd76057d22057 RED
 PartitionMappingEntry.java 3f413a060aad18e6ffb088b1a035ffb536e591cf YELLOW
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
index 95bf57d5..2d1af8da 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
@@ -21,7 +21,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.MappingEncoding;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.copy.Copyable;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
@@ -130,12 +129,6 @@ public class PartitionMappingEncoding extends
 		return new PartitionMappingEncoding();
 	}
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return getClass();
-	}
-
 	/** {@inheritDoc} */
 	@Override
 	public PartitionMappingEncoding copy() {
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
index 0b5739ae..c1260e67 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
@@ -1 +1 @@
-PlatformCommunicationGraphEncoding.java c49bd0227357686cf929b782c7a714f1aab4c196 RED
+PlatformCommunicationGraphEncoding.java accc939c90f2d32c2507da2f4e8d20b0d7c5c158 YELLOW
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
index c49bd022..accc939c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
@@ -16,7 +16,6 @@
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.platform;
 
 import org.eclipse.draw2d.graph.DirectedGraph;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.copy.Copyable;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
@@ -78,12 +77,6 @@ public class PlatformCommunicationGraphEncoding extends PhenotypeBase
 		return new PlatformCommunicationGraphEncoding(platformGraph);
 	}
 
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return PlatformCommunicationGraphEncoding.class;
-	}
-
 	/** {@inheritDoc} */
 	@Override
 	public PlatformCommunicationGraphEncoding copy() {
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings
index 91c3a99f..2219b771 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings
@@ -1,2 +1,2 @@
-SafetyFunctionArchEncoding.java 4a229eb97cf0a9aa22fb1f54b4a24190613aa6c3 YELLOW
+SafetyFunctionArchEncoding.java 007ad2ec378e37abef9865c9b7aa22f9d06fc168 YELLOW
 SafetyFunctionArchEntry.java 83b2819b2d749611aed25170e60eee11fc0edd2b RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java
index 4a229eb9..007ad2ec 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.operator.copy.Copyable;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISafetyFunctionAdapter;
@@ -168,10 +167,4 @@ public class SafetyFunctionArchEncoding extends PhenotypeBase
 	public String toString() {
 		return getAllEntries().toString();
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return SafetyFunctionArchEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
index b67684ee..47618626 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
@@ -1,5 +1,5 @@
-AbstractTaskGraphEncoding.java 70dcfb88d40b3e4e4aa19e2de470db705de0337e RED
-InstantiatedAcyclicTaskGraphEncoding.java 6c26aa4cca73a33c031c5cea6eab0d3efb197078 RED
-InstantiatedTaskGraphEncoding.java bfbad1a4bb3f984432688f281c7354b36fda607a RED
-SafeTaskGraphEncoding.java 31c8db24f2d41118b9d1341ceed7e7d931c0927a RED
+AbstractTaskGraphEncoding.java 4122c068748a41d609035d9a578df4e6b79bb148 RED
+InstantiatedAcyclicTaskGraphEncoding.java a82e3bd19abf5908c92d0524b02fd3d82c466889 YELLOW
+InstantiatedTaskGraphEncoding.java 820e6fe50893fcbd82e862ddfbfb11f8d6da95aa YELLOW
+SafeTaskGraphEncoding.java 1f0aff0d964d1c183dbe327dc7a1fe411c84314a YELLOW
 TaskGraphEncoding.java 80043ff18bfb4c196b040c533ce0c328977d4e1f RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
index 70dcfb88..4122c068 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
@@ -17,7 +17,6 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph;
 
 import java.util.Set;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 
 import com.google.inject.Inject;
@@ -42,10 +41,4 @@ public class AbstractTaskGraphEncoding extends TaskGraphEncoding<TaskGraph> {
 	public AbstractTaskGraphEncoding(AbstractTaskGraphEncoding encoding) {
 		super(encoding);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return AbstractTaskGraphEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
index 6c26aa4c..a82e3bd1 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
@@ -18,7 +18,6 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph;
 import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.AcyclicTaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 
@@ -42,10 +41,4 @@ public class InstantiatedAcyclicTaskGraphEncoding<T extends InstantiatedTaskMapp
 	public InstantiatedAcyclicTaskGraphEncoding(InstantiatedAcyclicTaskGraphEncoding<T> encoding) {
 		super(encoding);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return InstantiatedAcyclicTaskGraphEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
index bfbad1a4..820e6fe5 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
@@ -18,7 +18,6 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph;
 import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 
 /**
@@ -37,10 +36,4 @@ public class InstantiatedTaskGraphEncoding<T extends InstantiatedTaskMappingEntr
 	public InstantiatedTaskGraphEncoding(InstantiatedTaskGraphEncoding<T> encoding) {
 		super(encoding);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return InstantiatedTaskGraphEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
index 31c8db24..1f0aff0d 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
@@ -19,7 +19,6 @@ import java.util.Collection;
 import java.util.Set;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.safetyfunctionarch.SafetyFunctionArchEncoding;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 
@@ -56,10 +55,4 @@ public class SafeTaskGraphEncoding extends AbstractTaskGraphEncoding {
 		}
 		return null;
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return SafeTaskGraphEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
index cb6876c9..ff0f0097 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
@@ -1,2 +1,2 @@
-AbstractTaskMappingEncoding.java 006baeeb60eecb28a20cdd5b2d894dae44fdf758 YELLOW
+AbstractTaskMappingEncoding.java e7b9f51e9839e87488f845b33784fceeb8d56722 YELLOW
 AbstractTaskMappingEntry.java b1beede941a2bcd43ff514fbd1347f6f7fefd2b1 YELLOW
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
index 006baeeb..e7b9f51e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
@@ -24,7 +24,6 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph.Safe
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph.TaskGraphEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
@@ -135,10 +134,4 @@ public class AbstractTaskMappingEncoding
 		clonedEncoding.getRequesters().forEach(c -> c.updateInstatiationData());
 		return clonedEncoding;
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return AbstractTaskMappingEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
index 49733e48..ced1f83c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
@@ -2,5 +2,5 @@ FailSilentTaskMappingEncoding.java a35383d317862a9876baf4296ad2371c75c36e88 RED
 FailSilentTaskMappingEntry.java 93c2deb62b39860893e94729b85844fe38e90e17 RED
 FaultDetectionVotingTaskMappingEncoding.java 118ff5f99f6a2f734ddd2b3f1ac44d013c6167be RED
 FaultDetectionVotingTaskMappingEntry.java 932d37aa71e912be4e6b29e44911ebc48f6fe697 RED
-InstantiatedTaskMappingEncoding.java 1dcb81896275bec4b5d1d7d12b063cf4cbc8bbc8 RED
+InstantiatedTaskMappingEncoding.java e1c037b489d9b7357b59e267a634bb43eb33335b RED
 InstantiatedTaskMappingEntry.java 101b9eefe449e73c6fff89cb76574ca14c93d33f RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
index 1dcb8189..e1c037b4 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
@@ -22,7 +22,6 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph.Task
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
@@ -102,10 +101,4 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 		}
 		return super.getDisAllowedAllocations(deployableComponent);
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return InstantiatedTaskMappingEncoding.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
index 189bb903..1325bb43 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
@@ -1,4 +1,3 @@
-FlatPhenotypeMap.java f29317abac6af034248a1b24dd95a0a330e202ec RED
-Phenotype.java f23b94b0ee54fbf3a685ebeebccad4abd6c12b91 RED
-PhenotypeBase.java f0357666cdda6cfbe0877fdc5b397366f8e504c4 RED
+Phenotype.java f05a45ea3b3577079b4f894aa97af1ab3620c5e7 YELLOW
+PhenotypeBase.java 73397a01276ccf72c1569bfa577e9fd3f5874324 YELLOW
 ProvidingPhenotype.java b18a8385e97c98f83219daa508d156ac57ba365b RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java
index f23b94b0..f05a45ea 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java
@@ -15,12 +15,6 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype;
 
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
-import org.opt4j.core.Genotype;
 import org.opt4j.core.genotype.CompositeGenotype;
 
 /**
@@ -29,33 +23,7 @@ import org.opt4j.core.genotype.CompositeGenotype;
  * 
  * @author diewald
  */
-public interface Phenotype
-		extends IExplorationEncoding, Iterable<Entry<Class<? extends Phenotype>, Phenotype>> {
-
-	/**
-	 * Returns the type which shall be used to register the {@link Phenotype} at its
-	 * containing {@link Phenotype}.
-	 */
-	Class<? extends Phenotype> getPTypeToRegister();
-
-	/**
-	 * Returns the {@link Phenotype} that corresponds to the given {@link Phenotype} class.
-	 */
-	<CP extends Phenotype> CP getSubPhenotype(Class<CP> subPhenotype);
-
-	/**
-	 * Defines a correspondence between a {@link Genotype} class and its {@link Phenotype}
-	 * .
-	 */
-	<CP extends Phenotype> void putSubPhenotype(Class<CP> subGenotype, CP curPhenotype);
-
-	/**
-	 * Returns the collection of {@link Phenotype}s that make up this {@link Genotype}.
-	 */
-	List<Phenotype> getSubPhenotypes();
-
-	/** Returns the Class -> {@link Phenotype} entries of the enclosed map. */
-	Set<Class<? extends Phenotype>> keySet();
+public interface Phenotype {
 
 	/** Marks a phenotype as being processed by sub-decoders. */
 	void setSubDecoding(boolean isSubDecoding);
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/PhenotypeBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/PhenotypeBase.java
index f0357666..73397a01 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/PhenotypeBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/PhenotypeBase.java
@@ -15,14 +15,6 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
 /**
  * Base class for {@link Phenotype}s which consists of {@link Phenotype}s.
  * 
@@ -30,55 +22,9 @@ import java.util.Set;
  */
 public class PhenotypeBase implements Phenotype {
 
-	/**
-	 * Map which correlates the {@link Phenotype} classes with their corresponding {@link Phenotype}
-	 * s, out of which this {@link Phenotype} consists.
-	 */
-	protected Map<Class<? extends Phenotype>, Phenotype> subPhenotypes = new HashMap<>();
-
 	/** Flag to mark a phenotype as being processed by sub-Decoders. */
 	private boolean isSubDecoding;
 
-	/** {@inheritDoc} */
-	@Override
-	public <CP extends Phenotype> CP getSubPhenotype(Class<CP> subGenotypeClass) {
-		return (CP)subPhenotypes.get(subGenotypeClass);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public <CP extends Phenotype> void putSubPhenotype(Class<CP> subGenotypeClass,
-			CP subPhenotype) {
-		subPhenotypes.put(subGenotypeClass, subPhenotype);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public List<Phenotype> getSubPhenotypes() {
-		ArrayList<Phenotype> retList = new ArrayList<>();
-		subPhenotypes.values().stream().forEachOrdered(p -> retList.add(p));
-		return retList;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Iterator<Entry<Class<? extends Phenotype>, Phenotype>> iterator() {
-		return subPhenotypes.entrySet().iterator();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Set<Class<? extends Phenotype>> keySet() {
-		return subPhenotypes.keySet();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
 	/** {@inheritDoc} */
 	@Override
 	public void setSubDecoding(boolean isSubDecoding) {
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
index fccf0f43..a6e02a1e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
@@ -1,6 +1,4 @@
-ArchExpSubSolution.java 01ed04e438843a9c55c69a3c32c37f7d76f783a3 RED
-ArchitectureSolution.java 2c8f7d3e35dd5365e25100872a9ff0e7e1502f51 RED
 IExplorationSolution.java cca30446b15bf5345e1dddfcd7ade42a0b3d5510 RED
 IScheduleSolution.java 1f219222f59260ca87ab38fc11bebe91b790812b RED
-StrictTTSchedule.java 1c4a9097df08cec4e4da14cd68730e74f9c2bc42 RED
+StrictTTSchedule.java cde1b7bf989e0267170bbe5a9456348a36c7184b RED
 TimeSlot.java ec0a244cd513dd0a233f2077a7995dc45e719d64 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
index 1c4a9097..cde1b7bf 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
@@ -24,7 +24,6 @@ import java.util.TreeMap;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ICommunicationResourceAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
@@ -381,10 +380,4 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, IExecu
 		}
 		return str;
 	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Class<? extends Phenotype> getPTypeToRegister() {
-		return StrictTTSchedule.class;
-	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings
index 755a907d..47c70fbe 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings
@@ -1,6 +1,6 @@
 AF3Utils.java 9d4c6f0f38934e809972a5e4e1f9f98481e17328 RED
 DesignSpaceExplorationModelElementFactory.java 2d706f9caf05e793254bdd7a891c80f16e4e5025 RED
-ExplorationAlgDebugUtils.java 616eb310850927f186128f49a158397563a42594 RED
+ExplorationAlgDebugUtils.java 4683cfb75b62c64be172937ddddaa9494fe5a443 RED
 ExplorationAlgUtils.java 7d456cdd8a78bcd265e1f152fa8b343a37bb337d RED
 ExplorationEcoreUtils.java d816b750378d2bcbd307ff86e121c8d38ef5c28b RED
 ExplorationFeatureUtils.java 83e72806e47f0aa30db9b5dab3fe94f312b288e4 YELLOW
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java
deleted file mode 100644
index 616eb310..00000000
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2016 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.af3.exploration.alg.util;
-
-import static org.fortiss.af3.exploration.alg.util.ExplorationAlgUtils.pickInstanceOf;
-
-import java.util.Collection;
-
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.comm.constraint.InternalIsolatedCommunicationSet;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEntry;
-
-/**
- * Collection of methods that are useful for debuggin purposes of the ExplorationAlg plugin, but not
- * during normal operation.
- * 
- * @author diewald
- */
-public class ExplorationAlgDebugUtils {
-
-	/**
-	 * Returns the set of all {@link Phenotype}s that are contained in the given {@link Phenotype},
-	 * or any of its sub {@link Phenotype}s.
-	 * 
-	 * @param compositePhenotype
-	 *            {@link Phenotype} whose child {@link Phenotype}s shall be
-	 *            identified.
-	 * @return Set of <i>all</i> child {@link Phenotype}s.
-	 */
-	public static Collection<Phenotype> getAllSubPhenotypes(Phenotype compositePhenotype) {
-		Collection<Phenotype> allSubPhenotypes = compositePhenotype.getSubPhenotypes();
-		pickInstanceOf(Phenotype.class, allSubPhenotypes)
-				.forEach(p -> allSubPhenotypes.addAll(getAllSubPhenotypes(p)));
-		return allSubPhenotypes;
-	}
-
-	/**
-	 * Checks whether all {@link IMappingEntry}s referenced in
-	 * {@link InternalIsolatedCommunicationSet} constraints also exist in the allocation map of the
-	 * given {@link AbstractTaskMappingEncoding}.
-	 * 
-	 * @param encoding
-	 *            {@link AbstractTaskMappingEncoding} to examine for consistency.
-	 * @return If the mapping is consistent w.r.t. the {@link InternalIsolatedCommunicationSet}.
-	 */
-	public static boolean
-			mappingContainsAllIsolationCommEntries(AbstractTaskMappingEncoding encoding) {
-		Collection<InternalIsolatedCommunicationSet> constrs =
-				encoding.getConstraintsOf(InternalIsolatedCommunicationSet.class);
-		// TODO: Remove the ugly casting when converting the internal constraints into "real" ones.
-		for(InternalIsolatedCommunicationSet curConstr : constrs) {
-			for(IMappingEntry<?, ?> entry : curConstr.getIsolatedCommunicationSet()) {
-				if(!encoding.containsEntry((AbstractTaskMappingEntry)entry)) {
-					return false;
-				}
-			}
-		}
-		return true;
-	}
-}
-- 
GitLab