adding superclasses in header properties

This commit is contained in:
Luca Frosini 2023-03-01 15:45:12 +01:00
parent a539b20174
commit c5d37cb1ae
1 changed files with 11 additions and 0 deletions

View File

@ -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<El extends OElement, T extends Type> {
if(ContextUtility.getIncludeInstanceContexts().get()) {
((ObjectNode) headerJson).set(Header.__CONTEXTS, getContextsAsObjectNode());
}
TypesCache typesCache = TypesCache.getInstance();
@SuppressWarnings("unchecked")
CachedType<PropertyType<Property>> headerType = (CachedType<PropertyType<Property>>) typesCache.getCachedType(Header.NAME);
ObjectMapper objectMapper = new ObjectMapper();
Collection<String> superClasses = headerType.getSuperTypes();
ArrayNode arrayNode = objectMapper.valueToTree(superClasses);
((ObjectNode) headerJson).replace(Element.SUPERCLASSES_PROPERTY, arrayNode);
return headerJson;
}