package eu.choreos.vv.stop;
import java.util.Collections;
import java.util.List;
import eu.choreos.vv.aggregations.AggregationFunction;
import eu.choreos.vv.data.ExperimentReport;
public class MeasurementStop implements StopCriterion {
private Double limit;
private AggregationFunction function;
public MeasurementStop(Double limit, AggregationFunction function) {
this.limit = limit;
this.function = function;
}
@Override
public boolean stop(ExperimentReport report) {
if (report.isEmpty()) return false;
Object key = Collections.max(report.keySet());
List<Number> data = report.get(key).getMeasurements("responseTime");
return limit < function.aggregate(data);
}
}