From 4d3250548793eb5f2415491eb0b1258289e12297 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 4 Jun 2018 10:31:09 +0000 Subject: [PATCH] Refs #11288: Made resource-registry more RESTful Task-Url: https://support.d4science.org/issues/11288 git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry-schema-client@167856 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../ResourceRegistrySchemaClientImpl.java | 37 +++++-------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/schema/ResourceRegistrySchemaClientImpl.java b/src/main/java/org/gcube/informationsystem/resourceregistry/schema/ResourceRegistrySchemaClientImpl.java index 37e5dd2..9426342 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/schema/ResourceRegistrySchemaClientImpl.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/schema/ResourceRegistrySchemaClientImpl.java @@ -46,29 +46,6 @@ public class ResourceRegistrySchemaClientImpl implements ResourceRegistrySchemaC return httpCall; } - /* - protected AccessType getType(Class clazz) { - if(ConsistsOf.class.isAssignableFrom(clazz)) { - return AccessType.CONSISTS_OF; - } else if(IsRelatedTo.class.isAssignableFrom(clazz)) { - return AccessType.IS_RELATED_TO; - } else if(Relation.class.isAssignableFrom(clazz)) { - return AccessType.RELATION; - } else if(Resource.class.isAssignableFrom(clazz)) { - return AccessType.RESOURCE; - } else if(Facet.class.isAssignableFrom(clazz)) { - return AccessType.FACET; - } else if(Embedded.class.isAssignableFrom(clazz)) { - return AccessType.EMBEDDED; - } else if(Entity.class.isAssignableFrom(clazz)) { - return AccessType.ENTITY; - } else { - throw new RuntimeException("Type " + clazz.getSimpleName() + " is not an IS base type.") ; - } - } - */ - - @Override public TypeDefinition create(Class clz) throws SchemaException, ResourceRegistryException { @@ -88,14 +65,20 @@ public class ResourceRegistrySchemaClientImpl implements ResourceRegistrySchemaC public String create(String baseType, String typeDefinitition) throws ContextAlreadyPresentException, ResourceRegistryException { try { logger.trace("Going to create: {}", typeDefinitition); + TypeDefinition typeDefinitionObj = TypeBinder.deserializeTypeDefinition(typeDefinitition); + StringWriter stringWriter = new StringWriter(); stringWriter.append(PATH_SEPARATOR); - stringWriter.append(SchemaPath.SCHEMA_PATH_PART); + stringWriter.append(SchemaPath.SCHEMAS_PATH_PART); stringWriter.append(PATH_SEPARATOR); - stringWriter.append(baseType); + stringWriter.append(typeDefinitionObj.getName()); + + Map parameters = new HashMap<>(); + parameters.put(SchemaPath.BASE_TYPE_PATH_PARAM, baseType); + HTTPCall httpCall = getHTTPCall(); - String c = httpCall.call(String.class, stringWriter.toString(), HTTPMETHOD.PUT, typeDefinitition); + String c = httpCall.call(String.class, stringWriter.toString(), HTTPMETHOD.PUT, parameters, typeDefinitition); logger.trace("{} successfully created", c); return c; @@ -129,7 +112,7 @@ public class ResourceRegistrySchemaClientImpl implements ResourceRegistrySchemaC logger.info("Going to get {} schema", type); StringWriter stringWriter = new StringWriter(); stringWriter.append(PATH_SEPARATOR); - stringWriter.append(SchemaPath.SCHEMA_PATH_PART); + stringWriter.append(SchemaPath.SCHEMAS_PATH_PART); stringWriter.append(PATH_SEPARATOR); stringWriter.append(type);