1 package de.dlr.shepard.neo4Core.entities;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.neo4j.ogm.annotation.NodeEntity;
7 import org.neo4j.ogm.annotation.Relationship;
8
9 import de.dlr.shepard.util.Constants;
10 import de.dlr.shepard.util.HasId;
11 import lombok.Data;
12 import lombok.NoArgsConstructor;
13 import lombok.ToString;
14
15 @NodeEntity
16 @Data
17 @ToString(callSuper = true, onlyExplicitlyIncluded = true)
18 @NoArgsConstructor
19 public class Collection extends AbstractDataObject {
20
21 @Relationship(type = Constants.HAS_DATAOBJECT)
22 private List<DataObject> dataObjects = new ArrayList<>();
23
24 @Relationship(type = Constants.POINTS_TO, direction = Relationship.INCOMING)
25 private List<CollectionReference> incoming = new ArrayList<>();
26
27 @Relationship(type = Constants.HAS_PERMISSIONS)
28 private Permissions permissions;
29
30
31
32
33
34
35 public Collection(long id) {
36 super(id);
37 }
38
39
40
41
42
43
44 public void addDataObject(DataObject dataObject) {
45 dataObjects.add(dataObject);
46 }
47
48 @Override
49 public int hashCode() {
50 final int prime = 31;
51 int result = super.hashCode();
52 result = prime * result + HasId.hashcodeHelper(dataObjects);
53 result = prime * result + HasId.hashcodeHelper(incoming);
54 result = prime * result + HasId.hashcodeHelper(permissions);
55 return result;
56 }
57
58 @Override
59 public boolean equals(Object obj) {
60 if (this == obj)
61 return true;
62 if (!super.equals(obj))
63 return false;
64 if (!(obj instanceof Collection))
65 return false;
66 Collection other = (Collection) obj;
67 return HasId.equalsHelper(dataObjects, other.dataObjects) && HasId.equalsHelper(incoming, other.incoming)
68 && HasId.equalsHelper(permissions, other.permissions);
69 }
70
71 }