1 package de.dlr.shepard.context.labjournal.entities;
2
3 import de.dlr.shepard.common.neo4j.entities.AbstractEntity;
4 import de.dlr.shepard.common.util.HasId;
5 import de.dlr.shepard.common.util.Neo4jLabels;
6 import de.dlr.shepard.context.collection.entities.DataObject;
7 import java.util.Objects;
8 import lombok.Getter;
9 import lombok.NoArgsConstructor;
10 import lombok.Setter;
11 import lombok.ToString;
12 import org.neo4j.ogm.annotation.NodeEntity;
13 import org.neo4j.ogm.annotation.Relationship;
14 import org.neo4j.ogm.annotation.Relationship.Direction;
15
16 @NodeEntity
17 @Getter
18 @Setter
19 @ToString
20 @NoArgsConstructor
21 public class LabJournalEntry extends AbstractEntity {
22
23 private String content;
24
25 @Relationship(type = Neo4jLabels.HAS_LABJOURNAL_ENTRY, direction = Direction.INCOMING)
26 private DataObject dataObject;
27
28 @Override
29 public int hashCode() {
30 final int prime = 31;
31 int result = super.hashCode();
32 result = prime * result + Objects.hash(content);
33 result = prime * result + HasId.hashcodeHelper(dataObject);
34 return result;
35 }
36
37 @Override
38 public boolean equals(Object obj) {
39 if (!(obj instanceof LabJournalEntry)) return false;
40 LabJournalEntry other = (LabJournalEntry) obj;
41 return (
42 super.equals(other) && Objects.equals(content, other.content) && HasId.equalsHelper(dataObject, other.dataObject)
43 );
44 }
45 }