package com.griddynamics.jagger.engine.e1.collector; import static com.griddynamics.jagger.util.StandardMetricsNamesUtil.MAX_AGGREGATOR_ID; /** Calculates max value on the interval * @author Kirill Gribov * * @ingroup Main_Aggregators_group */ public class MaxMetricAggregatorProvider implements MetricAggregatorProvider { @Override public MetricAggregator provide() { return new MaxMetricAggregator(); } private static class MaxMetricAggregator implements MetricAggregator<Number> { private Double value = null; @Override public void append(Number calculated) { if (value == null) { value = calculated.doubleValue(); } else { value = Math.max(value, calculated.doubleValue()); } } @Override public Double getAggregated() { return value; } @Override public void reset() { value = null; } @Override public String getName() { return MAX_AGGREGATOR_ID; } } }