package eu.choreos.vv.experiments.strategy;
import java.util.ArrayList;
import java.util.List;
import eu.choreos.vv.ScaleCaster;
import eu.choreos.vv.experiments.Experiment;
import eu.choreos.vv.increasefunctions.ScalabilityFunction;
public abstract class ExperimentStrategy {
private Experiment experiment;
private String parameterKey;
private Integer parameterInitialValue;
private ScalabilityFunction function;
protected List<String> labels = new ArrayList<String>();
public Experiment getExperiment() {
return experiment;
}
public void setExperiment(Experiment experiment) {
this.experiment = experiment;
}
public Number getParameterInitialValue() {
return parameterInitialValue;
}
public void setParameterInitialValue(Integer parameterInitialValue) {
this.parameterInitialValue = parameterInitialValue;
}
public ScalabilityFunction getFunction() {
return function;
}
public void setFunction(ScalabilityFunction function) {
this.function = function;
}
public void putInitialParameterValues(ScaleCaster scaleCaster) {
parameterKey = scaleCaster.addInitialParameterValue(parameterInitialValue, function);
}
protected Number getCurrentParameterValue(ScaleCaster scaleCaster) {
return scaleCaster.getCurrentParameterValue(parameterKey);
}
public abstract void onUpdateParameterValue(ScaleCaster scaleCaster);
public List<String> getLabels() {
return labels;
}
}