diff options
author | gjoranv <gjoranv@gmail.com> | 2023-08-17 15:23:04 +0200 |
---|---|---|
committer | gjoranv <gjoranv@gmail.com> | 2023-08-18 13:48:32 +0200 |
commit | d1ec754bceb31c541619fde39ecb5c6e1bcccbfe (patch) | |
tree | 80f46e36511151238c8dace2d661326d7f584204 /metrics | |
parent | 5c51af58b98c987975e3db62d9ed09d72b8188d8 (diff) |
Add Builder to MetricSet class
Diffstat (limited to 'metrics')
-rw-r--r-- | metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java b/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java index b8409fb7663..d502109e24e 100644 --- a/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java +++ b/metrics/src/main/java/ai/vespa/metrics/set/MetricSet.java @@ -88,4 +88,38 @@ public class MetricSet { return metricMap; } + + public static class Builder { + private final String id; + private final Set<Metric> metrics = new LinkedHashSet<>(); + private final Set<MetricSet> children = new LinkedHashSet<>(); + + public Builder(String id) { + this.id = id; + } + + public Builder metric(String metric) { + return metric(new Metric(metric)); + } + + public Builder metric(Metric metric) { + metrics.add(metric); + return this; + } + + public Builder metrics(Collection<Metric> metrics) { + this.metrics.addAll(metrics); + return this; + } + + public Builder metricSet(MetricSet child) { + children.add(child); + return this; + } + + public MetricSet build() { + return new MetricSet(id, metrics, children); + } + } + } |