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);