clz) {
super(clz);
diff --git a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyDefinitionImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyDefinitionImpl.java
index caffbbb..1c52cf0 100644
--- a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyDefinitionImpl.java
+++ b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyDefinitionImpl.java
@@ -65,7 +65,9 @@ public final class PropertyDefinitionImpl implements PropertyDefinition {
return name;
}
-
+ protected PropertyDefinitionImpl() {
+
+ }
public PropertyDefinitionImpl(ISProperty propertyAnnotation, Method method) {
String name = propertyAnnotation.name().isEmpty()?getPropertyNameFromMethodName(method):propertyAnnotation.name();
diff --git a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeDefinitionImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeDefinitionImpl.java
index a72517a..294f31c 100644
--- a/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeDefinitionImpl.java
+++ b/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeDefinitionImpl.java
@@ -3,22 +3,26 @@ package org.gcube.informationsystem.types.impl.properties;
import org.gcube.informationsystem.base.reference.properties.BaseProperty;
import org.gcube.informationsystem.types.impl.TypeDefinitionImpl;
import org.gcube.informationsystem.types.reference.TypeDefinition;
-import org.gcube.informationsystem.types.reference.properties.PropertyTypeDefiniton;
+import org.gcube.informationsystem.types.reference.properties.PropertyTypeDefinition;
import com.fasterxml.jackson.annotation.JsonTypeName;
-@JsonTypeName(value=PropertyTypeDefiniton.NAME)
-public class PropertyTypeDefinitionImpl extends TypeDefinitionImpl
implements PropertyTypeDefiniton
{
+@JsonTypeName(value=PropertyTypeDefinition.NAME)
+public final class PropertyTypeDefinitionImpl
extends TypeDefinitionImpl
implements PropertyTypeDefinition
{
/**
* Generated Serial Version UID
*/
private static final long serialVersionUID = 7532701373450638829L;
+ protected PropertyTypeDefinitionImpl() {
+ super();
+ }
+
public PropertyTypeDefinitionImpl(Class
clz) {
super(clz);
this.superClasses = retrieveSuperClasses(clz, BaseProperty.class, clz == BaseProperty.class ? null : BaseProperty.NAME);
- if(PropertyTypeDefiniton.class.isAssignableFrom(clz)) {
+ if(PropertyTypeDefinition.class.isAssignableFrom(clz)) {
this.superClasses.add(TypeDefinition.class.getSimpleName());
}
}
diff --git a/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeDefinitionImpl.java b/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeDefinitionImpl.java
index 0399a4d..b6d41b7 100644
--- a/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeDefinitionImpl.java
+++ b/src/main/java/org/gcube/informationsystem/types/impl/relations/RelationTypeDefinitionImpl.java
@@ -20,7 +20,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonTypeName;
@JsonTypeName(value=RelationTypeDefinition.NAME)
-public class RelationTypeDefinitionImpl>
+public final class RelationTypeDefinitionImpl>
extends TypeDefinitionImpl implements RelationTypeDefinition {
/**
@@ -35,6 +35,10 @@ public class RelationTypeDefinitionImpl clz) {
super(clz);
diff --git a/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyTypeDefiniton.java b/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyTypeDefinition.java
similarity index 70%
rename from src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyTypeDefiniton.java
rename to src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyTypeDefinition.java
index 93b7efc..cb17ce1 100644
--- a/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyTypeDefiniton.java
+++ b/src/main/java/org/gcube/informationsystem/types/reference/properties/PropertyTypeDefinition.java
@@ -9,8 +9,8 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonDeserialize(as = PropertyTypeDefinitionImpl.class)
-public interface PropertyTypeDefiniton extends TypeDefinition
, BaseProperty {
+public interface PropertyTypeDefinition
extends TypeDefinition
, BaseProperty {
- public static final String NAME = "PropertyTypeDefiniton"; // PropertyTypeDefiniton.class.getSimpleName();
+ public static final String NAME = "PropertyTypeDefinition"; // PropertyTypeDefinition.class.getSimpleName();
}
diff --git a/src/main/java/org/gcube/informationsystem/utils/ISMapper.java b/src/main/java/org/gcube/informationsystem/utils/ISMapper.java
index 7a257c6..63b93de 100644
--- a/src/main/java/org/gcube/informationsystem/utils/ISMapper.java
+++ b/src/main/java/org/gcube/informationsystem/utils/ISMapper.java
@@ -63,7 +63,13 @@ public abstract class ISMapper {
SchemaAction schemaAction = new ObjectMappingERAction(mapper);
try {
- ISMDiscovery.manageISM(schemaAction);
+ List packages = new ArrayList();
+ for(AccessType accessType : accessTypes) {
+ Class clz = accessType.getTypeClass();
+ packages.add(clz.getPackage());
+ }
+ ISMDiscovery.manageISM(schemaAction, packages.toArray(new Package[]{}));
+
} catch(Exception e) {
logger.error("Error registering types", e);
}
diff --git a/src/main/java/org/gcube/informationsystem/utils/discovery/ISMDiscovery.java b/src/main/java/org/gcube/informationsystem/utils/discovery/ISMDiscovery.java
index 8a3f509..8f33096 100644
--- a/src/main/java/org/gcube/informationsystem/utils/discovery/ISMDiscovery.java
+++ b/src/main/java/org/gcube/informationsystem/utils/discovery/ISMDiscovery.java
@@ -13,7 +13,6 @@ import org.gcube.informationsystem.base.reference.ISManageable;
import org.gcube.informationsystem.base.reference.entities.BaseEntity;
import org.gcube.informationsystem.base.reference.properties.BaseProperty;
import org.gcube.informationsystem.base.reference.relations.BaseRelation;
-import org.gcube.informationsystem.model.reference.properties.Property;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -76,7 +75,7 @@ public class ISMDiscovery {
analizeISM(parent);
}
- if(root == Property.class) {
+ if(root == BaseProperty.class) {
for(Method m : clz.getDeclaredMethods()) {
m.setAccessible(true);
@@ -116,8 +115,9 @@ public class ISMDiscovery {
@SuppressWarnings("unchecked")
public static void manageISM(SchemaAction schemaAction, Package... packages) throws Exception {
ISMDiscovery propertyDiscovery = new ISMDiscovery<>(BaseProperty.class);
- if(Objects.nonNull(packages))
+ if(Objects.nonNull(packages)) {
Arrays.stream(packages).forEach(p -> propertyDiscovery.addPackage(p));
+ }
propertyDiscovery.discover();
for(Class property : propertyDiscovery.getDiscovered()) {
logger.trace("Going to manage : {}", property);
@@ -125,8 +125,9 @@ public class ISMDiscovery {
}
ISMDiscovery entityDiscovery = new ISMDiscovery<>(BaseEntity.class);
- if(Objects.nonNull(packages))
+ if(Objects.nonNull(packages)) {
Arrays.stream(packages).forEach(p -> entityDiscovery.addPackage(p));
+ }
entityDiscovery.discover();
for(Class entity : entityDiscovery.getDiscovered()) {