View Javadoc
1   package de.dlr.shepard.data.timeseries.model;
2   
3   import de.dlr.shepard.data.timeseries.model.enums.AggregateFunction;
4   import de.dlr.shepard.data.timeseries.model.enums.FillOption;
5   import java.util.Optional;
6   import lombok.AllArgsConstructor;
7   import lombok.Data;
8   import lombok.EqualsAndHashCode;
9   import lombok.NonNull;
10  import lombok.RequiredArgsConstructor;
11  
12  @EqualsAndHashCode
13  @RequiredArgsConstructor
14  @AllArgsConstructor
15  @Data
16  public class TimeseriesDataPointsQueryParams {
17  
18    /**
19     * The start of the timeseries part to be fetched in nanoseconds since unix epoch
20     */
21    @NonNull
22    private Long startTime;
23  
24    /**
25     * The end of the timeseries part to be fetched in nanoseconds since unix epoch
26     */
27    @NonNull
28    private Long endTime;
29  
30    private Long timeSliceNanoseconds;
31    private FillOption fillOption;
32    private AggregateFunction function;
33  
34    /**
35     * @return The time interval that measurements get grouped by to apply the aggregate function.
36     */
37    public Optional<Long> getTimeSliceNanoseconds() {
38      return Optional.ofNullable(timeSliceNanoseconds);
39    }
40  
41    /**
42     * @return The fill option for missing values when applying aggregate functions on possibly empty time slices.
43     */
44    public Optional<FillOption> getFillOption() {
45      return Optional.ofNullable(fillOption);
46    }
47  
48    /**
49     * @return The aggregate function.
50     */
51    public Optional<AggregateFunction> getFunction() {
52      return Optional.ofNullable(function);
53    }
54  }