View Javadoc
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  	 * For testing purposes only
32  	 *
33  	 * @param id identifies the entity
34  	 */
35  	public Collection(long id) {
36  		super(id);
37  	}
38  
39  	/**
40  	 * Add one related DataObject
41  	 *
42  	 * @param dataObject the dataObject to add
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  }