in metrics/src/main/java/com/facebook/battery/metrics/composite/CompositeMetrics.java [57:85]
public CompositeMetrics sum(@Nullable CompositeMetrics b, CompositeMetrics result) {
if (result == null) {
throw new IllegalArgumentException("CompositeMetrics doesn't support nullable results");
}
if (b == null) {
result.set(this);
} else {
for (int i = 0, size = mMetricsMap.size(); i < size; i++) {
Class c = mMetricsMap.keyAt(i);
boolean valid = true;
if (isValid(c) && b.isValid(c)) {
SystemMetrics resultMetric = result.getMetric(c);
if (resultMetric != null) {
getMetric(c).sum(b.getMetric(c), resultMetric);
}
} else if (isValid(c)) {
result.getMetric(c).set(getMetric(c));
} else if (b.isValid(c)) {
result.getMetric(c).set(b.getMetric(c));
} else {
valid = false;
}
result.setIsValid(c, valid);
}
}
return result;
}