public abstract class RelationManagement<T extends EntityManagement<? extends org.gcube.informationsystem.model.reference.entities.Entity,TET>,TET extends org.gcube.informationsystem.types.reference.entities.EntityType> extends RelationElementManagement<ResourceManagement,T,org.gcube.informationsystem.types.reference.entities.ResourceType,TET> implements ERManagement
| Modifier and Type | Field and Description |
|---|---|
org.gcube.informationsystem.model.reference.properties.PropagationConstraint |
defaultPropagationConstraint |
protected boolean |
forceAddToContext |
protected boolean |
honourPropagationConstraintsInContextSharing
By the default the system honour the propagation constraints
so this variable is initialised as true.
|
protected org.gcube.informationsystem.model.reference.properties.PropagationConstraint |
propagationConstraint |
protected boolean |
skipped |
protected SecurityContext |
sourceSecurityContext
The source context of an addToContex
|
protected SecurityContext |
targetSecurityContext
The target context of an addToContex/RemoveFromContext
|
IN, includeSource, includeTarget, OUT, sourceEntityClass, sourceEntityManagement, targetEntityClass, targetEntityManagementaccessType, affectedInstances, AT, cachedType, complete, DELETED, dryRun, element, elementClass, entryPoint, ignoreKeys, ignoreStartWithKeys, jsonNode, logger, oClass, oDatabaseDocument, operation, reload, self, typeName, UNDERSCORE, uuid, workingContext| Modifier | Constructor and Description |
|---|---|
protected |
RelationManagement(org.gcube.informationsystem.base.reference.AccessType accessType,
Class<? extends org.gcube.informationsystem.model.reference.entities.Entity> targetEntityClass,
org.gcube.informationsystem.model.reference.properties.PropagationConstraint defaultPropagationConstraint) |
| Modifier and Type | Method and Description |
|---|---|
void |
addToContext(UUID contextUUID) |
protected void |
checkPropagationConstraint() |
protected void |
checksourceAndTargetEntityCompliancy() |
void |
forcedAddToContext() |
protected Map<String,org.gcube.com.fasterxml.jackson.databind.JsonNode> |
fullSerialize(Map<String,org.gcube.com.fasterxml.jackson.databind.JsonNode> visitedSourceResources) |
com.orientechnologies.orient.core.record.OEdge |
getElement() |
protected String |
getEntityTypeNotValidErrroMessage(String entityPosition,
String requiredType,
String effectiveType) |
protected PropagationConstraintOrient |
getPropagationConstraint(com.orientechnologies.orient.core.record.impl.ODocument oDocument) |
SecurityContext |
getSourceSecurityContext() |
SecurityContext |
getTargetSecurityContext() |
ResourceManagement |
giveMeSourceEntityManagementAsIs() |
void |
internalAddToContext() |
void |
internalRemoveFromContext() |
boolean |
isAvailableOnContext(SecurityContext securityContext) |
boolean |
isHonourPropagationConstraintsInContextSharing() |
protected ResourceManagement |
newSourceEntityManagement() |
protected void |
reallyAddToContext() |
protected com.orientechnologies.orient.core.record.OEdge |
reallyCreate() |
protected void |
reallyDelete() |
String |
reallyGetAll(boolean polymorphic) |
protected Map<UUID,org.gcube.com.fasterxml.jackson.databind.JsonNode> |
reallyRemoveFromContext() |
protected com.orientechnologies.orient.core.record.OEdge |
reallyUpdate() |
void |
removeFromContext(UUID contextUUID) |
protected Collection<org.gcube.com.fasterxml.jackson.databind.JsonNode> |
serializeEdges(Iterable<com.orientechnologies.orient.core.record.impl.ODocument> edges,
boolean postFilterPolymorphic) |
protected String |
serializeJsonNodeCollectionAsString(Collection<org.gcube.com.fasterxml.jackson.databind.JsonNode> collection) |
void |
setForceAddToContext(Boolean forceAddToContext) |
void |
setHonourPropagationConstraintsInContextSharing(boolean honourPropagationConstraintsInContextSharing) |
void |
setSourceSecurityContext(SecurityContext sourceSecurityContext)
Set source security context to evaluate addToContext
|
void |
setTargetSecurityContext(SecurityContext targetSecurityContext)
Set target security context of addToContext/removeFromContext
|
createCompleteJsonNode, getSourceEntityManagement, getTargetEntityManagement, includeSource, includeTarget, newTargetEntityManagement, setSourceEntityManagement, setTargetEntityManagementall, checkERMatch, checkJsonNode, checkUUIDMatch, cleanCachedSerialization, create, createOrUpdate, delete, exists, getAccessType, getAffectedInstances, getAllProperties, getCachedType, getClassProperty, getContexts, getContextsAsObjectNode, getContextsSet, getMandatoryErrorMessage, getNotNullErrorMessage, getObjectFromJsonNode, getOClass, getPropertyForJson, getPropertyMap, getSpecificAlreadyPresentException, getSpecificNotFoundException, getTypeName, getUUID, getWorkingContext, internalCreate, internalCreateOrUdate, internalDelete, internalUpdate, isDryRun, isReload, read, retrieveElement, retrieveElementFromAnyContext, sanityCheck, serializeAsAffectedInstance, serializeAsJsonNode, serializeSelfAsJsonNode, setAsEntryPoint, setDryRun, setElement, setElementType, setJson, setJsonNode, setOClass, setODatabaseDocument, setOperation, setProperty, setReload, setUUID, setWorkingContext, typeSatified, update, updatePropertiesclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetAffectedInstances, getSpecificAvailableInAnotherContextExceptionprotected SecurityContext sourceSecurityContext
protected SecurityContext targetSecurityContext
protected boolean honourPropagationConstraintsInContextSharing
ElementManagement.dryRun=true.
This allow to simulate a sharing operation which requires
do not honour the propagation constraints.public final org.gcube.informationsystem.model.reference.properties.PropagationConstraint defaultPropagationConstraint
protected org.gcube.informationsystem.model.reference.properties.PropagationConstraint propagationConstraint
protected boolean forceAddToContext
protected boolean skipped
protected RelationManagement(org.gcube.informationsystem.base.reference.AccessType accessType,
Class<? extends org.gcube.informationsystem.model.reference.entities.Entity> targetEntityClass,
org.gcube.informationsystem.model.reference.properties.PropagationConstraint defaultPropagationConstraint)
public void setSourceSecurityContext(SecurityContext sourceSecurityContext)
ERManagementsetSourceSecurityContext in interface ERManagementsourceSecurityContext - the source security contextpublic SecurityContext getSourceSecurityContext()
getSourceSecurityContext in interface ERManagementpublic void setTargetSecurityContext(SecurityContext targetSecurityContext)
ERManagementsetTargetSecurityContext in interface ERManagementpublic SecurityContext getTargetSecurityContext()
getTargetSecurityContext in interface ERManagementpublic boolean isHonourPropagationConstraintsInContextSharing()
isHonourPropagationConstraintsInContextSharing in interface ERManagementpublic void setHonourPropagationConstraintsInContextSharing(boolean honourPropagationConstraintsInContextSharing)
setHonourPropagationConstraintsInContextSharing in interface ERManagementpublic boolean isAvailableOnContext(SecurityContext securityContext)
public com.orientechnologies.orient.core.record.OEdge getElement()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException,
org.gcube.informationsystem.resourceregistry.api.exceptions.AvailableInAnotherContextException,
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
getElement in class ElementManagement<com.orientechnologies.orient.core.record.OEdge,org.gcube.informationsystem.types.reference.relations.RelationType<org.gcube.informationsystem.types.reference.entities.ResourceType,TET extends org.gcube.informationsystem.types.reference.entities.EntityType>>org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.AvailableInAnotherContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic ResourceManagement giveMeSourceEntityManagementAsIs() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected Map<String,org.gcube.com.fasterxml.jackson.databind.JsonNode> fullSerialize(Map<String,org.gcube.com.fasterxml.jackson.databind.JsonNode> visitedSourceResources) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected PropagationConstraintOrient getPropagationConstraint(com.orientechnologies.orient.core.record.impl.ODocument oDocument) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected void checkPropagationConstraint()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected com.orientechnologies.orient.core.record.OEdge reallyCreate()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
reallyCreate in class RelationElementManagement<ResourceManagement,T extends EntityManagement<? extends org.gcube.informationsystem.model.reference.entities.Entity,TET>,org.gcube.informationsystem.types.reference.entities.ResourceType,TET extends org.gcube.informationsystem.types.reference.entities.EntityType>org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected ResourceManagement newSourceEntityManagement() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
newSourceEntityManagement in class RelationElementManagement<ResourceManagement,T extends EntityManagement<? extends org.gcube.informationsystem.model.reference.entities.Entity,TET>,org.gcube.informationsystem.types.reference.entities.ResourceType,TET extends org.gcube.informationsystem.types.reference.entities.EntityType>org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected String getEntityTypeNotValidErrroMessage(String entityPosition, String requiredType, String effectiveType)
protected void checksourceAndTargetEntityCompliancy()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException,
org.gcube.informationsystem.resourceregistry.api.exceptions.AvailableInAnotherContextException,
org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationException,
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
checksourceAndTargetEntityCompliancy in class RelationElementManagement<ResourceManagement,T extends EntityManagement<? extends org.gcube.informationsystem.model.reference.entities.Entity,TET>,org.gcube.informationsystem.types.reference.entities.ResourceType,TET extends org.gcube.informationsystem.types.reference.entities.EntityType>org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.AvailableInAnotherContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected com.orientechnologies.orient.core.record.OEdge reallyUpdate()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
reallyUpdate in class RelationElementManagement<ResourceManagement,T extends EntityManagement<? extends org.gcube.informationsystem.model.reference.entities.Entity,TET>,org.gcube.informationsystem.types.reference.entities.ResourceType,TET extends org.gcube.informationsystem.types.reference.entities.EntityType>org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected void reallyAddToContext()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException,
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic void internalAddToContext()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException,
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
internalAddToContext in interface ERManagementorg.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic void forcedAddToContext()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException,
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic void addToContext(UUID contextUUID) throws org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationException, org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
addToContext in interface ERManagementorg.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected Map<UUID,org.gcube.com.fasterxml.jackson.databind.JsonNode> reallyRemoveFromContext() throws org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic void internalRemoveFromContext()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException,
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
internalRemoveFromContext in interface ERManagementorg.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic void removeFromContext(UUID contextUUID) throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
removeFromContext in interface ERManagementorg.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.contexts.ContextExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected void reallyDelete()
throws org.gcube.informationsystem.resourceregistry.api.exceptions.relations.RelationNotFoundException,
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
reallyDelete in class RelationElementManagement<ResourceManagement,T extends EntityManagement<? extends org.gcube.informationsystem.model.reference.entities.Entity,TET>,org.gcube.informationsystem.types.reference.entities.ResourceType,TET extends org.gcube.informationsystem.types.reference.entities.EntityType>org.gcube.informationsystem.resourceregistry.api.exceptions.relations.RelationNotFoundExceptionorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected Collection<org.gcube.com.fasterxml.jackson.databind.JsonNode> serializeEdges(Iterable<com.orientechnologies.orient.core.record.impl.ODocument> edges, boolean postFilterPolymorphic) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionprotected String serializeJsonNodeCollectionAsString(Collection<org.gcube.com.fasterxml.jackson.databind.JsonNode> collection) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic String reallyGetAll(boolean polymorphic) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
reallyGetAll in class ElementManagement<com.orientechnologies.orient.core.record.OEdge,org.gcube.informationsystem.types.reference.relations.RelationType<org.gcube.informationsystem.types.reference.entities.ResourceType,TET extends org.gcube.informationsystem.types.reference.entities.EntityType>>org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionpublic void setForceAddToContext(Boolean forceAddToContext)
setForceAddToContext in interface ERManagementCopyright © 2022. All Rights Reserved.