class PrometheusStateSet extends PrometheusData<DoublePointData> implements SumData<DoublePointData> {

    private final List<DoublePointData> points;
    public PrometheusStateSet(StateSetSnapshot snapshot, long currentTimeMillis) {
        super(MetricDataType.DOUBLE_SUM);
        this.points = new ArrayList<>();
        for (StateSetSnapshot.StateSetDataPointSnapshot dataPoint : snapshot.getDataPoints()) {
            for (int i=0; i<dataPoint.size(); i++) {
                this.points.add(toOtelDataPoint(snapshot, dataPoint, i, currentTimeMillis));
            }
        }
    }

    @Override
    public boolean isMonotonic() {
        return false;
    }

    @Override
    public AggregationTemporality getAggregationTemporality() {
        return AggregationTemporality.CUMULATIVE;
    }

    @Override
    public Collection<DoublePointData> getPoints() {
        return points;
    }

    private DoublePointData toOtelDataPoint(StateSetSnapshot snapshot, StateSetSnapshot.StateSetDataPointSnapshot dataPoint, int i, long currentTimeMillis) {<FILL_FUNCTION_BODY>}
}

        return new DoublePointDataImpl(
                dataPoint.isTrue(i) ? 1.0 : 0.0,
                getStartEpochNanos(dataPoint),
                getEpochNanos(dataPoint, currentTimeMillis),
                labelsToAttributes(dataPoint.getLabels().merge(Labels.of(snapshot.getMetadata().getName(), dataPoint.getName(i)))),
                Collections.emptyList()
        );
    
<methods>public void <init>(MetricDataType) ,public MetricDataType getType() <variables>private final non-sealed MetricDataType type