package com.griddynamics.jagger.test.javabuilders.utils;
import com.griddynamics.jagger.engine.e1.collector.MetricAggregator;
import com.griddynamics.jagger.engine.e1.collector.MetricAggregatorProvider;
/**
* return difference between first and last logged value
*/
public class FirstLastDifferenceAggregatorProvider implements MetricAggregatorProvider {
@Override
public MetricAggregator provide() {
return new MetricAggregator() {
private Double first = null;
private Double last = null;
@Override
public void append(Number calculated) {
Double val = calculated.doubleValue();
if(first==null){
first = val;
last = val;
}else if (last < val) {
last = val;
}
}
@Override
public Number getAggregated() {
return last-first;
}
@Override
public void reset() {
last = null;
first = null;
}
@Override
public String getName() {
return "first_last";
}
};
}
}