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     *
36     * @return The time interval that measurements get grouped by to apply the aggregate function.
37     */
38    public Optional<Long> getTimeSliceNanoseconds() {
39      return Optional.ofNullable(timeSliceNanoseconds);
40    }
41  
42    /**
43     *
44     * @return The fill option for missing values when applying aggregate functions on possibly empty time slices.
45     */
46    public Optional<FillOption> getFillOption() {
47      return Optional.ofNullable(fillOption);
48    }
49  
50    /**
51     *
52     * @return The aggregate function.
53     */
54    public Optional<AggregateFunction> getFunction() {
55      return Optional.ofNullable(function);
56    }
57  }