package eu.choreos.vv.experiments.strategy; import java.util.ArrayList; import java.util.Collections; import java.util.List; import eu.choreos.vv.ScaleCaster; import eu.choreos.vv.experiments.Experiment; public class ComposedStrategy extends ExperimentStrategy { private List<ExperimentStrategy> strategies; public ComposedStrategy(ExperimentStrategy... strategies) { this.strategies = new ArrayList<ExperimentStrategy>(); Collections.addAll(this.strategies, strategies); } @Override public void onUpdateParameterValue(ScaleCaster scaleCaster) { for (ExperimentStrategy strategy : strategies) { strategy.onUpdateParameterValue(scaleCaster); } } @Override public void putInitialParameterValues(ScaleCaster scaleCaster) { for (ExperimentStrategy strategy : strategies) { strategy.putInitialParameterValues(scaleCaster); } } @Override public void setExperiment(Experiment experiment) { super.setExperiment(experiment); for (ExperimentStrategy strategy : strategies) { strategy.setExperiment(experiment); } } @Override public List<String> getLabels() { labels.clear(); for (ExperimentStrategy strategy : strategies) { labels.addAll(strategy.getLabels()); } return labels; } }