Changer elements serialization

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry@131463 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Luca Frosini 2016-09-16 16:37:57 +00:00
parent 624ba10dc2
commit a0181b68bb
2 changed files with 37 additions and 35 deletions

View File

@ -4,6 +4,7 @@
package org.gcube.informationsystem.resourceregistry.resources.impl;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@ -16,6 +17,8 @@ import java.util.Set;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.codehaus.jettison.json.JSONStringer;
import org.codehaus.jettison.json.JSONWriter;
import org.gcube.informationsystem.impl.utils.Entities;
import org.gcube.informationsystem.model.embedded.Embedded;
import org.gcube.informationsystem.model.embedded.Header;
@ -412,8 +415,7 @@ public class EntityManagementImpl implements EntityManagement {
logger.trace("Created {} is {} orientVertexToJsonString",
Vertex.class.getSimpleName(), Utility
.orientVertexToJsonString(
(OrientVertex) vertex, true));
.toJsonString((OrientVertex) vertex, true));
}
return vertex;
@ -556,7 +558,7 @@ public class EntityManagementImpl implements EntityManagement {
public String createFacet(String facetType, String jsonRepresentation)
throws ResourceRegistryException {
Vertex vertex = createVertexEntity(facetType, Facet.class, jsonRepresentation, false);
return Utility.orientVertexToJsonString((OrientVertex) vertex, false);
return Utility.toJsonString((OrientVertex) vertex, false);
}
@Override
@ -577,10 +579,9 @@ public class EntityManagementImpl implements EntityManagement {
Vertex facet = getEntity(orientGraph, uuid, facetType, Facet.class);
logger.trace("{} of type {} with UUID {} is {}", Facet.NAME,
facetType, uuid, Utility.orientVertexToJsonString(
(OrientVertex) facet, true));
facetType, uuid, Utility.toJsonString((OrientVertex) facet, true));
return Utility.orientVertexToJsonString((OrientVertex) facet, true);
return Utility.toJsonString((OrientVertex) facet, true);
} catch (FacetNotFoundException fnfe) {
throw fnfe;
} catch (Exception e) {
@ -644,11 +645,9 @@ public class EntityManagementImpl implements EntityManagement {
orientGraph.commit();
logger.trace("{} with UUID {} has been updated {}", Facet.NAME,
uuid, Utility.orientVertexToJsonString(
(OrientVertex) facet, true));
uuid, Utility.toJsonString((OrientVertex) facet, true));
return Utility
.orientVertexToJsonString((OrientVertex) facet, false);
return Utility.toJsonString((OrientVertex) facet, false);
} catch (FacetNotFoundException fnfe) {
if (orientGraph != null) {
@ -709,7 +708,7 @@ public class EntityManagementImpl implements EntityManagement {
facetUUID, Facet.class,
consistOfType, ConsistsOf.class,
jsonProperties);
return Utility.orientEdgeToJsonString((OrientEdge) edge, false);
return Utility.toJsonString((OrientEdge) edge, false);
}
@Override
@ -755,7 +754,7 @@ public class EntityManagementImpl implements EntityManagement {
targetResourceUuid, Resource.class,
relatedToType, IsRelatedTo.class,
jsonProperties);
return Utility.orientEdgeToJsonString((OrientEdge) edge, false);
return Utility.toJsonString((OrientEdge) edge, false);
}
@Override
@ -792,21 +791,32 @@ public class EntityManagementImpl implements EntityManagement {
}
private static String marshallResource(Vertex vertex) throws JSONException{
JSONObject jsonObject = Utility.toJsonObject(vertex, false);
JSONObject jsonObject = Utility.toJsonObject((OrientVertex) vertex, true);
JSONArray jsonArray = new JSONArray();
JSONArray consistsOfArray = new JSONArray();
Iterable<Edge> edges = vertex.getEdges(Direction.OUT);
Iterable<Edge> edges = vertex.getEdges(Direction.OUT, ConsistsOf.NAME);
for(Edge edge : edges){
JSONObject jsonObjectEdge = Utility.toJsonObject(edge, false);
Vertex facetVertex = edge.getVertex(Direction.OUT);
jsonObjectEdge.put(Relation.TARGET_PROPERTY, Utility.toJsonObject(facetVertex, false));
String edgeType = edge.getLabel();
jsonArray.put(jsonObjectEdge);
try {
SchemaManagementImpl schemaManagement = new SchemaManagementImpl();
schemaManagement.getTypeSchema(edgeType, ConsistsOf.NAME);
JSONObject jsonObjectEdge = Utility.toJsonObject((OrientEdge) edge, true);
Vertex facetVertex = edge.getVertex(Direction.IN);
jsonObjectEdge.put(Relation.TARGET_PROPERTY, Utility.toJsonObject((OrientVertex) facetVertex, true));
consistsOfArray.put(jsonObjectEdge);
} catch (SchemaNotFoundException e) {
// This not an ConsistsOf Edge. it will be skipped
}
jsonObject.append(lowerCaseFirstCharacter(ConsistsOf.NAME), jsonArray);
}
jsonObject.put(lowerCaseFirstCharacter(ConsistsOf.NAME), consistsOfArray);
return jsonObject.toString();
}
@ -881,8 +891,7 @@ public class EntityManagementImpl implements EntityManagement {
Resource.class);
logger.trace("{} of type {} with UUID {} is {}", Resource.NAME,
resourceType, uuid, Utility.orientVertexToJsonString(
(OrientVertex) resource, true));
resourceType, uuid, Utility.toJsonString((OrientVertex) resource, true));
return marshallResource(resource);
} catch (ResourceNotFoundException rnfe) {

View File

@ -23,9 +23,8 @@ import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Element;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.impls.orient.OrientEdge;
import com.tinkerpop.blueprints.impls.orient.OrientElement;
import com.tinkerpop.blueprints.impls.orient.OrientGraph;
import com.tinkerpop.blueprints.impls.orient.OrientVertex;
import com.tinkerpop.blueprints.util.io.graphson.GraphSONMode;
import com.tinkerpop.blueprints.util.io.graphson.GraphSONUtility;
@ -37,16 +36,12 @@ public class Utility {
private static final Logger logger = LoggerFactory.getLogger(Utility.class);
public static String orientVertexToJsonString(OrientVertex orientVertex, boolean raw) {
ORecord oRecord = orientVertex.getRecord();
if (raw) {
return oRecord.toJSON();
}
return oRecord.toJSON("class");
public static JSONObject toJsonObject(OrientElement element, boolean raw) throws JSONException {
return new JSONObject(toJsonString(element, raw));
}
public static String orientEdgeToJsonString(OrientEdge orientEdge, boolean raw) {
ORecord oRecord = orientEdge.getRecord();
public static String toJsonString(OrientElement element, boolean raw) {
ORecord oRecord = element.getRecord();
if (raw) {
return oRecord.toJSON();
}
@ -69,8 +64,6 @@ public class Utility {
}
}
public static String toJsonString(Element element) {
try {
return toJsonObject(element, true).toString();