View Javadoc
1   package de.dlr.shepard.common.neo4j.entities;
2   
3   import de.dlr.shepard.common.util.Neo4jLabels;
4   import de.dlr.shepard.context.version.entities.Version;
5   import de.dlr.shepard.context.version.entities.VersionableEntity;
6   import java.util.Map;
7   import lombok.Data;
8   import lombok.EqualsAndHashCode;
9   import lombok.NoArgsConstructor;
10  import lombok.ToString;
11  import org.neo4j.ogm.annotation.Index;
12  import org.neo4j.ogm.annotation.NodeEntity;
13  import org.neo4j.ogm.annotation.Properties;
14  import org.neo4j.ogm.annotation.Relationship;
15  
16  @NodeEntity(label = Neo4jLabels.VERSIONABLE_ENTITY)
17  @Data
18  @ToString(callSuper = true)
19  @NoArgsConstructor
20  @EqualsAndHashCode(callSuper = true)
21  public abstract class AbstractDataObject extends BasicEntity implements VersionableEntity {
22  
23    @Index
24    private Long shepardId;
25  
26    @Relationship(type = Neo4jLabels.HAS_VERSION)
27    protected Version version;
28  
29    private String description;
30  
31    @ToString.Exclude
32    @Properties(delimiter = "||")
33    private Map<String, String> attributes;
34  
35    /**
36     * For testing purposes only
37     *
38     * @param id identifies the entity
39     */
40    protected AbstractDataObject(long id) {
41      super(id);
42    }
43  
44    @Override
45    public long getNumericId() {
46      return getShepardId();
47    }
48  }