diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/DmmModelActionHelper.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/DmmModelActionHelper.java index ca4c7107a4d76dc3c8c8c6ad2a6f6ea03edb12a5..ea7338fecdbc0e14dc93adb25a98decdb2910a09 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/DmmModelActionHelper.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/dmm/util/DmmModelActionHelper.java @@ -3,12 +3,15 @@ package edu.kit.ipd.descartes.adaptation.model.dmm.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Random; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.util.EcoreUtil; import edu.kit.ipd.descartes.core.AdaptableEntity; import edu.kit.ipd.descartes.core.NamedElement; +import edu.kit.ipd.descartes.mm.adaptation.AdaptationScope; +import edu.kit.ipd.descartes.mm.containerrepository.ContainerTemplate; import edu.kit.ipd.descartes.mm.resourceconfiguration.ConfigurationSpecification; import edu.kit.ipd.descartes.mm.resourceconfiguration.ResourceconfigurationPackage; import edu.kit.ipd.descartes.mm.resourcelandscape.Container; @@ -184,4 +187,23 @@ public class DmmModelActionHelper { return result; } + /**Find a container that refers to the given {@link ContainerTemplate} and that suits the + * given {@link AdaptationScope}. + * + * @param containerTemplate + * @param adaptationScope + * @return + */ + public static Container findSuitableContainer(ContainerTemplate containerTemplate, AdaptationScope adaptationScope) { + List<Container> containers = containerTemplate.getReferringContainers(); + Random randomGenerator = new Random(); + + switch (adaptationScope) { + case RANDOM: + return containers.get(randomGenerator.nextInt(containers.size())); + default: + return null; + } + } + }