001package io.prometheus.metrics.exporter.opentelemetry.otelmodel;
002
003import io.prometheus.metrics.shaded.io_opentelemetry_1_38_0.api.common.Attributes;
004import io.prometheus.metrics.shaded.io_opentelemetry_1_38_0.sdk.metrics.data.DoubleExemplarData;
005import io.prometheus.metrics.shaded.io_opentelemetry_1_38_0.sdk.metrics.data.SummaryPointData;
006import io.prometheus.metrics.shaded.io_opentelemetry_1_38_0.sdk.metrics.data.ValueAtQuantile;
007
008import java.util.ArrayList;
009import java.util.List;
010
011public class SummaryPointDataImpl extends PointDataImpl implements SummaryPointData {
012    private final double sum;
013    private final long count;
014    private final List<ValueAtQuantile> values;
015
016    public SummaryPointDataImpl(double sum, long count, long startEpochNanos, long epochNanos, Attributes attributes, List<DoubleExemplarData> exemplars) {
017        super(startEpochNanos, epochNanos, attributes, exemplars);
018        this.sum = sum;
019        this.count = count;
020        this.values = new ArrayList<>();
021    }
022
023    void addValue(double quantile, double value) {
024        values.add(new ValueAtQuantileImpl(quantile, value));
025    }
026
027    @Override
028    public long getCount() {
029        return count;
030    }
031
032    @Override
033    public double getSum() {
034        return sum;
035    }
036
037    @Override
038    public List<ValueAtQuantile> getValues() {
039        return values;
040    }
041}