in metrics/src/main/java/com/facebook/battery/metrics/healthstats/HealthStatsMetrics.java [307:355]
public HealthStatsMetrics set(HealthStats healthStats) {
dataType = healthStats.getDataType();
measurement.clear();
for (int i = 0; i < healthStats.getMeasurementKeyCount(); i++) {
int key = healthStats.getMeasurementKeyAt(i);
measurement.put(key, healthStats.getMeasurement(key));
}
measurements.clear();
for (int i = 0; i < healthStats.getMeasurementsKeyCount(); i++) {
int key = healthStats.getMeasurementsKeyAt(i);
ArrayMap<String, Long> value = new ArrayMap<>();
for (Map.Entry<String, Long> entry : healthStats.getMeasurements(key).entrySet()) {
value.put(entry.getKey(), entry.getValue());
}
measurements.put(key, value);
}
timer.clear();
for (int i = 0; i < healthStats.getTimerKeyCount(); i++) {
int key = healthStats.getTimerKeyAt(i);
TimerMetrics value =
new TimerMetrics(healthStats.getTimerCount(key), healthStats.getTimerTime(key));
timer.put(key, value);
}
timers.clear();
for (int i = 0; i < healthStats.getTimersKeyCount(); i++) {
int key = healthStats.getTimersKeyAt(i);
ArrayMap<String, TimerMetrics> value = new ArrayMap<>();
for (Map.Entry<String, TimerStat> entry : healthStats.getTimers(key).entrySet()) {
value.put(entry.getKey(), new TimerMetrics(entry.getValue()));
}
timers.put(key, value);
}
stats.clear();
for (int i = 0; i < healthStats.getStatsKeyCount(); i++) {
int key = healthStats.getStatsKeyAt(i);
ArrayMap<String, HealthStatsMetrics> value = new ArrayMap<>();
for (Map.Entry<String, HealthStats> entry : healthStats.getStats(key).entrySet()) {
value.put(entry.getKey(), new HealthStatsMetrics(entry.getValue()));
}
stats.put(key, value);
}
return this;
}