From 93f5999553f23e2abf68e8edc3b2b732d1937ecb Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 5 Mar 2021 11:59:24 +0100 Subject: [PATCH] Added affected instances variable to ElementManagement --- .../contexts/entities/ContextManagement.java | 11 +- .../relations/IsParentOfManagement.java | 8 ++ .../instances/base/ElementManagement.java | 64 +++++++-- .../relations/RelationElementManagement.java | 7 +- .../instances/model/ERManagement.java | 6 - .../instances/model/ERManagementUtility.java | 5 +- .../model/entities/EntityManagement.java | 68 ++------- .../model/entities/FacetManagement.java | 7 +- .../model/entities/ResourceManagement.java | 20 ++- .../model/relations/RelationManagement.java | 134 ++++-------------- .../resourceregistry/rest/SharingManager.java | 2 +- .../EntityTypeDefinitionManagement.java | 10 +- .../PropertyTypeDefinitionManagement.java | 10 +- .../RelationTypeDefinitionManagement.java | 11 +- .../multicontext/MultiContextTest.java | 4 +- 15 files changed, 147 insertions(+), 220 deletions(-) diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java index 362f0de..1d2d9b0 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.UUID; import org.gcube.com.fasterxml.jackson.core.JsonProcessingException; @@ -88,6 +89,11 @@ public class ContextManagement extends EntityElementManagement getAffectedInstances() { + throw new UnsupportedOperationException(); + } + public String getName() { if (name == null) { if (element == null) { @@ -377,7 +383,7 @@ public class ContextManagement extends EntityElementManagement iterable = getElement().getEdges(ODirection.OUT); Iterator iterator = iterable.iterator(); while (iterator.hasNext()) { @@ -391,9 +397,6 @@ public class ContextManagement extends EntityElementManagement getAffectedInstances() { + throw new UnsupportedOperationException(); + } @Override protected SecurityContext getWorkingContext() throws ResourceRegistryException { 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 f13f6f2..9ff90cb 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 @@ -93,6 +93,17 @@ public abstract class ElementManagement { protected El element; protected boolean reload; + /** + * Some operation, e.g. delete has a cascade impact which is not know a priori by the client. + * Setting this variable to false the system just simulate the operation so an interested client + * could know the impact in advance. + * + * By the default the system execute effectively the requested operation. + * So this variable is initialised as false. + * + */ + protected boolean dryRun; + /** * An operation can affects multiple instances (e.g. create, update) * We need to know if the instance is the entry point of the operation @@ -111,6 +122,12 @@ public abstract class ElementManagement { */ protected Operation operation; + /** + * A Delete operation has a cascade impact we could want to know the impact + * Instances affected by a delete + */ + protected final Map affectedInstances; + protected ElementManagement(AccessType accessType) { this.accessType = accessType; @@ -125,7 +142,29 @@ public abstract class ElementManagement { this.entryPoint = false; this.operation = null; + + /* + * By the default the system execute the operation + * which has a cascade impact so this variable is initialised as false. + */ + this.dryRun = false; + + this.affectedInstances = new HashMap<>(); } + + + public Map getAffectedInstances() { + return affectedInstances; + } + + public boolean isDryRun() { + return dryRun; + } + + public void setDryRun(boolean dryRun) { + this.dryRun = dryRun; + } + protected void setAsEntryPoint() { this.entryPoint = true; @@ -442,15 +481,12 @@ public abstract class ElementManagement { } } - protected abstract boolean reallyDelete() throws NotFoundException, ResourceRegistryException; + protected abstract void reallyDelete() throws NotFoundException, ResourceRegistryException; - public boolean internalDelete() throws NotFoundException, ResourceRegistryException { + public void internalDelete() throws NotFoundException, ResourceRegistryException { setOperation(Operation.DELETE); - boolean deleted = reallyDelete(); - if(deleted) { - sanityCheck(); - } - return deleted; + reallyDelete(); + sanityCheck(); } public void setElement(El element) throws ResourceRegistryException { @@ -729,7 +765,7 @@ public abstract class ElementManagement { } } - public boolean delete() throws NotFoundException, AvailableInAnotherContextException, ResourceRegistryException { + public boolean delete() throws NotFoundException, AvailableInAnotherContextException, SchemaViolationException, ResourceRegistryException { logger.debug("Going to delete {} with UUID {}", accessType.getName(), uuid); ODatabaseDocument current = ContextUtility.getCurrentODatabaseDocumentFromThreadLocal(); try { @@ -737,18 +773,16 @@ public abstract class ElementManagement { oDatabaseDocument.begin(); setAsEntryPoint(); - boolean deleted = internalDelete(); + internalDelete(); - if(deleted) { + if(!dryRun) { oDatabaseDocument.commit(); logger.info("{} with UUID {} was successfully deleted.", accessType.getName(), uuid); - } else { - throw new ResourceRegistryException("Error while deleting " + accessType.getName() + " with UUID " + uuid); + }else { + oDatabaseDocument.rollback(); } - - return deleted; - + return true; } catch(ResourceRegistryException e) { logger.error("Unable to delete {} with UUID {}", accessType.getName(), uuid); if(oDatabaseDocument != null) { diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/relations/RelationElementManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/relations/RelationElementManagement.java index 08ed3ea..4e8a419 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/relations/RelationElementManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/base/relations/RelationElementManagement.java @@ -210,17 +210,14 @@ public abstract class RelationElementManagement getAffectedInstances(); - public void setAffectedInstances(Map affectedInstances); - /** * Set source security context to evaluate addToContext * @param sourceSecurityContext the source security context diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/ERManagementUtility.java b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/ERManagementUtility.java index 56cc824..0a71808 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/ERManagementUtility.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/ERManagementUtility.java @@ -49,8 +49,9 @@ public class ERManagementUtility { elementManagement.setODatabaseDocument(oDatabaseDocument); elementManagement.setUUID(uuid); elementManagement.setElementType(type); + elementManagement.setDryRun(dryRun); + ((ERManagement) elementManagement).setHonourPropagationConstraintsInContextSharing(false); - ((ERManagement) elementManagement).setDryRunContextSharing(dryRun); // enforcedInstances.putAll(((ERManagement) elementManagement).internalAddToContext(targetSecurityContext)); ((ERManagement) elementManagement).setTargetSecurityContext(targetSecurityContext); ((ERManagement) elementManagement).internalAddToContext(); @@ -128,7 +129,7 @@ public class ERManagementUtility { elementManagement.setODatabaseDocument(oDatabaseDocument); elementManagement.setUUID(uuid); ((ERManagement) elementManagement).setHonourPropagationConstraintsInContextSharing(false); - ((ERManagement) elementManagement).setDryRunContextSharing(dryRun); + elementManagement.setDryRun(dryRun); //enforcedInstances.putAll(((ERManagement) elementManagement).internalRemoveFromContext(targetSecurityContext)); ((ERManagement) elementManagement).setTargetSecurityContext(targetSecurityContext); ((ERManagement) elementManagement).internalRemoveFromContext(); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/EntityManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/EntityManagement.java index ba7a37c..c330db0 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/EntityManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/EntityManagement.java @@ -68,22 +68,7 @@ public abstract class EntityManagement * The target context of an addToContex/RemoveFromContext */ protected SecurityContext targetSecurityContext; - - /** - * By the default the system execute the the operation of - * context sharing so this variable is initialised as false. - * - * Setting this variable to false the system just simulate - * the operation of context sharing - * i.e. AddToContext, RemoveFromContext. - * - * This option can also be used in conjunction with - * {@link ElementManagement#honourPropagationConstraintsInContextSharing}=false. - * This allow to simulate a sharing operation which requires - * do not honour the propagation constraints. - */ - protected boolean dryRunContextSharing; - + /** * By the default the system honour the propagation constraints * so this variable is initialised as true. @@ -116,21 +101,6 @@ public abstract class EntityManagement */ protected boolean honourPropagationConstraintsInContextSharing; - /** - * Instances affected by addToContext/removeFromContext - */ - protected Map affectedInstances; - - @Override - public Map getAffectedInstances() { - return affectedInstances; - } - - @Override - public void setAffectedInstances(Map affectedInstances) { - this.affectedInstances = affectedInstances; - } - @Override public void setSourceSecurityContext(SecurityContext sourceSecurityContext) { this.sourceSecurityContext = sourceSecurityContext; @@ -150,19 +120,13 @@ public abstract class EntityManagement public SecurityContext getTargetSecurityContext() { return sourceSecurityContext; } - - public boolean isDryRunContextSharing() { - return dryRunContextSharing; - } - - public void setDryRunContextSharing(boolean dryRunContextSharing) { - this.dryRunContextSharing = dryRunContextSharing; - } + @Override public boolean isHonourPropagationConstraintsInContextSharing() { return honourPropagationConstraintsInContextSharing; } + @Override public void setHonourPropagationConstraintsInContextSharing(boolean honourPropagationConstraintsInContextSharing) { this.honourPropagationConstraintsInContextSharing = honourPropagationConstraintsInContextSharing; } @@ -195,12 +159,6 @@ public abstract class EntityManagement this.relationManagements = new HashMap<>(); - /* - * By the default the system execute the the operation of - * context sharing so this variable is initialised as false. - */ - this.dryRunContextSharing = false; - /* * By the default the system honour the propagation constraints * so this variable is initialised as true. @@ -344,9 +302,7 @@ public abstract class EntityManagement protected Map reallyAddToContext() throws ContextException, ResourceRegistryException { - Map affectedInstances = new HashMap<>(); - - if(!dryRunContextSharing) { + if(!dryRun) { targetSecurityContext.addElement(getElement(), oDatabaseDocument); } @@ -361,7 +317,7 @@ public abstract class EntityManagement for(OEdge edge : edges) { RelationManagement relationManagement = getRelationManagement(edge); - relationManagement.setDryRunContextSharing(dryRunContextSharing); + relationManagement.setDryRun(dryRun); relationManagement.setHonourPropagationConstraintsInContextSharing(honourPropagationConstraintsInContextSharing); relationManagement.setTargetSecurityContext(targetSecurityContext); affectedInstances.putAll(relationManagement.internalAddToContext()); @@ -376,8 +332,8 @@ public abstract class EntityManagement throws ContextException, ResourceRegistryException { try { setOperation(Operation.ADD_TO_CONTEXT); - Map affectedInstances = reallyAddToContext(); - if(!dryRunContextSharing) { + reallyAddToContext(); + if(!dryRun) { HeaderUtility.updateModifiedByAndLastUpdate(element); element.save(); } @@ -439,7 +395,7 @@ public abstract class EntityManagement try { setOperation(Operation.REMOVE_FROM_CONTEXT); Map affectedInstances = reallyRemoveFromContext(); - if(!dryRunContextSharing) { + if(!dryRun) { HeaderUtility.updateModifiedByAndLastUpdate(element); element.save(); } @@ -457,21 +413,19 @@ public abstract class EntityManagement protected Map reallyRemoveFromContext() throws ContextException, ResourceRegistryException { - Map affectedInstances = new HashMap<>(); - if(honourPropagationConstraintsInContextSharing) { Iterable edges = getElement().getEdges(ODirection.OUT); for(OEdge edge : edges) { RelationManagement relationManagement = getRelationManagement(edge); - relationManagement.setDryRunContextSharing(dryRunContextSharing); + relationManagement.setDryRun(dryRun); relationManagement.setHonourPropagationConstraintsInContextSharing(honourPropagationConstraintsInContextSharing); relationManagement.setTargetSecurityContext(targetSecurityContext); affectedInstances.putAll(relationManagement.internalRemoveFromContext()); } } - if(!dryRunContextSharing) { + if(!dryRun) { targetSecurityContext.removeElement(getElement(), oDatabaseDocument); } /* @@ -497,7 +451,7 @@ public abstract class EntityManagement targetSecurityContext = ContextUtility.getInstance().getSecurityContextByUUID(contextUUID); - Map affectedInstances = internalRemoveFromContext(); + internalRemoveFromContext(); oDatabaseDocument.commit(); logger.info("{} with UUID {} successfully removed from Context with UUID {}", typeName, uuid, contextUUID); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/FacetManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/FacetManagement.java index 714c49a..9c8b214 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/FacetManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/FacetManagement.java @@ -78,14 +78,15 @@ public class FacetManagement extends EntityManagement { } @Override - protected boolean reallyDelete() throws FacetNotFoundException, ResourceRegistryException { + protected void reallyDelete() throws FacetNotFoundException, ResourceRegistryException { if(entryPoint) { OVertex oVertex = getElement().getVertices(ODirection.IN).iterator().next(); resourceManagement = new ResourceManagement(); resourceManagement.setElement(oVertex); } - element.delete(); - return true; + + affectedInstances.put(uuid, serializeSelfAsJsonNode()); + getElement().delete(); } protected void checkResource() throws SchemaViolationException, ResourceRegistryException { diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/ResourceManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/ResourceManagement.java index 89b083f..3c19819 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/ResourceManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/entities/ResourceManagement.java @@ -80,8 +80,7 @@ public class ResourceManagement extends EntityManagement Iterable edges = getElement().getEdges(ODirection.OUT); for(OEdge edge : edges) { - @SuppressWarnings("rawtypes") - RelationManagement relationManagement = getRelationManagement(edge); + RelationManagement relationManagement = getRelationManagement(edge); relationManagement.setReload(reload); if(relationManagement.giveMeSourceEntityManagementAsIs() == null) { @@ -203,9 +202,8 @@ public class ResourceManagement extends EntityManagement return element; } - @SuppressWarnings("unchecked") @Override - protected boolean reallyDelete() throws ResourceNotFoundException, ResourceRegistryException { + protected void reallyDelete() throws ResourceNotFoundException, ResourceRegistryException { // internalDeleteResource(orientGraph, uuid, null); getElement(); @@ -217,8 +215,7 @@ public class ResourceManagement extends EntityManagement OEdge edge = iterator.next(); OClass oClass = ElementManagementUtility.getOClass(edge); - @SuppressWarnings("rawtypes") - RelationManagement relationManagement = null; + RelationManagement relationManagement = null; if(oClass.isSubClassOf(IsRelatedTo.NAME)) { relationManagement = new IsRelatedToManagement(); } else if(oClass.isSubClassOf(ConsistsOf.NAME)) { @@ -236,18 +233,17 @@ public class ResourceManagement extends EntityManagement } - element.delete(); + // in relations are affected because is the system which ensure this integrity - return true; + affectedInstances.put(uuid, serializeSelfAsJsonNode()); + element.delete(); } @Override protected Map reallyAddToContext() throws ContextException, ResourceRegistryException { - Map affectedInstances = new HashMap<>(); - - if(!dryRunContextSharing) { + if(!dryRun) { targetSecurityContext.addElement(getElement(), oDatabaseDocument); } @@ -265,7 +261,7 @@ public class ResourceManagement extends EntityManagement for(OEdge edge : edges) { RelationManagement relationManagement = getRelationManagement(edge); - relationManagement.setDryRunContextSharing(dryRunContextSharing); + relationManagement.setDryRun(dryRun); relationManagement.setHonourPropagationConstraintsInContextSharing(honourPropagationConstraintsInContextSharing); relationManagement.setTargetSecurityContext(targetSecurityContext); Map resourceCharacterisationInstances = relationManagement.internalAddToContext(); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/relations/RelationManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/relations/RelationManagement.java index 9586d76..90a21bc 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/relations/RelationManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/instances/model/relations/RelationManagement.java @@ -9,7 +9,6 @@ import java.util.UUID; import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode; -import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode; import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.relations.RelationElement; import org.gcube.informationsystem.context.reference.entities.Context; @@ -68,21 +67,6 @@ public abstract class RelationManagement affectedInstances; - - @Override - public Map getAffectedInstances() { - return affectedInstances; - } - - @Override - public void setAffectedInstances(Map affectedInstances) { - this.affectedInstances = affectedInstances; - } - @Override public void setSourceSecurityContext(SecurityContext sourceSecurityContext) { this.sourceSecurityContext = sourceSecurityContext; @@ -150,25 +119,18 @@ public abstract class RelationManagement targetEntityClass, PropagationConstraint defaultPropagationConstraint) { super(accessType, Resource.class, targetEntityClass); this.defaultPropagationConstraint = defaultPropagationConstraint; - /* - * By the default the system execute the the operation of - * context sharing so this variable is initialised as false. - */ - this.dryRunContextSharing = false; - /* * By the default the system honour the propagation constraints * so this variable is initialised as true. @@ -229,39 +184,7 @@ public abstract class RelationManagement fullSerialize(Map visitedSourceResources) throws ResourceRegistryException { @@ -385,6 +309,7 @@ public abstract class RelationManagement affectedInstances = new HashMap<>(); - if(honourPropagationConstraintsInContextSharing) { AddConstraint addConstraint = AddConstraint.unpropagate; @@ -495,12 +416,12 @@ public abstract class RelationManagement internalAddToContext() throws ContextException, ResourceRegistryException { try { operation = Operation.ADD_TO_CONTEXT; - Map affectedInstances = reallyAddToContext(); + reallyAddToContext(); if(propagationConstraint.getAddConstraint()==PropagationConstraint.AddConstraint.propagate) { - if(!dryRunContextSharing) { + if(!dryRun) { HeaderUtility.updateModifiedByAndLastUpdate(element); element.save(); } @@ -560,23 +482,21 @@ public abstract class RelationManagement affectedInstances = new HashMap<>(); - /* Adding source to Context */ ResourceManagement resourceManagement = getSourceEntityManagement(); - resourceManagement.setDryRunContextSharing(dryRunContextSharing); + resourceManagement.setDryRun(dryRun); resourceManagement.setHonourPropagationConstraintsInContextSharing(honourPropagationConstraintsInContextSharing); resourceManagement.setTargetSecurityContext(targetSecurityContext); affectedInstances.putAll(resourceManagement.internalAddToContext()); /* Adding target to Context */ T targetEntityManagement = getTargetEntityManagement(); - targetEntityManagement.setDryRunContextSharing(dryRunContextSharing); + targetEntityManagement.setDryRun(dryRun); targetEntityManagement.setHonourPropagationConstraintsInContextSharing(honourPropagationConstraintsInContextSharing); targetEntityManagement.setTargetSecurityContext(targetSecurityContext); affectedInstances.putAll(getTargetEntityManagement().internalAddToContext()); - if(!dryRunContextSharing) { + if(!dryRun) { targetSecurityContext.addElement(getElement(), oDatabaseDocument); } affectedInstances.put(uuid, serializeSelfAsJsonNode()); @@ -584,6 +504,7 @@ public abstract class RelationManagement addToContext(UUID contextUUID) throws NotFoundException, ContextException { logger.debug("Going to add {} with UUID {} to Context with UUID {}", accessType.getName(), uuid, contextUUID); ODatabaseDocument current = ContextUtility.getCurrentODatabaseDocumentFromThreadLocal(); @@ -594,7 +515,7 @@ public abstract class RelationManagement added = forcedAddToContext(); + forcedAddToContext(); sanityCheck(); @@ -602,7 +523,7 @@ public abstract class RelationManagement affectedInstances = new HashMap<>(); - RemoveConstraint removeConstraint = RemoveConstraint.keep; try { @@ -656,13 +575,13 @@ public abstract class RelationManagement internalRemoveFromContext() throws ContextException, ResourceRegistryException { try { setOperation(Operation.REMOVE_FROM_CONTEXT); - Map affectedInstances = reallyRemoveFromContext(); - if(!dryRunContextSharing) { + reallyRemoveFromContext(); + if(!dryRun) { HeaderUtility.updateModifiedByAndLastUpdate(element); element.save(); } @@ -729,6 +649,7 @@ public abstract class RelationManagement removeFromContext(UUID contextUUID) throws NotFoundException, ContextException, ResourceRegistryException { logger.debug("Going to remove {} with UUID {} from Context with UUID {}", typeName, uuid, contextUUID); @@ -741,7 +662,7 @@ public abstract class RelationManagement affectedInstances = internalRemoveFromContext(); + internalRemoveFromContext(); sanityCheck(); @@ -774,7 +695,7 @@ public abstract class RelationManagement serializeEdges(Iterable edges, boolean postFilterPolymorphic) throws ResourceRegistryException { Map visitedSourceResources = new HashMap<>(); @@ -842,6 +761,7 @@ public abstract class RelationManagement relationManagement = (RelationManagement) ElementManagementUtility.getRelationManagement(getWorkingContext(), oDatabaseDocument, edge); visitedSourceResources = relationManagement.fullSerialize(visitedSourceResources); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/rest/SharingManager.java b/src/main/java/org/gcube/informationsystem/resourceregistry/rest/SharingManager.java index 59c704a..8937ccf 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/rest/SharingManager.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/rest/SharingManager.java @@ -186,7 +186,7 @@ public class SharingManager { ElementManagement elementManagement = ElementManagementUtility.getERManagement(type); elementManagement.setUUID(UUID.fromString(instanceId)); - ((ERManagement) elementManagement).setDryRunContextSharing(dryRun); + elementManagement.setDryRun(dryRun); UUID contextUUID = UUID.fromString(contextId); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java index ddfe2f4..e53ee44 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java @@ -1,6 +1,8 @@ package org.gcube.informationsystem.resourceregistry.types.entities; import java.util.HashMap; +import java.util.Map; +import java.util.UUID; import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.informationsystem.base.reference.AccessType; @@ -39,6 +41,11 @@ public abstract class EntityTypeDefinitionManagement exten super(AccessType.ENTITY_TYPE); this.typeName = TypeMapper.getType(clz); } + + @Override + public Map getAffectedInstances() { + throw new UnsupportedOperationException(); + } @Override protected SecurityContext getWorkingContext() throws ResourceRegistryException { @@ -87,10 +94,9 @@ public abstract class EntityTypeDefinitionManagement exten } @Override - protected boolean reallyDelete() throws NotFoundException, ResourceRegistryException { + protected void reallyDelete() throws NotFoundException, ResourceRegistryException { logger.debug("Going to remove {} for {}", this.typeName, getName()); getElement().delete(); - return true; } @Override diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java index f988ed7..9babfab 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java @@ -1,6 +1,8 @@ package org.gcube.informationsystem.resourceregistry.types.properties; import java.util.HashMap; +import java.util.Map; +import java.util.UUID; import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.informationsystem.base.reference.AccessType; @@ -47,6 +49,11 @@ public class PropertyTypeDefinitionManagement extends ElementManagement getAffectedInstances() { + throw new UnsupportedOperationException(); + } + @Override protected SecurityContext getWorkingContext() throws ResourceRegistryException { if(workingContext == null) { @@ -94,10 +101,9 @@ public class PropertyTypeDefinitionManagement extends ElementManagement getAffectedInstances() { + throw new UnsupportedOperationException(); + } + @Override protected SecurityContext getWorkingContext() throws ResourceRegistryException { if (workingContext == null) { @@ -123,10 +131,9 @@ public abstract class RelationTypeDefinitionManagement affectedInstances = resourceManagement.removeFromContext(contextUUID); @@ -187,7 +187,7 @@ public class MultiContextTest extends ContextTest { ResourceManagement resourceManagement = new ResourceManagement(); resourceManagement.setElementType(TypeMapper.getType(r)); resourceManagement.setUUID(r.getHeader().getUUID()); - resourceManagement.setDryRunContextSharing(dryRun); + resourceManagement.setDryRun(dryRun); UUID contextUUID = ContextUtility.getInstance().getSecurityContextByFullName(targetContextFullName).getUUID(); Map affectedInstances = resourceManagement.addToContext(contextUUID);