package io.pcp.parfait.timing; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; public class ThreadMetricSuite { private final List<ThreadMetric> metrics; private ThreadMetricSuite(Collection<? extends ThreadMetric> metrics) { this.metrics = new CopyOnWriteArrayList<ThreadMetric>(metrics); } public final void addMetric(ThreadMetric metric) { metrics.add(metric); } public final void addAllMetrics(Collection<ThreadMetric> metrics) { this.metrics.addAll(metrics); } public final List<ThreadMetric> metrics() { return Collections.unmodifiableList(metrics); } public static ThreadMetricSuite blank() { return new ThreadMetricSuite(Collections.<ThreadMetric>emptyList()); } public static ThreadMetricSuite withDefaultMetrics() { return new ThreadMetricSuite(StandardThreadMetrics.defaults()); } }