diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings index 667938f7a0e30e09c7a8a2d1c89e66c153a5d687..ef7217931b5809b512a32ff648f8a81442c0f29c 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings @@ -1,5 +1,5 @@ ComposableDecoder.java 197abec80b880e25fccfc66d61b471b0b5d7e10f RED -ComposableDecoderBase.java 4f366cc6c0f8ca929cac43d9c5de675cbafbb132 RED +ComposableDecoderBase.java 9b6114516ea001aeceb00f894d61336994097465 RED CompositeDecoder.java 9d34dd0b342e6433ab894974f9430531ce2de39a RED CompositeDecoderBase.java 1bc1860ed616010f7f459ed6579989f155f607c2 RED PhenotypeDecoder.java 44079e8545aaf8b8729919f0b07c774c3ca0df06 RED diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java index 4be18aaa2c39ace40900d48e544fc06c783583ed..d874eac41ce82381878f16d19e9b117b963b1e63 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java @@ -15,9 +15,14 @@ +--------------------------------------------------------------------------*/ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode; +import java.util.Collection; +import java.util.Collections; + import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype; import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype; +import com.google.common.reflect.TypeToken; + /** * Base class for {@link ComposableDecoder}s. * @@ -25,12 +30,35 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen */ public abstract class ComposableDecoderBase<G extends ComposableGenotype, P extends ComposablePhenotype<?>> implements ComposableDecoder<G, P> { + /** Type information: Concrete input genotype of the decoder. */ + private TypeToken<G> genotype = new TypeToken<G>(getClass()) { // Empty class + }; + /** Type information: Concrete input phenotype of the decoder. */ + private TypeToken<P> phenotype = new TypeToken<P>(getClass()) { // Empty class + }; + + /** {@inheritDoc} */ + @Override + public Class<?> getPrimaryInputType() { + if(genotype.getType() instanceof Class) { + return (Class<?>)genotype.getType(); + } + return genotype.getRawType(); + } + + /** {@inheritDoc} */ + @Override + public Collection<Class<?>> getOptionalTypes() { + return Collections.emptySet(); + } - // TODO: implement the following method here: The class hierarchy must be traversed. Then, also - // the interface (ComposableDecoder) can be specialized to Class<P>. - // public Class<P> getDecodedPhenotypeType() { - // TypeVariable<?>[] genericTypes = ExplorationUtils.get; - // assert (genericTypes.length == 2); - // return (Class<P>)genericTypes[1].getClass(); - // } + /** {@inheritDoc} */ + @SuppressWarnings("unchecked") + @Override + public Class<? super P> getOutputType() { + if(genotype.getType() instanceof Class) { + return (Class<? super P>)phenotype.getType(); + } + return null; + } } diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings index fef09303b7322b35a54115be91105ff982fb57d1..e73620a3b1fdc59387c2f9248150c90bc949a7f0 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings @@ -1 +1 @@ -MessageDecoder.java 155958e769b3ddb18deac0d2ff595977f5252192 RED +MessageDecoder.java 4ad8b9325ad1032437426c5f1636448b54b7883c RED diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java index 7ef5faf523fd3a8e496ce58043b830c1b7f041c7..78eda9938a9d176f0e69bcffd4bbec28049db93d 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/MessageDecoder.java @@ -17,7 +17,6 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.comm; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Map; import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.comm.MessageEncoding; @@ -131,12 +130,6 @@ public class MessageDecoder<S extends TaskMappingEntry<ITaskAdapter<?>, Partitio return reqTypes; } - /** {@inheritDoc} */ - @Override - public Collection<Class<?>> getOptionalTypes() { - return Collections.emptySet(); - } - /** {@inheritDoc} */ @SuppressWarnings("rawtypes") @Override diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings index efe3ea0143774a01236e60e6770e934ea799c7e6..a70ad05103136af42e8bf8454b9706a1fa36148d 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings @@ -1,2 +1,2 @@ -PartitionMappingDecoderGraph.java d164596ac52b41fbe7be9b926418a5cbf53edb08 RED -PartitionMappingIdentityDecoder.java e1a56b26ca22e952b8c965f79ff748f48da3407c RED +PartitionMappingDecoderGraph.java 4541c30721d8898a269320fbf5bbc65627548160 RED +PartitionMappingIdentityDecoder.java 45a0f3748f01beb741390d564a707f19cf3fd2b6 RED diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingDecoderGraph.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingDecoderGraph.java index eef9693bd5f05fb3aa8d7bfb870ad5f34e6ba75e..73645b119904fb34c8a1136a7603af8830a94778 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingDecoderGraph.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingDecoderGraph.java @@ -111,23 +111,4 @@ public class PartitionMappingDecoderGraph extends reqTypes.add(PartitionMappingEncoding.class); return reqTypes; } - - /** {@inheritDoc} */ - @Override - public Collection<Class<?>> getOptionalTypes() { - Collection<Class<?>> optTypes = new ArrayList<>(); - return optTypes; - } - - /** {@inheritDoc} */ - @Override - public Class<PlatformCommunicationGraphEncoding> getOutputType() { - return PlatformCommunicationGraphEncoding.class; - } - - /** {@inheritDoc} */ - @Override - public Class<?> getPrimaryInputType() { - return PlatformCommunicationGraphEncoding.class; - } } diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingIdentityDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingIdentityDecoder.java index dcdd804f5be4dcd62cedcd3f97d97a01546f2b5c..964e0e992dd33aeec4ed55a83d9c6c6f7883a7a0 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingIdentityDecoder.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/PartitionMappingIdentityDecoder.java @@ -60,16 +60,4 @@ public class PartitionMappingIdentityDecoder optTypes.add(PartitionMappingEncoding.class); return optTypes; } - - /** {@inheritDoc} */ - @Override - public Class<PartitionMappingEncoding> getOutputType() { - return PartitionMappingEncoding.class; - } - - /** {@inheritDoc} */ - @Override - public Class<?> getPrimaryInputType() { - return PartitionMappingEncoding.class; - } } diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings index 5449de7c96686a70c22c13adb08e418a1e029dd0..400accbb7b2166e7c12645174a70365c11f23864 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings @@ -1,4 +1,4 @@ -SFEncodingDecoder.java 8e1594c92aa5e0c23d07038bb63db5b483c4f727 RED -SFGraphDecoder.java 833d6662ea99c8c7b92ba229c117f200a0300667 RED -SFMappingConstraintDecoder.java b347e65e6b805103e133386ef76c2297a829559a RED -SFMappingDecoder.java ec3d91b8cacb5743517d87a1c9eed347549d8acc RED +SFEncodingDecoder.java ed80fb718ebef561d42610709820852ff777d609 RED +SFGraphDecoder.java 5b6a65e02f9132348a5051b431581a32fe14046e RED +SFMappingConstraintDecoder.java 3fe95f631eb32d8f1757dba46a2c93be3e04f5af RED +SFMappingDecoder.java b3985407125fe2e36882385aff269b0dc46689cd RED diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java index e4ada07b638432130b8e03cb7d858e856868356e..d8f81ab1b48cb3b437a05473b6ba5ca86191c8d4 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java @@ -70,13 +70,6 @@ public class SFEncodingDecoder<C> return reqTypes; } - /** {@inheritDoc} */ - @Override - public Collection<Class<?>> getOptionalTypes() { - Collection<Class<?>> optTypes = new ArrayList<>(); - return optTypes; - } - /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java index ac5f05de994a6f42eadaade36b87e99575384963..82c9b536a526e0e2b23d35a64124e622e5eedd5a 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFGraphDecoder.java @@ -17,7 +17,6 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.safetyfunction import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.safetyfunctionarch.SafetyFunctionArchEncoding; import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.safetyfunctionarch.SafetyFunctionArchEntry; @@ -155,12 +154,6 @@ public class SFGraphDecoder<C> return reqTypes; } - /** {@inheritDoc} */ - @Override - public Collection<Class<?>> getOptionalTypes() { - return Collections.emptySet(); - } - /** {@inheritDoc} */ @SuppressWarnings("rawtypes") @Override diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java index 9d4b0183aea2fa789359a1d3344979df9e61dadf..69b46dc6184f316102df770ebad3814361db6d11 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingConstraintDecoder.java @@ -17,7 +17,6 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.safetyfunction import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.safetyfunctionarch.SafetyFunctionArchEncoding; @@ -112,21 +111,9 @@ public class SFMappingConstraintDecoder<C> return requiredTypes; } - /** {@inheritDoc} */ - @Override - public Collection<Class<?>> getOptionalTypes() { - return Collections.emptySet(); - } - - /** {@inheritDoc} */ - @Override - public Class<? super AbstractTaskMappingEncoding> getOutputType() { - return AbstractTaskMappingEncoding.class; - } - /** {@inheritDoc} */ @Override public Class<?> getPrimaryInputType() { - return AbstractTaskMappingEncoding.class; + return SafetyFunctionArchEncoding.class; } } diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java index cdea51a4fcc67631c7206f0f31226b3f57bbffd6..0fe8c6aad79085a5be5ead4c38b21e06095944a9 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFMappingDecoder.java @@ -20,7 +20,6 @@ import static org.fortiss.tooling.common.util.LambdaUtils.getFirst; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -273,18 +272,6 @@ public class SFMappingDecoder<C> return reqTypes; } - /** {@inheritDoc} */ - @Override - public Collection<Class<?>> getOptionalTypes() { - return Collections.emptySet(); - } - - /** {@inheritDoc} */ - @Override - public Class<AbstractTaskMappingEncoding> getOutputType() { - return AbstractTaskMappingEncoding.class; - } - /** {@inheritDoc} */ @Override public Class<?> getPrimaryInputType() { diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/TaskInstanceResourceAlignmentDecoder.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/TaskInstanceResourceAlignmentDecoder.java index 0a40b2dbf9b21c13022894c49b3bde0ba67d2934..fe8b789f3a0185585a90cf1882fd3983453b4a0d 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/TaskInstanceResourceAlignmentDecoder.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/TaskInstanceResourceAlignmentDecoder.java @@ -72,17 +72,4 @@ public class TaskInstanceResourceAlignmentDecoder extends Collection<Class<?>> optTypes = new ArrayList<>(); return optTypes; } - - /** {@inheritDoc} */ - @SuppressWarnings("rawtypes") - @Override - public Class<InstantiatedTaskMappingEncoding> getOutputType() { - return InstantiatedTaskMappingEncoding.class; - } - - /** {@inheritDoc} */ - @Override - public Class<?> getPrimaryInputType() { - return InstantiatedTaskMappingEncoding.class; - } }