class PrometheusSummary extends PrometheusData<SummaryPointData> implements SummaryData {

    private final List<SummaryPointData> points;

    PrometheusSummary(SummarySnapshot snapshot, long currentTimeMillis) {
        super(MetricDataType.SUMMARY);
        this.points = snapshot.getDataPoints().stream()
                .map(dataPoint -> toOtelDataPoint(dataPoint, currentTimeMillis))
                .collect(Collectors.toList());
    }

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

    private SummaryPointData toOtelDataPoint(SummarySnapshot.SummaryDataPointSnapshot dataPoint, long currentTimeMillis) {<FILL_FUNCTION_BODY>}
}

            SummaryPointDataImpl result = new SummaryPointDataImpl(
                    dataPoint.hasSum() ? dataPoint.getSum() : Double.NaN,
                    dataPoint.hasCount() ? dataPoint.getCount() : 0,
                    getStartEpochNanos(dataPoint),
                    getEpochNanos(dataPoint, currentTimeMillis),
                    labelsToAttributes(dataPoint.getLabels()),
                    convertExemplars(dataPoint.getExemplars())
            );
            for (Quantile quantile : dataPoint.getQuantiles()) {
                result.addValue(quantile.getQuantile(), quantile.getValue());
            }
            return result;
    
<methods>public void <init>(MetricDataType) ,public MetricDataType getType() <variables>private final non-sealed MetricDataType type