Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1278 0ce35b637 -> dc27a2a56


added toString(), equals(), and hashCode() to ByteCode and Instruction.


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

Branch: refs/heads/TINKERPOP-1278
Commit: dc27a2a56089017ad566fa0eed9bc1cd9bef1c65
Parents: 0ce35b6
Author: Marko A. Rodriguez <[email protected]>
Authored: Sat Jul 2 11:28:46 2016 -0600
Committer: Marko A. Rodriguez <[email protected]>
Committed: Sat Jul 2 11:28:46 2016 -0600

----------------------------------------------------------------------
 .../gremlin/process/traversal/ByteCode.java     | 67 ++++++++++++++++++++
 .../structure/TinkerGraphPlayTest.java          | 15 +----
 2 files changed, 68 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/dc27a2a5/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/ByteCode.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/ByteCode.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/ByteCode.java
index 61a50e4..53753d6 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/ByteCode.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/ByteCode.java
@@ -19,8 +19,11 @@
 
 package org.apache.tinkerpop.gremlin.process.traversal;
 
+import org.apache.tinkerpop.gremlin.process.traversal.util.TranslatorHelper;
+
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
@@ -54,6 +57,33 @@ public final class ByteCode implements Cloneable, 
Serializable {
         return Collections.unmodifiableList(this.stepInstructions);
     }
 
+    @Override
+    public String toString() {
+        final StringBuilder builder = new StringBuilder("[");
+        for (final Instruction instruction : this.sourceInstructions) {
+            builder.append(instruction).append(",\n");
+        }
+        for (final Instruction instruction : this.stepInstructions) {
+            builder.append(instruction).append(",\n");
+        }
+        if (builder.length() > 2)
+            builder.delete(builder.length() - 2,builder.length());
+        builder.append("]");
+        return builder.toString();
+    }
+
+    @Override
+    public boolean equals(final Object object) {
+        return object instanceof ByteCode &&
+                this.sourceInstructions.equals(((ByteCode) 
object).sourceInstructions) &&
+                this.stepInstructions.equals(((ByteCode) 
object).sourceInstructions);
+    }
+
+    @Override
+    public int hashCode() {
+        return this.sourceInstructions.hashCode() + 
this.stepInstructions.hashCode();
+    }
+
     @SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException")
     public ByteCode clone() {
         try {
@@ -84,5 +114,42 @@ public final class ByteCode implements Cloneable, 
Serializable {
             return this.arguments;
         }
 
+        @Override
+        public String toString() {
+            return "[\"" + this.operator + "\"," + stringifyArguments() + "]";
+        }
+
+        @Override
+        public boolean equals(final Object object) {
+            return object instanceof Instruction &&
+                    this.operator.equals(((Instruction) object).operator) &&
+                    Arrays.equals(this.arguments, ((Instruction) 
object).arguments);
+        }
+
+        @Override
+        public int hashCode() {
+            return this.operator.hashCode() + Arrays.hashCode(this.arguments);
+        }
+
+        private String stringifyArguments() {
+            final List<Object> objects = 
TranslatorHelper.flattenArguments(this.arguments);
+            final StringBuilder builder = new StringBuilder("[");
+            for (final Object object : objects) {
+                if (object instanceof Traversal)
+                    builder.append(((Traversal) 
object).asAdmin().getByteCode());
+                else if (object instanceof String)
+                    builder.append("\"").append(object).append("\"");
+                else
+                    builder.append(object);
+                builder.append(",");
+            }
+            if (!objects.isEmpty())
+                builder.deleteCharAt(builder.length() - 1);
+            builder.append("]");
+
+            return builder.toString();
+
+        }
+
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/dc27a2a5/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
----------------------------------------------------------------------
diff --git 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
index 7097b1c..96d11e3 100644
--- 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
+++ 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
@@ -52,7 +52,6 @@ import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outE;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.union;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.valueMap;
-import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.values;
 
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
@@ -65,19 +64,7 @@ public class TinkerGraphPlayTest {
     public void testPlay8() throws Exception {
         Graph graph = TinkerFactory.createModern();
         GraphTraversalSource g = 
graph.traversal().withComputer();//GraphTraversalSource.computer());
-        
//System.out.println(g.V().outE("knows").identity().inV().count().is(P.eq(5)).explain());
-        
//System.out.println(g.V().hasLabel("person").fold().order(Scope.local).by("age").toList());
-        
//System.out.println(g.V().repeat(out()).times(2).profile("m").explain());
-        final Traversal<?, ?> traversal = 
g.V().hasLabel("person").<Number>project("a", 
"b").by(__.outE().count()).by("age");
-        System.out.println(traversal.explain());
-        
//System.out.println(g.V().hasLabel("person").pageRank().by("rank").by(bothE()).values("rank").profile("m").explain());
-        //System.out.println(traversal.asAdmin().clone().toString());
-        // final Traversal<?,?> clone = traversal.asAdmin().clone();
-        // clone.asAdmin().applyStrategies();
-        // System.out.println(clone);
-        System.out.println(traversal.asAdmin().toList());
-        //System.out.println(traversal.asAdmin().getSideEffects().get("m") + " 
");
-        
//System.out.println(g.V().pageRank().order().by(PageRankVertexProgram.PAGE_RANK).valueMap().toList());
+        
System.out.println(g.V().as("a").out().repeat(both("created")).times(10).as("b").values("name").dedup().select("a",
 "b").by("name").asAdmin().getByteCode());
     }
 
     @Test

Reply via email to