diff --git a/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java
index 7d49f2a..2d27bb6 100644
--- a/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java
+++ b/src/main/java/org/gcube/informationsystem/types/impl/entities/EntityTypeImpl.java
@@ -3,6 +3,7 @@ package org.gcube.informationsystem.types.impl.entities;
import java.io.StringWriter;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.entities.EntityElement;
import org.gcube.informationsystem.context.reference.entities.Context;
import org.gcube.informationsystem.model.reference.entities.Facet;
@@ -97,5 +98,23 @@ public class EntityTypeImpl extends TypeImpl implements EntityType {
}
}
}
+
+ @Override
+ public AccessType getAccessType() {
+
+ if(name.compareTo(Context.NAME)==0) {
+ return AccessType.CONTEXT;
+ }
+
+ if(name.compareTo(EntityType.NAME)==0) {
+ return AccessType.ENTITY_TYPE;
+ }
+
+ if(name.compareTo(EntityElement.NAME)==0) {
+ return AccessType.ENTITY_ELEMENT;
+ }
+
+ return AccessType.ENTITY;
+ }
}
diff --git a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java
index 6a88fea..1a840f1 100644
--- a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java
+++ b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeImpl.java
@@ -3,6 +3,7 @@ package org.gcube.informationsystem.types.impl.properties;
import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.properties.PropertyElement;
import org.gcube.informationsystem.types.impl.TypeImpl;
import org.gcube.informationsystem.types.reference.properties.PropertyDefinition;
@@ -39,4 +40,13 @@ public final class PropertyTypeImpl
extends TypeImpl
return properties;
}
+ @Override
+ public AccessType getAccessType() {
+
+ if(name.compareTo(PropertyElement.NAME)==0) {
+ return AccessType.PROPERTY_ELEMENT;
+ }
+
+ return AccessType.PROPERTY;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java
index 645e808..c1cfacf 100644
--- a/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java
+++ b/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeImpl.java
@@ -4,6 +4,7 @@ import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.entities.EntityElement;
import org.gcube.informationsystem.base.reference.relations.RelationElement;
import org.gcube.informationsystem.context.reference.relations.IsParentOf;
@@ -132,4 +133,21 @@ public class RelationTypeImpl
this.target = target;
}
+ @Override
+ public AccessType getAccessType() {
+
+ if(name.compareTo(IsParentOf.NAME)==0) {
+ return AccessType.IS_PARENT_OF;
+ }
+
+ if(name.compareTo(RelationType.NAME)==0) {
+ return AccessType.RELATION_TYPE;
+ }
+
+ if(name.compareTo(RelationElement.NAME)==0) {
+ return AccessType.RELATION_ELEMENT;
+ }
+
+ return AccessType.RELATION;
+ }
}
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/Type.java b/src/main/java/org/gcube/informationsystem/types/reference/Type.java
index 4ec070c..bd5159b 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/Type.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/Type.java
@@ -6,6 +6,7 @@ import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonGetter;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnore;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.IdentifiableElement;
import org.gcube.informationsystem.types.annotations.Abstract;
import org.gcube.informationsystem.types.reference.properties.PropertyDefinition;
@@ -52,5 +53,10 @@ public interface Type extends IdentifiableElement {
public Set getSuperClasses();
public Set getProperties();
+
+ @JsonIgnore
+ public default AccessType getAccessType() {
+ return null;
+ }
}
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/entities/EntityType.java b/src/main/java/org/gcube/informationsystem/types/reference/entities/EntityType.java
index 1127ebc..ad60a87 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/entities/EntityType.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/entities/EntityType.java
@@ -4,6 +4,7 @@ import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.entities.EntityElement;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.impl.entities.EntityTypeImpl;
@@ -43,5 +44,9 @@ public interface EntityType extends Type, EntityElement {
/* {@link Type} is just a Java useful class. The type is not created in the IS. Hence the fields must be redefined */
+ @Override
+ public default AccessType getAccessType() {
+ return AccessType.ENTITY_ELEMENT;
+ }
}
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/entities/FacetType.java b/src/main/java/org/gcube/informationsystem/types/reference/entities/FacetType.java
index 68b7bb3..9f8e09d 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/entities/FacetType.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/entities/FacetType.java
@@ -4,6 +4,7 @@ import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.impl.entities.FacetTypeImpl;
import org.gcube.informationsystem.types.reference.Change;
@@ -26,5 +27,9 @@ public interface FacetType extends EntityType {
@ISProperty(name = Type.PROPERTIES_PROPERTY, readonly = false, mandatory = true, nullable = false)
public Set getProperties();
+ @Override
+ public default AccessType getAccessType() {
+ return AccessType.FACET;
+ }
}
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/entities/ResourceType.java b/src/main/java/org/gcube/informationsystem/types/reference/entities/ResourceType.java
index dbd8e2f..e5dae3e 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/entities/ResourceType.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/entities/ResourceType.java
@@ -3,6 +3,7 @@ package org.gcube.informationsystem.types.reference.entities;
import java.util.List;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.impl.entities.ResourceTypeImpl;
import org.gcube.informationsystem.types.reference.Change;
@@ -29,4 +30,9 @@ public interface ResourceType extends EntityType {
@ISProperty(name = RESOURCES_PROPERTY, readonly = false, mandatory = true, nullable = false)
public List getResources();
+ @Override
+ public default AccessType getAccessType() {
+ return AccessType.RESOURCE;
+ }
+
}
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java b/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java
index 095ca6a..c1b3151 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyType.java
@@ -4,6 +4,7 @@ import java.util.Set;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.IdentifiableElement;
import org.gcube.informationsystem.base.reference.properties.PropertyElement;
import org.gcube.informationsystem.model.reference.properties.Header;
@@ -52,5 +53,8 @@ public interface PropertyType extends PropertyElement
public Set getProperties();
/* TypeDefinition is just a Java useful class. The type is not created in the IS. Hence the fields must be redefined */
-
+ @Override
+ public default AccessType getAccessType() {
+ return AccessType.PROPERTY_ELEMENT;
+ }
}
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/relations/ConsistsOfType.java b/src/main/java/org/gcube/informationsystem/types/reference/relations/ConsistsOfType.java
index 7bee74b..4fb586c 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/relations/ConsistsOfType.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/relations/ConsistsOfType.java
@@ -1,6 +1,7 @@
package org.gcube.informationsystem.types.reference.relations;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.impl.relations.ConsistsOfTypeImpl;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
@@ -18,4 +19,9 @@ public interface ConsistsOfType extends RelationType {
public static final String NAME = "ConsistsOfType"; // ConsistsOfType.class.getSimpleName();
+ @Override
+ public default AccessType getAccessType() {
+ return AccessType.CONSISTS_OF;
+ }
+
}
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/relations/IsRelatedToType.java b/src/main/java/org/gcube/informationsystem/types/reference/relations/IsRelatedToType.java
index 7c4c749..d3854be 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/relations/IsRelatedToType.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/relations/IsRelatedToType.java
@@ -1,6 +1,7 @@
package org.gcube.informationsystem.types.reference.relations;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.types.impl.relations.IsRelatedToTypeImpl;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
@@ -17,4 +18,9 @@ public interface IsRelatedToType extends RelationType
@JsonGetter(value=TARGET_PROPERTY)
public String getTargetType();*/
+ @Override
+ public default AccessType getAccessType() {
+ return AccessType.RELATION_ELEMENT;
+ }
+
}