From 2cac6ddc63a3b8825e1cbdf6aff0be5f76d68921 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 5 Feb 2021 11:30:47 +0100 Subject: [PATCH] Added convenient interface to identify Entity and Relation --- .../model/reference/ModelElement.java | 13 +++++++++++++ .../model/reference/entities/Entity.java | 3 ++- .../model/reference/relations/Relation.java | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/gcube/informationsystem/model/reference/ModelElement.java 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();