package de.ph87.data.series.graph; import de.ph87.data.series.*; import de.ph87.data.series.meter.*; import de.ph87.data.series.varying.*; import lombok.*; import lombok.extern.slf4j.*; import org.springframework.stereotype.*; import java.util.*; @Slf4j @Service @RequiredArgsConstructor public class GraphService { private final SeriesService seriesService; private final VaryingService varyingService; private final MeterService meterService; @NonNull public Graph getGraph(final long seriesId, @NonNull final Aligned begin, @NonNull final Aligned end, final int width, final int height, final int border) { final SeriesDto series = seriesService.getDtoById(seriesId); final List entries = switch (series.getType()) { case METER -> meterService.getPoints(series, begin, end); case VARYING -> varyingService.getPoints(series, begin, end); }; return new Graph(series, entries, begin, end, width, height, border); } }