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