public static Double getVariation(Measure measure, int periodIndex, @Nullable Double defaultValue) { Double result = null; if (measure != null) { result = measure.getVariation(periodIndex); } return result != null ? result : defaultValue; }
public static Long getVariationAsLong(Measure measure, int periodIndex, @Nullable Long defaultValue) { Double result = null; if (measure != null) { result = measure.getVariation(periodIndex); } return result == null ? defaultValue : Long.valueOf(result.longValue()); }
/** * Sums a series of measures for the given variation index * * @param zeroIfNone whether to return 0 or null in case measures is null * @param variationIndex the index of the variation to use * @param measures the series of measures * @return the sum of the variations for the measure series */ public static Double sumOnVariation(boolean zeroIfNone, int variationIndex, Collection<Measure> measures) { if (measures == null) { return zeroIfNone(zeroIfNone); } Double sum = 0d; for (Measure measure : measures) { Double var = measure.getVariation(variationIndex); if (var != null) { sum += var; } } return sum; }
private static boolean isMeasureNotEmpty(Measure measure) { boolean isNotEmpty = false; for (int i = 1; i <= 5; i++) { isNotEmpty = isNotEmpty || measure.getVariation(i) != null; } return measure.getValue() != null || measure.getData() != null || isNotEmpty; }
void aggregate(DecoratorContext context, Metric metric, int maxPeriods) { int[] variations = {0, 0, 0, 0, 0}; boolean[] hasValues = {false, false, false, false, false}; for (Measure child : context.getChildrenMeasures(metric)) { for (int indexPeriod = 1; indexPeriod <= maxPeriods; indexPeriod++) { Double variation = child.getVariation(indexPeriod); if (variation != null) { variations[indexPeriod - 1] = variations[indexPeriod - 1] + variation.intValue(); hasValues[indexPeriod - 1] = true; } } } if (ArrayUtils.contains(hasValues, true)) { Measure measure = new Measure(metric); for (int index = 0; index < 5; index++) { if (hasValues[index]) { measure.setVariation(index + 1, (double) variations[index]); } } context.saveMeasure(measure); } }