You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/04/28 18:10:36 UTC
[1/2] incubator-tinkerpop git commit: Extract GraphSON utility
function its own class so it can be publically accessed.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/master 97868d8b3 -> c8dcead9e
Extract GraphSON utility function its own class so it can be publically accessed.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/7bf094bb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/7bf094bb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/7bf094bb
Branch: refs/heads/master
Commit: 7bf094bb3ba34914550dd54af5932ecda33f7944
Parents: 97868d8
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Apr 28 12:09:10 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Apr 28 12:09:10 2015 -0400
----------------------------------------------------------------------
.../io/graphson/GraphSONSerializers.java | 26 +++--------
.../structure/io/graphson/GraphSONUtil.java | 45 ++++++++++++++++++++
.../util/star/StarGraphGraphSONSerializer.java | 27 ++++--------
3 files changed, 60 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/7bf094bb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializers.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializers.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializers.java
index c4548f2..107b2aa 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializers.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializers.java
@@ -21,7 +21,6 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
import com.fasterxml.jackson.databind.ser.std.StdKeySerializer;
@@ -120,14 +119,14 @@ class GraphSONSerializers {
final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
jsonGenerator.writeStartObject();
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
- writeWithType(GraphSONTokens.ID,edge.id(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.ID, edge.id(), jsonGenerator, serializerProvider, typeSerializer);
jsonGenerator.writeStringField(GraphSONTokens.LABEL, edge.label());
jsonGenerator.writeStringField(GraphSONTokens.TYPE, GraphSONTokens.EDGE);
jsonGenerator.writeStringField(GraphSONTokens.IN_LABEL, edge.inVertex().label());
jsonGenerator.writeStringField(GraphSONTokens.OUT_LABEL, edge.outVertex().label());
- writeWithType(GraphSONTokens.IN, edge.inVertex().id(), jsonGenerator, serializerProvider, typeSerializer);
- writeWithType(GraphSONTokens.OUT, edge.outVertex().id(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.IN, edge.inVertex().id(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.OUT, edge.outVertex().id(), jsonGenerator, serializerProvider, typeSerializer);
writeProperties(edge, jsonGenerator, serializerProvider, typeSerializer);
jsonGenerator.writeEndObject();
}
@@ -141,7 +140,7 @@ class GraphSONSerializers {
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
while (elementProperties.hasNext()) {
final Property<Object> elementProperty = elementProperties.next();
- writeWithType(elementProperty.key(), elementProperty.value(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(elementProperty.key(), elementProperty.value(), jsonGenerator, serializerProvider, typeSerializer);
}
jsonGenerator.writeEndObject();
}
@@ -298,8 +297,8 @@ class GraphSONSerializers {
final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
jsonGenerator.writeStartObject();
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
- writeWithType(GraphSONTokens.ID, property.id(), jsonGenerator, serializerProvider, typeSerializer);
- writeWithType(GraphSONTokens.VALUE, property.value(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.ID, property.id(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.VALUE, property.value(), jsonGenerator, serializerProvider, typeSerializer);
jsonGenerator.writeStringField(GraphSONTokens.LABEL, property.label());
tryWriteMetaProperties(property, jsonGenerator, serializerProvider, typeSerializer);
jsonGenerator.writeEndObject();
@@ -331,20 +330,9 @@ class GraphSONSerializers {
final Iterator<Property<Object>> metaProperties = property.properties();
while (metaProperties.hasNext()) {
final Property<Object> metaProperty = metaProperties.next();
- writeWithType(metaProperty.key(), metaProperty.value(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(metaProperty.key(), metaProperty.value(), jsonGenerator, serializerProvider, typeSerializer);
}
jsonGenerator.writeEndObject();
}
- public static void writeWithType(final String key, final Object object, final JsonGenerator jsonGenerator,
- final SerializerProvider serializerProvider,
- final TypeSerializer typeSerializer) throws IOException {
- final JsonSerializer<Object> serializer = serializerProvider.findValueSerializer(object.getClass(), null);
- if (typeSerializer != null) {
- jsonGenerator.writeFieldName(key);
- serializer.serializeWithType(object, jsonGenerator, serializerProvider, typeSerializer);
- } else {
- jsonGenerator.writeObjectField(key, object);
- }
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/7bf094bb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUtil.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUtil.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUtil.java
new file mode 100644
index 0000000..8e5a69b
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONUtil.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.structure.io.graphson;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
+
+import java.io.IOException;
+
+/**
+ * Utility methods for GraphSON serialization. Functions in here might be used by external serializers.
+ *
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public class GraphSONUtil {
+ public static void writeWithType(final String key, final Object object, final JsonGenerator jsonGenerator,
+ final SerializerProvider serializerProvider,
+ final TypeSerializer typeSerializer) throws IOException {
+ final JsonSerializer<Object> serializer = serializerProvider.findValueSerializer(object.getClass(), null);
+ if (typeSerializer != null) {
+ jsonGenerator.writeFieldName(key);
+ serializer.serializeWithType(object, jsonGenerator, serializerProvider, typeSerializer);
+ } else {
+ jsonGenerator.writeObjectField(key, object);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/7bf094bb/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGraphSONSerializer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGraphSONSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGraphSONSerializer.java
index 42aa73b..e2235d6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGraphSONSerializer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphGraphSONSerializer.java
@@ -31,6 +31,7 @@ import org.apache.tinkerpop.gremlin.structure.Property;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTokens;
+import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONUtil;
import org.apache.tinkerpop.gremlin.structure.util.Attachable;
import java.io.IOException;
@@ -68,7 +69,7 @@ public class StarGraphGraphSONSerializer extends StdSerializer<StarGraphGraphSON
final StarGraph starGraph = directionalStarGraph.getStarGraphToSerialize();
jsonGenerator.writeStartObject();
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
- writeWithType(GraphSONTokens.ID, starGraph.starVertex.id, jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.ID, starGraph.starVertex.id, jsonGenerator, serializerProvider, typeSerializer);
jsonGenerator.writeStringField(GraphSONTokens.LABEL, starGraph.starVertex.label);
if (directionalStarGraph.direction != null) writeEdges(directionalStarGraph, jsonGenerator, serializerProvider, typeSerializer, Direction.IN);
if (directionalStarGraph.direction != null) writeEdges(directionalStarGraph, jsonGenerator, serializerProvider, typeSerializer, Direction.OUT);
@@ -84,15 +85,15 @@ public class StarGraphGraphSONSerializer extends StdSerializer<StarGraphGraphSON
for (final VertexProperty property : vp.getValue()) {
jsonGenerator.writeStartObject();
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
- writeWithType(GraphSONTokens.ID, property.id(), jsonGenerator, serializerProvider, typeSerializer);
- writeWithType(GraphSONTokens.VALUE, property.value(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.ID, property.id(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(GraphSONTokens.VALUE, property.value(), jsonGenerator, serializerProvider, typeSerializer);
final Iterator<Property<Object>> metaProperties = property.properties();
if (metaProperties.hasNext()) {
jsonGenerator.writeObjectFieldStart(GraphSONTokens.PROPERTIES);
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
while (metaProperties.hasNext()) {
final Property<Object> meta = metaProperties.next();
- writeWithType(meta.key(), meta.value(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(meta.key(), meta.value(), jsonGenerator, serializerProvider, typeSerializer);
}
jsonGenerator.writeEndObject();
}
@@ -128,8 +129,8 @@ public class StarGraphGraphSONSerializer extends StdSerializer<StarGraphGraphSON
for (final Edge edge : edges.getValue()) {
jsonGenerator.writeStartObject();
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
- writeWithType(GraphSONTokens.ID, edge.id(), jsonGenerator, serializerProvider, typeSerializer);
- writeWithType(direction.equals(Direction.OUT) ? GraphSONTokens.IN : GraphSONTokens.OUT,
+ GraphSONUtil.writeWithType(GraphSONTokens.ID, edge.id(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(direction.equals(Direction.OUT) ? GraphSONTokens.IN : GraphSONTokens.OUT,
direction.equals(Direction.OUT) ? edge.inVertex().id() : edge.outVertex().id(),
jsonGenerator, serializerProvider, typeSerializer);
final Iterator<Property<Object>> metaProperties = edge.properties();
@@ -138,7 +139,7 @@ public class StarGraphGraphSONSerializer extends StdSerializer<StarGraphGraphSON
if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
while (metaProperties.hasNext()) {
final Property<Object> meta = metaProperties.next();
- writeWithType(meta.key(), meta.value(), jsonGenerator, serializerProvider, typeSerializer);
+ GraphSONUtil.writeWithType(meta.key(), meta.value(), jsonGenerator, serializerProvider, typeSerializer);
}
jsonGenerator.writeEndObject();
}
@@ -151,18 +152,6 @@ public class StarGraphGraphSONSerializer extends StdSerializer<StarGraphGraphSON
}
}
- private static void writeWithType(final String key, final Object object, final JsonGenerator jsonGenerator,
- final SerializerProvider serializerProvider,
- final TypeSerializer typeSerializer) throws IOException {
- final JsonSerializer<Object> serializer = serializerProvider.findValueSerializer(object.getClass(), null);
- if (typeSerializer != null) {
- jsonGenerator.writeFieldName(key);
- serializer.serializeWithType(object, jsonGenerator, serializerProvider, typeSerializer);
- } else {
- jsonGenerator.writeObjectField(key, object);
- }
- }
-
/**
* A helper function for reading vertex edges from a serialized {@link StarGraph} (i.e. a {@link Map}) generated by
* {@link StarGraphGraphSONSerializer}.
[2/2] incubator-tinkerpop git commit: Renamed the old GraphSONUtility
to avoid confusion with between "new" and "legacy"
Posted by sp...@apache.org.
Renamed the old GraphSONUtility to avoid confusion with between "new" and "legacy"
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/c8dcead9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/c8dcead9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/c8dcead9
Branch: refs/heads/master
Commit: c8dcead9e5126895e18eef0d9f9ce56db5b074ab
Parents: 7bf094b
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Apr 28 12:09:48 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Apr 28 12:09:48 2015 -0400
----------------------------------------------------------------------
.../structure/io/graphson/LegacyGraphSONReader.java | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/c8dcead9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
index 947dabe..852455f 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/LegacyGraphSONReader.java
@@ -71,7 +71,7 @@ public class LegacyGraphSONReader implements GraphReader {
final boolean supportsVertexIds = graphToWriteTo.features().vertex().supportsUserSuppliedIds();
final JsonFactory factory = mapper.getFactory();
- final GraphSONUtility graphson = new GraphSONUtility(graphToWriteTo, supportsVertexIds, supportsEdgeIds, cache);
+ final LegacyGraphSONUtility graphson = new LegacyGraphSONUtility(graphToWriteTo, supportsVertexIds, supportsEdgeIds, cache);
try (JsonParser parser = factory.createParser(inputStream)) {
if (parser.nextToken() != JsonToken.START_OBJECT)
@@ -100,8 +100,8 @@ public class LegacyGraphSONReader implements GraphReader {
parser.nextToken();
while (parser.nextToken() != JsonToken.END_ARRAY) {
final JsonNode node = parser.readValueAsTree();
- final Vertex inV = cache.get(GraphSONUtility.getTypedValueFromJsonNode(node.get(GraphSONTokens._IN_V)));
- final Vertex outV = cache.get(GraphSONUtility.getTypedValueFromJsonNode(node.get(GraphSONTokens._OUT_V)));
+ final Vertex inV = cache.get(LegacyGraphSONUtility.getTypedValueFromJsonNode(node.get(GraphSONTokens._IN_V)));
+ final Vertex outV = cache.get(LegacyGraphSONUtility.getTypedValueFromJsonNode(node.get(GraphSONTokens._OUT_V)));
graphson.edgeFromJson(node, outV, inV);
if (supportsTx && counter.incrementAndGet() % batchSize == 0)
@@ -197,15 +197,15 @@ public class LegacyGraphSONReader implements GraphReader {
}
}
- static class GraphSONUtility {
+ static class LegacyGraphSONUtility {
private static final String EMPTY_STRING = "";
private final Graph g;
private final boolean supportsVertexIds;
private final boolean supportsEdgeIds;
private final Map<Object,Vertex> cache;
- public GraphSONUtility(final Graph g, final boolean supportsVertexIds, final boolean supportsEdgeIds,
- final Map<Object,Vertex> cache) {
+ public LegacyGraphSONUtility(final Graph g, final boolean supportsVertexIds, final boolean supportsEdgeIds,
+ final Map<Object, Vertex> cache) {
this.g = g;
this.supportsVertexIds = supportsVertexIds;
this.supportsEdgeIds = supportsEdgeIds;
@@ -228,7 +228,7 @@ public class LegacyGraphSONReader implements GraphReader {
}
public Edge edgeFromJson(final JsonNode json, final Vertex out, final Vertex in) throws IOException {
- final Map<String, Object> props = GraphSONUtility.readProperties(json);
+ final Map<String, Object> props = LegacyGraphSONUtility.readProperties(json);
final Object edgeId = getTypedValueFromJsonNode(json.get(GraphSONTokens._ID));
final JsonNode nodeLabel = json.get(GraphSONTokens._LABEL);