/** * Keep the greater value of incoming and base. Stateless operation. * * @param incoming Metric a * @param base Metric b * @param state Operation state (not used) * @return the greater value of a and b */ @Override public TimelineMetric exec(TimelineMetric incoming, TimelineMetric base, Map<Object, Object> state) { if (base == null) { return incoming; } Number incomingValue = incoming.getSingleDataValue(); Number aggregateValue = base.getSingleDataValue(); if (aggregateValue == null) { aggregateValue = Long.MIN_VALUE; } if (TimelineMetricCalculator.compare(incomingValue, aggregateValue) > 0) { base.addValue(incoming.getSingleDataTimestamp(), incomingValue); } return base; } },
base.addValue(incoming.getSingleDataTimestamp(), result); return base;