diff --git a/src/main/java/org/gcube/informationsystem/model/reference/ModelElement.java b/src/main/java/org/gcube/informationsystem/model/reference/ModelElement.java new file mode 100644 index 0000000..9f34688 --- /dev/null +++ b/src/main/java/org/gcube/informationsystem/model/reference/ModelElement.java @@ -0,0 +1,13 @@ +package org.gcube.informationsystem.model.reference; + +import org.gcube.informationsystem.base.reference.IdentifiableElement; + +/** + * This interfaces is an helper to identify elements of the model + * i.e. REsource, Facet, IsRelatedTo, ConsistsOf + * + * @author Luca Frosini (ISTI - CNR) + */ +public interface ModelElement extends IdentifiableElement { + +} diff --git a/src/main/java/org/gcube/informationsystem/model/reference/entities/Entity.java b/src/main/java/org/gcube/informationsystem/model/reference/entities/Entity.java index 60b5063..ab4e447 100644 --- a/src/main/java/org/gcube/informationsystem/model/reference/entities/Entity.java +++ b/src/main/java/org/gcube/informationsystem/model/reference/entities/Entity.java @@ -4,6 +4,7 @@ package org.gcube.informationsystem.model.reference.entities; import org.gcube.informationsystem.base.reference.entities.EntityElement; +import org.gcube.informationsystem.model.reference.ModelElement; import org.gcube.informationsystem.types.annotations.Abstract; import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.TypeMetadata; @@ -18,7 +19,7 @@ import org.gcube.informationsystem.utils.TypeVersion; //@JsonDeserialize(as=EntityImpl.class) Do not uncomment to manage subclasses @TypeMetadata(name = Entity.NAME, description = "This is the base class for Entities", version = TypeVersion.MINIMAL_VERSION_STRING) @Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION) -public interface Entity extends EntityElement { +public interface Entity extends EntityElement, ModelElement { public static final String NAME = "Entity"; //Entity.class.getSimpleName(); diff --git a/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java b/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java index bbb50bf..58b37e5 100644 --- a/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java +++ b/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java @@ -13,6 +13,7 @@ import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.gcube.informationsystem.base.reference.SchemaMixedElement; import org.gcube.informationsystem.base.reference.relations.RelationElement; +import org.gcube.informationsystem.model.reference.ModelElement; import org.gcube.informationsystem.model.reference.entities.Entity; import org.gcube.informationsystem.model.reference.entities.Resource; import org.gcube.informationsystem.model.reference.properties.PropagationConstraint; @@ -32,7 +33,7 @@ import org.gcube.informationsystem.utils.TypeVersion; // @JsonDeserialize(as=RelationImpl.class) Do not uncomment to manage subclasses @TypeMetadata(name = Relation.NAME, description = "This is the base class for Relations", version = TypeVersion.MINIMAL_VERSION_STRING) @Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION) -public interface Relation extends RelationElement, SchemaMixedElement { +public interface Relation extends RelationElement, SchemaMixedElement, ModelElement { public static final String NAME = "Relation"; //Relation.class.getSimpleName();