AbstractDataObject.java
package de.dlr.shepard.common.neo4j.entities;
import de.dlr.shepard.common.util.Neo4jLabels;
import de.dlr.shepard.context.version.entities.Version;
import de.dlr.shepard.context.version.entities.VersionableEntity;
import java.util.Map;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.neo4j.ogm.annotation.Index;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Properties;
import org.neo4j.ogm.annotation.Relationship;
@NodeEntity(label = Neo4jLabels.VERSIONABLE_ENTITY)
@Data
@ToString(callSuper = true)
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public abstract class AbstractDataObject extends BasicEntity implements VersionableEntity {
@Index
private Long shepardId;
@Relationship(type = Neo4jLabels.HAS_VERSION)
protected Version version;
private String description;
@ToString.Exclude
@Properties(delimiter = "||")
private Map<String, String> attributes;
/**
* For testing purposes only
*
* @param id identifies the entity
*/
protected AbstractDataObject(long id) {
super(id);
}
@Override
public long getNumericId() {
return getShepardId();
}
}