in metrics/src/main/java/com/facebook/battery/metrics/healthstats/HealthStatsMetrics.java [264:305]
public HealthStatsMetrics set(HealthStatsMetrics b) {
dataType = b.dataType;
measurement.clear();
for (int i = 0; i < b.measurement.size(); i++) {
measurement.append(b.measurement.keyAt(i), b.measurement.valueAt(i));
}
timer.clear();
for (int i = 0; i < b.timer.size(); i++) {
timer.append(b.timer.keyAt(i), new TimerMetrics(b.timer.valueAt(i)));
}
measurements.clear();
for (int i = 0; i < b.measurements.size(); i++) {
ArrayMap<String, Long> value = new ArrayMap<>();
value.putAll((Map<String, Long>) b.measurements.valueAt(i));
measurements.append(b.measurements.keyAt(i), value);
}
timers.clear();
for (int i = 0; i < b.timers.size(); i++) {
ArrayMap<String, TimerMetrics> bValue = b.timers.valueAt(i);
ArrayMap<String, TimerMetrics> value = new ArrayMap<>();
for (int j = 0; j < bValue.size(); j++) {
value.put(bValue.keyAt(j), new TimerMetrics(bValue.valueAt(j)));
}
timers.append(b.timers.keyAt(i), value);
}
stats.clear();
for (int i = 0; i < b.stats.size(); i++) {
ArrayMap<String, HealthStatsMetrics> bValue = b.stats.valueAt(i);
ArrayMap<String, HealthStatsMetrics> value = new ArrayMap<>();
for (int j = 0; j < bValue.size(); j++) {
value.put(bValue.keyAt(j), new HealthStatsMetrics(bValue.valueAt(j)));
}
stats.append(b.stats.keyAt(i), value);
}
return this;
}