Class ERManagementUtility
java.lang.Object
org.gcube.informationsystem.resourceregistry.persistence.orientdb.instances.ERManagementUtility
- Author:
- Luca Frosini (ISTI - CNR)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddToContextNoPropagationConstraint(Map<UUID, org.gcube.com.fasterxml.jackson.databind.JsonNode> expectedInstances, UUID contextUUID, boolean dryRun) Adds a map of expected instances to the specified context without evaluating propagation constraints.static ElementManagement<?,?> getERManagement(String type) Resolves and returns the correspondingElementManagementinstance for the specified class type name.static ElementManagement<?,?> getERManagement(Environment workingContext, com.orientechnologies.orient.core.db.document.ODatabaseDocument orientGraph, com.orientechnologies.orient.core.record.OElement element) Resolves and returns the correspondingElementManagementinstance for the specified database element.static ElementManagement<?,?> getERManagementFromUUID(Environment workingContext, com.orientechnologies.orient.core.db.document.ODatabaseDocument orientGraph, UUID uuid) Resolves and returns the correspondingElementManagementinstance for the specified element UUID.removeFromContextNoPropagationConstraint(Map<UUID, org.gcube.com.fasterxml.jackson.databind.JsonNode> expectedInstances, UUID contextUUID, boolean dryRun) Removes a map of expected instances from the specified context without evaluating propagation constraints.static voidsyncExistingHierarchy(String type, UUID uuid, String json, boolean allowNonActiveContexts) Synchronizes a Resource update across the current Context and every descendant Context where the same Resource is already present.
-
Constructor Details
-
ERManagementUtility
public ERManagementUtility()
-
-
Method Details
-
getERManagement
public static ElementManagement<?,?> getERManagement(String type) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Resolves and returns the correspondingElementManagementinstance for the specified class type name.- Parameters:
type- the class type name- Returns:
- the mapped
ElementManagementinstance - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the class type is not queryable or cannot be mapped
-
syncExistingHierarchy
public static void syncExistingHierarchy(String type, UUID uuid, String json, boolean allowNonActiveContexts) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Synchronizes a Resource update across the current Context and every descendant Context where the same Resource is already present.- Parameters:
type- the concrete Resource type nameuuid- the Resource UUIDjson- the submitted Resource representationallowNonActiveContexts- whether administrative state override is authorized- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if synchronization fails
-
getERManagementFromUUID
public static ElementManagement<?,?> getERManagementFromUUID(Environment workingContext, com.orientechnologies.orient.core.db.document.ODatabaseDocument orientGraph, UUID uuid) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Resolves and returns the correspondingElementManagementinstance for the specified element UUID.- Parameters:
workingContext- the working environmentorientGraph- the database document connectionuuid- the UUID of the element to resolve- Returns:
- the resolved
ElementManagementinstance - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the element does not exist or has an unmanageable type
-
getERManagement
public static ElementManagement<?,?> getERManagement(Environment workingContext, com.orientechnologies.orient.core.db.document.ODatabaseDocument orientGraph, com.orientechnologies.orient.core.record.OElement element) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Resolves and returns the correspondingElementManagementinstance for the specified database element.- Parameters:
workingContext- the working environmentorientGraph- the database document connectionelement- the OrientDB element to resolve- Returns:
- the resolved
ElementManagementinstance - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the element type is not manageable
-
addToContextNoPropagationConstraint
public static Map<UUID,org.gcube.com.fasterxml.jackson.databind.JsonNode> addToContextNoPropagationConstraint(Map<UUID, org.gcube.com.fasterxml.jackson.databind.JsonNode> expectedInstances, UUID contextUUID, boolean dryRun) throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionAdds a map of expected instances to the specified context without evaluating propagation constraints.- Parameters:
expectedInstances- map of expected instances, from UUID to JSON nodecontextUUID- the UUID of the target contextdryRun-trueto simulate the operation without committing- Returns:
- the map of successfully added instances
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the context does not existorg.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException- if context rules are violatedorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database or system failure
-
removeFromContextNoPropagationConstraint
public static Map<UUID,org.gcube.com.fasterxml.jackson.databind.JsonNode> removeFromContextNoPropagationConstraint(Map<UUID, org.gcube.com.fasterxml.jackson.databind.JsonNode> expectedInstances, UUID contextUUID, boolean dryRun) throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionRemoves a map of expected instances from the specified context without evaluating propagation constraints.- Parameters:
expectedInstances- map of expected instances, from UUID to JSON nodecontextUUID- the UUID of the target contextdryRun-trueto simulate the operation without committing- Returns:
- the map of successfully removed instances
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the context does not existorg.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException- if removal rules are violatedorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database or system failure
-