View Javadoc
1   package de.dlr.shepard.context.references.timeseriesreference.model;
2   
3   import de.dlr.shepard.common.util.HasId;
4   import de.dlr.shepard.common.util.Neo4jLabels;
5   import de.dlr.shepard.context.references.basicreference.entities.BasicReference;
6   import de.dlr.shepard.data.timeseries.model.TimeseriesContainer;
7   import de.dlr.shepard.data.timeseries.model.TimeseriesTuple;
8   import java.util.ArrayList;
9   import java.util.List;
10  import java.util.Objects;
11  import lombok.Data;
12  import lombok.NoArgsConstructor;
13  import lombok.ToString;
14  import org.neo4j.ogm.annotation.NodeEntity;
15  import org.neo4j.ogm.annotation.Relationship;
16  
17  @NodeEntity
18  @Data
19  @NoArgsConstructor
20  public class TimeseriesReference extends BasicReference {
21  
22    private long start;
23  
24    private long end;
25  
26    @Relationship(type = Neo4jLabels.HAS_PAYLOAD)
27    private List<TimeseriesTuple> referencedTimeseriesList = new ArrayList<>();
28  
29    @ToString.Exclude
30    @Relationship(type = Neo4jLabels.IS_IN_CONTAINER)
31    private TimeseriesContainer timeseriesContainer;
32  
33    /**
34     * For testing purposes only
35     *
36     * @param id identifies the entity
37     */
38    public TimeseriesReference(long id) {
39      super(id);
40    }
41  
42    public void addTimeseries(TimeseriesTuple timeseries) {
43      this.referencedTimeseriesList.add(timeseries);
44    }
45  
46    @Override
47    public int hashCode() {
48      final int prime = 31;
49      int result = super.hashCode();
50      result = prime * result + Objects.hash(end, start, referencedTimeseriesList);
51      result = prime * result + HasId.hashcodeHelper(timeseriesContainer);
52      return result;
53    }
54  
55    @Override
56    public boolean equals(Object obj) {
57      if (this == obj) return true;
58      if (!super.equals(obj)) return false;
59      if (!(obj instanceof TimeseriesReference)) return false;
60      TimeseriesReference other = (TimeseriesReference) obj;
61      return (
62        end == other.end &&
63        start == other.start &&
64        Objects.equals(referencedTimeseriesList, other.referencedTimeseriesList) &&
65        HasId.equalsHelper(timeseriesContainer, other.timeseriesContainer)
66      );
67    }
68  }