View Javadoc
1   package de.dlr.shepard.context.references.timeseriesreference.model;
2   
3   import com.fasterxml.jackson.annotation.JsonIgnore;
4   import de.dlr.shepard.common.util.HasId;
5   import de.dlr.shepard.data.timeseries.model.Timeseries;
6   import de.dlr.shepard.data.timeseries.model.TimeseriesUniqueIdBuilder;
7   import jakarta.validation.constraints.NotBlank;
8   import lombok.Data;
9   import lombok.NoArgsConstructor;
10  import org.neo4j.ogm.annotation.GeneratedValue;
11  import org.neo4j.ogm.annotation.Id;
12  import org.neo4j.ogm.annotation.NodeEntity;
13  
14  @NodeEntity(label = "Timeseries")
15  @Data
16  @NoArgsConstructor
17  public class ReferencedTimeseriesNodeEntity implements HasId {
18  
19    @Id
20    @GeneratedValue
21    @JsonIgnore
22    private Long id;
23  
24    @NotBlank
25    private String measurement;
26  
27    @NotBlank
28    private String device;
29  
30    @NotBlank
31    private String location;
32  
33    @NotBlank
34    private String symbolicName;
35  
36    @NotBlank
37    private String field;
38  
39    public ReferencedTimeseriesNodeEntity(
40      String measurement,
41      String device,
42      String location,
43      String symbolicName,
44      String field
45    ) {
46      this.measurement = measurement;
47      this.device = device;
48      this.location = location;
49      this.symbolicName = symbolicName;
50      this.field = field;
51    }
52  
53    public ReferencedTimeseriesNodeEntity(Timeseries timeseries) {
54      this.measurement = timeseries.getMeasurement();
55      this.device = timeseries.getDevice();
56      this.location = timeseries.getLocation();
57      this.symbolicName = timeseries.getSymbolicName();
58      this.field = timeseries.getField();
59    }
60  
61    public Timeseries toTimeseries() {
62      return new Timeseries(
63        this.getMeasurement(),
64        this.getDevice(),
65        this.getLocation(),
66        this.getSymbolicName(),
67        this.getField()
68      );
69    }
70  
71    @Override
72    public String getUniqueId() {
73      return TimeseriesUniqueIdBuilder.buildUniqueId(measurement, device, location, symbolicName, field);
74    }
75  }