LabJournalEntry.java

package de.dlr.shepard.context.labjournal.entities;

import de.dlr.shepard.common.neo4j.entities.AbstractEntity;
import de.dlr.shepard.common.util.HasId;
import de.dlr.shepard.common.util.Neo4jLabels;
import de.dlr.shepard.context.collection.entities.DataObject;
import java.util.Objects;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;
import org.neo4j.ogm.annotation.Relationship.Direction;

@NodeEntity
@Getter
@Setter
@ToString
@NoArgsConstructor
public class LabJournalEntry extends AbstractEntity {

  private String content;

  @Relationship(type = Neo4jLabels.HAS_LABJOURNAL_ENTRY, direction = Direction.INCOMING)
  private DataObject dataObject;

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = super.hashCode();
    result = prime * result + Objects.hash(content);
    result = prime * result + HasId.hashcodeHelper(dataObject);
    return result;
  }

  @Override
  public boolean equals(Object obj) {
    if (!(obj instanceof LabJournalEntry)) return false;
    LabJournalEntry other = (LabJournalEntry) obj;
    return (
      super.equals(other) && Objects.equals(content, other.content) && HasId.equalsHelper(dataObject, other.dataObject)
    );
  }
}