/** * @deprecated since 0.12.0; see {@link MathAggregatorFunctions}; */ @Deprecated public static <N extends Number> N sum(Iterable<? extends Number> vals, Number valueIfNull, Number valueIfNone, TypeToken<N> type) { double result = 0d; int count = 0; if (vals!=null) { for (Number val : vals) { if (val!=null) { result += val.doubleValue(); count++; } else if (valueIfNull!=null) { result += valueIfNull.doubleValue(); count++; } } } if (count==0) return cast(valueIfNone, type); return cast(result, type); }
/** * @deprecated since 0.12.0; see {@link MathAggregatorFunctions}; */ @Deprecated protected static <T extends Number> T average(Collection<T> vals, Number defaultValueForUnreportedSensors, Number valueToReportIfNoSensors, TypeToken<T> type) { Double doubleValueToReportIfNoSensors = (valueToReportIfNoSensors == null) ? null : valueToReportIfNoSensors.doubleValue(); int count = count(vals, defaultValueForUnreportedSensors!=null); Double result = (count==0) ? doubleValueToReportIfNoSensors : (Double) ((sum(vals, defaultValueForUnreportedSensors, 0, TypeToken.of(Double.class)) / count)); return cast(result, type); }