public CompositeMetrics sum()

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;
  }