diff --git a/src/main/java/org/gcube/informationsystem/types/Type.java b/src/main/java/org/gcube/informationsystem/types/Type.java index 55f62b3..bc93317 100644 --- a/src/main/java/org/gcube/informationsystem/types/Type.java +++ b/src/main/java/org/gcube/informationsystem/types/Type.java @@ -121,13 +121,22 @@ public class Type{ * @return OType instance if found, otherwise null */ public static OType getTypeByClass(final Class iClass) { - if (iClass == null) + if (iClass == null) { return null; - - OType type = TYPES_BY_CLASS.get(iClass); + } - return type; - } + OType type = TYPES_BY_CLASS.get(iClass); + if (type != null) { + return type; + } + + if(Enum.class.isAssignableFrom(iClass)){ + type = TYPES_BY_CLASS.get(Enum.class); + } + return type; + } + + } diff --git a/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java b/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java index 9feb48b..5eb27d5 100644 --- a/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java +++ b/src/test/java/org/gcube/informationsystem/types/EntitySchemaDefinition.java @@ -6,7 +6,7 @@ package org.gcube.informationsystem.types; import java.lang.reflect.Field; import org.gcube.informationsystem.model.annotations.Abstract; -import org.gcube.informationsystem.model.entity.Facet; +import org.gcube.informationsystem.model.embedded.RelationProperty; import org.gcube.informationsystem.types.TypeBinder.TypeDefinition; import org.junit.Test; import org.slf4j.Logger; @@ -59,11 +59,10 @@ public class EntitySchemaDefinition { } @Test - public void test() { - Class facet = Facet.class; - - createTypeDefinition(facet); - + public void test() throws Exception { + Class clz = RelationProperty.class; + String json = TypeBinder.serializeType(clz); + logger.trace(json); } }