View Javadoc
1   package de.dlr.shepard.context.references.timeseriesreference.io;
2   
3   import de.dlr.shepard.context.references.basicreference.io.BasicReferenceIO;
4   import de.dlr.shepard.context.references.timeseriesreference.model.TimeseriesReference;
5   import de.dlr.shepard.data.timeseries.model.Timeseries;
6   import jakarta.validation.constraints.NotEmpty;
7   import jakarta.validation.constraints.NotNull;
8   import java.util.List;
9   import lombok.Data;
10  import lombok.EqualsAndHashCode;
11  import lombok.NoArgsConstructor;
12  import org.eclipse.microprofile.openapi.annotations.media.Schema;
13  
14  @Data
15  @EqualsAndHashCode(callSuper = true)
16  @NoArgsConstructor
17  @Schema(name = "TimeseriesReference")
18  public class TimeseriesReferenceIO extends BasicReferenceIO {
19  
20    @NotNull
21    @Schema(required = true)
22    private long start;
23  
24    @NotNull
25    @Schema(required = true)
26    private long end;
27  
28    @NotEmpty
29    @Schema(required = true)
30    private List<Timeseries> timeseries;
31  
32    @NotNull
33    @Schema(required = true)
34    private long timeseriesContainerId;
35  
36    public TimeseriesReferenceIO(TimeseriesReference ref) {
37      super(ref);
38      this.start = ref.getStart();
39      this.end = ref.getEnd();
40      this.timeseries = ref.getReferencedTimeseriesList().stream().map(entity -> entity.toTimeseries()).toList();
41      this.timeseriesContainerId = ref.getTimeseriesContainer() != null ? ref.getTimeseriesContainer().getId() : -1;
42    }
43  }