diff --git a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java index cea44e06cd10cf6a6303411ff903adfb8c3c990d..1883abbd32257f977aa8d671ea01345e026ad6a4 100644 --- a/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java +++ b/org.fortiss.af3.exploration.alg/trunk/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/ComponentMultiAllocationConstraintEvaluator.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.Collections; import org.eclipse.emf.ecore.EObject; +import org.fortiss.af3.component.model.Component; import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEncoding; 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.FlatPhenotypeMap; @@ -107,10 +108,19 @@ public class ComponentMultiAllocationConstraintEvaluator<S extends InstantiatedT /** {@inheritDoc} */ @Override public boolean validateInternal(ExplorationConstraint<?> expTarget, T solution, Value<?> value) { - Collection<IMappingEntry> entries = - solution.getIMappingEntriesOf(systemModelAdapter - .getDeployableComponentOf(((ComponentMultiAllocationConstraint)expTarget) - .getComponent())); + Component constrComp = ((ComponentMultiAllocationConstraint)expTarget).getComponent(); + + Collection<IMappingEntry> entries = new ArrayList<>(); + for(IMappingEntry mappingEntry : solution.getIMappingEntries()) { + IDeployableComponentAdapter<?> compAdp = mappingEntry.getDeployableComponent(); + if(compAdp.getObject() == constrComp) { + entries.add(mappingEntry); + } else if(compAdp.isInstantiation() && + compAdp.getReplacedComponent().getObject() == constrComp) { + // CompocompAdp.getReplacedComponent().getObject(); + entries.add(mappingEntry); + } + } if(entries.isEmpty()) { return false;