From c5d37cb1ae4f279b06e5c14d1efb34bff7ce8681 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Wed, 1 Mar 2023 15:45:12 +0100 Subject: [PATCH] adding superclasses in header properties --- .../instances/base/ElementManagement.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/ElementManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/ElementManagement.java index ac555d6..fd0be28 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/ElementManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/ElementManagement.java @@ -29,6 +29,7 @@ import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.Element; import org.gcube.informationsystem.base.reference.IdentifiableElement; import org.gcube.informationsystem.model.reference.properties.Header; +import org.gcube.informationsystem.model.reference.properties.Property; import org.gcube.informationsystem.resourceregistry.api.contexts.ContextCache; import org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException; import org.gcube.informationsystem.resourceregistry.api.exceptions.AvailableInAnotherContextException; @@ -51,6 +52,7 @@ import org.gcube.informationsystem.resourceregistry.utils.Utility; import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.entities.ResourceType; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; +import org.gcube.informationsystem.types.reference.properties.PropertyType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1150,6 +1152,15 @@ public abstract class ElementManagement { if(ContextUtility.getIncludeInstanceContexts().get()) { ((ObjectNode) headerJson).set(Header.__CONTEXTS, getContextsAsObjectNode()); } + + TypesCache typesCache = TypesCache.getInstance(); + @SuppressWarnings("unchecked") + CachedType> headerType = (CachedType>) typesCache.getCachedType(Header.NAME); + ObjectMapper objectMapper = new ObjectMapper(); + Collection superClasses = headerType.getSuperTypes(); + ArrayNode arrayNode = objectMapper.valueToTree(superClasses); + ((ObjectNode) headerJson).replace(Element.SUPERCLASSES_PROPERTY, arrayNode); + return headerJson; }