Refs #10238: Refactor Context Port Type
Task-Url: https://support.d4science.org/issues/10238 git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry@158633 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
2d7805b132
commit
782e60ff13
|
@ -67,10 +67,27 @@ public abstract class EntityManagement<E extends Entity> extends
|
|||
RelationManagement relationManagement = relationManagements.get(id);
|
||||
if(relationManagement==null) {
|
||||
relationManagement = ERManagementUtility.getRelationManagement(orientGraph, edge);
|
||||
relationManagements.put(id, relationManagement);
|
||||
}
|
||||
return relationManagement;
|
||||
}
|
||||
|
||||
protected void addToRelationManagement(@SuppressWarnings("rawtypes") RelationManagement relationManagement) throws ResourceRegistryException {
|
||||
Element elem = relationManagement.getElement();
|
||||
String id = elem.getId().toString();
|
||||
if(relationManagements.get(id)!=relationManagement) {
|
||||
StringBuilder errorMessage = new StringBuilder();
|
||||
errorMessage.append("Two different instance of ");
|
||||
errorMessage.append(relationManagement.getClass().getSimpleName());
|
||||
errorMessage.append(" point to the same ");
|
||||
errorMessage.append(elem.getClass().getSimpleName());
|
||||
errorMessage.append(". ");
|
||||
errorMessage.append(Utility.SHOULD_NOT_OCCUR_ERROR_MESSAGE);
|
||||
throw new ResourceRegistryException(errorMessage.toString());
|
||||
}
|
||||
relationManagements.put(id, relationManagement);
|
||||
}
|
||||
|
||||
protected EntityManagement(AccessType accessType, OrientGraph orientGraph) {
|
||||
this(accessType);
|
||||
this.orientGraph = orientGraph;
|
||||
|
|
|
@ -84,9 +84,19 @@ public class ResourceManagement extends EntityManagement<Resource> {
|
|||
|
||||
Iterable<Edge> edges = getElement().getEdges(Direction.OUT);
|
||||
for (Edge edge : edges) {
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
RelationManagement relationManagement = ERManagementUtility.getRelationManagement(orientGraph, edge);
|
||||
relationManagement.setSourceEntityManagement(this);
|
||||
RelationManagement relationManagement = getRelationManagement(edge);
|
||||
if(relationManagement.getSourceEntityManagement()==null) {
|
||||
relationManagement.setSourceEntityManagement(this);
|
||||
}else if(relationManagement.getSourceEntityManagement()!=null) {
|
||||
StringBuilder errorMessage = new StringBuilder();
|
||||
errorMessage.append("SourceEntityManagement for ");
|
||||
errorMessage.append(relationManagement.getClass().getSimpleName());
|
||||
errorMessage.append(" is not the one expected. ");
|
||||
errorMessage.append(Utility.SHOULD_NOT_OCCUR_ERROR_MESSAGE);
|
||||
throw new ResourceRegistryException(errorMessage.toString());
|
||||
}
|
||||
|
||||
if (relationManagement instanceof ConsistsOfManagement) {
|
||||
try {
|
||||
|
@ -106,8 +116,7 @@ public class ResourceManagement extends EntityManagement<Resource> {
|
|||
* by default as design choice and not because forget
|
||||
*
|
||||
* else if(orientEdgeType.isSubClassOf(IsRelatedTo.NAME)){
|
||||
* JSONObject isRelatedTo = relationManagement
|
||||
.serializeAsJson();
|
||||
* JSONObject isRelatedTo = relationManagement.serializeAsJson(true, true);
|
||||
* sourceResource = addIsRelatedTo(sourceResource, isRelatedTo);
|
||||
* }
|
||||
*/
|
||||
|
@ -140,6 +149,7 @@ public class ResourceManagement extends EntityManagement<Resource> {
|
|||
com.setJSON(consistOfJsonNode);
|
||||
com.setSourceEntityManagement(this);
|
||||
com.internalCreate();
|
||||
addToRelationManagement(com);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -152,6 +162,7 @@ public class ResourceManagement extends EntityManagement<Resource> {
|
|||
irtm.setJSON(relationJsonNode);
|
||||
irtm.setSourceEntityManagement(this);
|
||||
irtm.internalCreate();
|
||||
addToRelationManagement(irtm);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -170,6 +181,7 @@ public class ResourceManagement extends EntityManagement<Resource> {
|
|||
ConsistsOfManagement com = new ConsistsOfManagement(orientGraph);
|
||||
com.setJSON(relationJsonNode);
|
||||
com.internalCreateOrUdate();
|
||||
addToRelationManagement(com);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -181,6 +193,7 @@ public class ResourceManagement extends EntityManagement<Resource> {
|
|||
orientGraph);
|
||||
irtm.setJSON(relationJsonNode);
|
||||
irtm.internalUpdate();
|
||||
addToRelationManagement(irtm);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
*/
|
||||
package org.gcube.informationsystem.resourceregistry.er.relation;
|
||||
|
||||
import java.io.StringWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
|
@ -92,7 +91,7 @@ public abstract class RelationManagement<R extends Relation, S extends EntityMan
|
|||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected S getSourceEntityManagement() throws ResourceRegistryException {
|
||||
public S getSourceEntityManagement() throws ResourceRegistryException {
|
||||
if (sourceEntityManagement == null) {
|
||||
Vertex source = getElement().getVertex(Direction.OUT);
|
||||
sourceEntityManagement = newSourceEntityManagement();
|
||||
|
@ -219,7 +218,7 @@ public abstract class RelationManagement<R extends Relation, S extends EntityMan
|
|||
try {
|
||||
targetEntityManagement.setJSON(jsonNode.get(Relation.TARGET_PROPERTY));
|
||||
} catch (SchemaException e) {
|
||||
StringWriter errorMessage = new StringWriter();
|
||||
StringBuilder errorMessage = new StringBuilder();
|
||||
errorMessage.append("A ");
|
||||
errorMessage.append(erType);
|
||||
errorMessage.append(" can be only created beetween ");
|
||||
|
|
|
@ -41,6 +41,8 @@ public class Utility {
|
|||
|
||||
private static final Logger logger = LoggerFactory.getLogger(Utility.class);
|
||||
|
||||
public static final String SHOULD_NOT_OCCUR_ERROR_MESSAGE = "This is really strange and should not occur. Please contact the system administrator";
|
||||
|
||||
public static JSONObject toJsonObject(OrientElement element, boolean raw)
|
||||
throws ResourceRegistryException {
|
||||
try {
|
||||
|
|
Loading…
Reference in New Issue