package eu.choreos.vv.analysis;
import java.util.ArrayList;
import java.util.List;
import eu.choreos.vv.chart.ReportChart;
import eu.choreos.vv.chart.creator.ChartCreator;
import eu.choreos.vv.data.ExperimentReport;
import eu.choreos.vv.data.PlotData;
public class AggregatePerformance extends Analyzer {
private String title;
private int paramIdx;
ChartCreator creator;
// private List<PlotData> plotData;
public AggregatePerformance(String title, ChartCreator creator, int param) {
this.title = title;
this.creator = creator;
this.paramIdx = param;
// plotData = new ArrayList<PlotData>();
}
public AggregatePerformance(String title, ChartCreator creator) {
this(title, creator, 0);
}
@Override
public void analyse(ExperimentReport report) {
List<PlotData> plotData = new ArrayList<PlotData>();
PlotData aggregation = creator.createPlotData(report, paramIdx);
plotData.add(aggregation);
createChart(plotData, report.getParameterLabels().get(paramIdx),
report.getMeasurementUnit());
}
@Override
public void analyse(List<ExperimentReport> reports) throws Exception {
List<PlotData> plotData = new ArrayList<PlotData>();
for (ExperimentReport report : reports)
plotData.add(creator.createPlotData(report, paramIdx));
createChart(plotData,
reports.get(0).getParameterLabels().get(paramIdx),
reports.get(0).getMeasurementUnit());
}
private void createChart(List<PlotData> data, String xLabel, String yLabel) {
ReportChart chart = new ReportChart();
chart.createChart(creator.createChart(data, title, xLabel, yLabel));
}
}