From 613fc76259d41203a5411c6af0d1cf294b59398c Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Tue, 19 Jan 2021 11:21:53 +0100 Subject: [PATCH] Changing the way to serialise a type of a property --- .../informationsystem/types/PropertyTypeName.java | 9 ++++++--- .../informationsystem/types/TypeNameTest.java | 14 +++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/gcube/informationsystem/types/PropertyTypeName.java b/src/main/java/org/gcube/informationsystem/types/PropertyTypeName.java index 2e746dc..27d090e 100644 --- a/src/main/java/org/gcube/informationsystem/types/PropertyTypeName.java +++ b/src/main/java/org/gcube/informationsystem/types/PropertyTypeName.java @@ -205,14 +205,17 @@ public class PropertyTypeName { } try { + genericBaseType = null; genericBaseType = BaseType.getBaseTypeFromString(generic); - if(genericBaseType.ordinal()>BaseType.PROPERTY.ordinal()) { - throw new IllegalArgumentException("The generic of a " + baseType.toString() + " cannot be a Set, a List or a Map."); - } }catch (IllegalArgumentException e) { genericClassName = generic; } + if(genericBaseType!= null && genericBaseType.ordinal()>BaseType.PROPERTY.ordinal()) { + throw new IllegalArgumentException("The generic of a " + baseType.toString() + " cannot be a Set, a List or a Map."); + } + + } public String getType() { diff --git a/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java b/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java index e17cf30..70194fa 100644 --- a/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java +++ b/src/test/java/org/gcube/informationsystem/types/TypeNameTest.java @@ -87,7 +87,7 @@ public class TypeNameTest { checkPropertyTypeName(value, expectedBaseType); throw new Exception(value + " should not be a valid value"); }catch (IllegalArgumentException e) { - logger.debug("{} is not a valid value as expected", value); + logger.debug("{} is not a valid value as expected : {}", value, e.getMessage()); // This is what we want } } @@ -99,16 +99,16 @@ public class TypeNameTest { stringBuffer.append(baseType.toString()); if(baseType.ordinal()>BaseType.PROPERTY.ordinal()) { stringBuffer.append("<"); - switch (baseType) { case MAP: - // TODO - continue; + stringBuffer.append(BaseType.BYTE.toString()); + stringBuffer.append(","); + stringBuffer.append(BaseType.STRING.toString()); + stringBuffer.append(">"); + break; case SET: case LIST: stringBuffer.append(BaseType.SET.toString()); - stringBuffer.append("<"); - // TODO stringBuffer.append(">"); break; @@ -116,7 +116,7 @@ public class TypeNameTest { break; } - stringBuffer.append(">"); + assertInvalidBasePropertyType(stringBuffer.toString(), baseType);