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 2016/08/23 11:07:19 UTC

tinkerpop git commit: Extracted base deserializer for better re-use across different graphson classes.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 0676a7768 -> b3f3fe433


Extracted base deserializer for better re-use across different graphson classes.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b3f3fe43
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b3f3fe43
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b3f3fe43

Branch: refs/heads/TINKERPOP-1278
Commit: b3f3fe433275bd5ae52344a0c3ed1ae24b15d20e
Parents: 0676a77
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 23 07:06:49 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 23 07:06:49 2016 -0400

----------------------------------------------------------------------
 .../io/graphson/AbstractObjectDeserializer.java | 51 ++++++++++++++++++++
 .../io/graphson/GraphSONSerializersV2d0.java    | 33 +++----------
 .../GraphSONTraversalSerializersV2d0.java       |  9 ++--
 3 files changed, 61 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b3f3fe43/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractObjectDeserializer.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractObjectDeserializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractObjectDeserializer.java
new file mode 100644
index 0000000..5087113
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractObjectDeserializer.java
@@ -0,0 +1,51 @@
+/*
+ * 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 org.apache.tinkerpop.shaded.jackson.core.JsonParser;
+import org.apache.tinkerpop.shaded.jackson.core.JsonProcessingException;
+import org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext;
+import org.apache.tinkerpop.shaded.jackson.databind.deser.std.StdDeserializer;
+
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * Base class for creating deserializers which parses JSON to a {@code Map} to more easily reconstruct an object.
+ *
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+abstract class AbstractObjectDeserializer<T> extends StdDeserializer<T> {
+
+    protected AbstractObjectDeserializer(final Class<T> clazz) {
+        super(clazz);
+    }
+
+    @Override
+    public T deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+        jsonParser.nextToken();
+
+        // This will automatically parse all typed stuff.
+        final Map<String, Object> mapData = deserializationContext.readValue(jsonParser, Map.class);
+
+        return createObject(mapData);
+    }
+
+    abstract T createObject(final Map<String, Object> data);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b3f3fe43/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java
index a53000a..4e522aa 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java
@@ -416,27 +416,8 @@ class GraphSONSerializersV2d0 {
 
     //////////////////////////// DESERIALIZERS ///////////////////////////
 
-    abstract static class AbstractGraphObjectDeserializer<T> extends StdDeserializer<T> {
 
-        protected AbstractGraphObjectDeserializer(Class<T> clazz) {
-            super(clazz);
-        }
-
-        @Override
-        public T deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
-
-            jsonParser.nextToken();
-            // This will automatically parse all typed stuff.
-            final Map<String, Object> mapData = deserializationContext.readValue(jsonParser, Map.class);
-
-            return createObject(mapData);
-        }
-
-        abstract T createObject(Map<String, Object> data);
-    }
-
-
-    static class VertexJacksonDeserializer extends AbstractGraphObjectDeserializer<Vertex> {
+    static class VertexJacksonDeserializer extends AbstractObjectDeserializer<Vertex> {
 
         public VertexJacksonDeserializer() {
             super(Vertex.class);
@@ -452,7 +433,7 @@ class GraphSONSerializersV2d0 {
         }
     }
 
-    static class EdgeJacksonDeserializer extends AbstractGraphObjectDeserializer<Edge> {
+    static class EdgeJacksonDeserializer extends AbstractObjectDeserializer<Edge> {
 
         public EdgeJacksonDeserializer() {
             super(Edge.class);
@@ -470,7 +451,7 @@ class GraphSONSerializersV2d0 {
         }
     }
 
-    static class PropertyJacksonDeserializer extends AbstractGraphObjectDeserializer<Property> {
+    static class PropertyJacksonDeserializer extends AbstractObjectDeserializer<Property> {
 
         public PropertyJacksonDeserializer() {
             super(Property.class);
@@ -484,7 +465,7 @@ class GraphSONSerializersV2d0 {
         }
     }
 
-    static class PathJacksonDeserializer extends AbstractGraphObjectDeserializer<Path> {
+    static class PathJacksonDeserializer extends AbstractObjectDeserializer<Path> {
 
         public PathJacksonDeserializer() {
             super(Path.class);
@@ -504,7 +485,7 @@ class GraphSONSerializersV2d0 {
         }
     }
 
-    static class VertexPropertyJacksonDeserializer extends AbstractGraphObjectDeserializer<VertexProperty> {
+    static class VertexPropertyJacksonDeserializer extends AbstractObjectDeserializer<VertexProperty> {
 
         protected VertexPropertyJacksonDeserializer() {
             super(VertexProperty.class);
@@ -521,7 +502,7 @@ class GraphSONSerializersV2d0 {
         }
     }
 
-    static class MetricsJacksonDeserializer extends AbstractGraphObjectDeserializer<Metrics> {
+    static class MetricsJacksonDeserializer extends AbstractObjectDeserializer<Metrics> {
         public MetricsJacksonDeserializer() {
             super(Metrics.class);
         }
@@ -544,7 +525,7 @@ class GraphSONSerializersV2d0 {
         }
     }
 
-    static class TraversalMetricsJacksonDeserializer extends AbstractGraphObjectDeserializer<TraversalMetrics> {
+    static class TraversalMetricsJacksonDeserializer extends AbstractObjectDeserializer<TraversalMetrics> {
 
         public TraversalMetricsJacksonDeserializer() {
             super(TraversalMetrics.class);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b3f3fe43/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
index 7f02bfd..d768d8e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTraversalSerializersV2d0.java
@@ -396,18 +396,15 @@ final class GraphSONTraversalSerializersV2d0 {
         }
     }
 
-    static class TraverserJacksonDeserializer extends StdDeserializer<Traverser> {
+    static class TraverserJacksonDeserializer extends AbstractObjectDeserializer<Traverser> {
 
         public TraverserJacksonDeserializer() {
             super(Traverser.class);
         }
 
         @Override
-        public Traverser deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
-            jsonParser.nextToken();
-            // This will automatically parse all typed stuff.
-            final Map<String, Object> mapData = deserializationContext.readValue(jsonParser, Map.class);
-            return new DefaultRemoteTraverser<>(mapData.get(GraphSONTokens.VALUE), (Long) mapData.get(GraphSONTokens.BULK));
+        Traverser createObject(final Map<String, Object> data) {
+            return new DefaultRemoteTraverser<>(data.get(GraphSONTokens.VALUE), (Long) data.get(GraphSONTokens.BULK));
         }
     }
 }