Data/src/main/java/de/ph87/data/series/graph/GraphService.java

38 lines
1.2 KiB
Java

package de.ph87.data.series.graph;
import de.ph87.data.series.Aligned;
import de.ph87.data.series.Alignment;
import de.ph87.data.series.SeriesDto;
import de.ph87.data.series.SeriesService;
import de.ph87.data.series.meter.MeterService;
import de.ph87.data.series.varying.VaryingService;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@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 Alignment innerAlignment, @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<GraphPoint> entries = switch (series.getType()) {
case METER -> meterService.getPoints(series, innerAlignment, begin, end);
case VARYING -> varyingService.getPoints(series, innerAlignment, begin, end);
};
return new Graph(series, entries, innerAlignment, begin, end, width, height, border);
}
}