You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/05/15 19:03:23 UTC

incubator-tinkerpop git commit: has(traversal) is now provided by where(traverasl). has(key, traversal) exists. has() is always with respects to an element property. where() is for generic traversals off the incoming object and variable binding in Maps an

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master eb3e2c757 -> 8bf8ede11


has(traversal) is now provided by where(traverasl). has(key,traversal) exists. has() is always with respects to an element property. where() is for generic traversals off the incoming object and variable binding in Maps and Paths/SideEffects.


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

Branch: refs/heads/master
Commit: 8bf8ede114487110c54d9a1eedb1111f4e628877
Parents: eb3e2c7
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri May 15 11:03:17 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri May 15 11:03:17 2015 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../traversal/TraversalVertexProgram.java       |  2 +-
 .../traversal/dsl/graph/GraphTraversal.java     |  8 ++---
 .../gremlin/process/traversal/dsl/graph/__.java |  8 ++---
 .../traversal/step/filter/HasTraversalStep.java | 19 ++++++-----
 .../process/traversal/step/map/VertexStep.java  | 11 ++++++-
 .../traversal/step/sideEffect/GraphStep.java    | 12 +++----
 .../strategy/decoration/SubgraphStrategy.java   | 34 ++++++++++----------
 .../AdjacentToIncidentStrategy.java             |  9 +++---
 .../IncidentToAdjacentStrategy.java             |  2 +-
 .../process/traversal/util/TraversalHelper.java | 11 +++++--
 .../decoration/ConjunctionStrategyTest.java     |  2 +-
 .../decoration/SubgraphStrategyTest.java        | 13 ++++----
 .../SubgraphStrategyTraverseTest.java           |  3 +-
 .../AdjacentToIncidentStrategyTest.java         | 12 ++++---
 .../RangeByIsCountStrategyTest.java             |  7 ++--
 .../ComputerVerificationStrategyTest.java       |  2 +-
 .../step/filter/GroovyHasNotTest.groovy         |  6 ++--
 .../traversal/step/filter/GroovyHasTest.groovy  |  4 +--
 .../traversal/step/filter/GroovyIsTest.groovy   |  8 ++---
 .../traversal/step/map/GroovySelectTest.groovy  |  2 +-
 .../step/sideEffect/GroovyProfileTest.groovy    |  4 +--
 .../process/TraversalPerformanceTest.java       |  4 +--
 .../traversal/step/filter/HasNotTest.java       | 12 +++----
 .../process/traversal/step/filter/HasTest.java  | 17 +++++-----
 .../process/traversal/step/filter/IsTest.java   | 17 +++++-----
 .../process/traversal/step/map/SelectTest.java  | 12 ++++---
 .../traversal/step/sideEffect/ProfileTest.java  |  8 ++---
 28 files changed, 137 insertions(+), 113 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 96d15ae..3dec2f6 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,6 +25,7 @@ image::http://www.tinkerpop.com/docs/current/images/gremlin-hindu.png[width=225]
 TinkerPop 3.0.0.M9 (NOT OFFICIALLY RELEASED YET)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* `has(traversal)` is replaced by `where(traveral)` and `has(key,traversal)`. `HasXXX` is always with respects to an element property.
 * Added `TraversalScriptHelper` with static methods for dynamically creating a `Traversal` from a JSR 223 `ScriptEngine`.
 * Changed `SubgraphStrategy` to take `Traversal` rather than `Predicate` for filtering.
 * Improved `SubgraphStrategy` to only modify the `Traversal` if filtering was required.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
index f3a1779..8cda534 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java
@@ -154,7 +154,7 @@ public final class TraversalVertexProgram implements VertexProgram<TraverserSet<
             final GraphStep<Element> graphStep = (GraphStep<Element>) this.traversal.getStartStep();
             final String future = graphStep.getNextStep().getId();
             final TraverserGenerator traverserGenerator = this.traversal.getTraverserGenerator();
-            if (graphStep.returnsVertices()) {  // VERTICES (process the first step locally)
+            if (graphStep.returnsVertex()) {  // VERTICES (process the first step locally)
                 if (ElementHelper.idExists(vertex.id(), graphStep.getIds())) {
                     final Traverser.Admin<Element> traverser = traverserGenerator.generate(vertex, graphStep, 1l);
                     traverser.setStepId(future);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 62e1560..d4cff86 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -466,12 +466,12 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.where(Scope.global, whereTraversal);
     }
 
-    public default GraphTraversal<S, E> has(final Traversal<?, ?> hasNextTraversal) {
-        return this.asAdmin().addStep(new HasTraversalStep<>(this.asAdmin(), (Traversal.Admin<E, ?>) hasNextTraversal, false));
+    public default GraphTraversal<S, E> has(final String key, final Traversal hasNextTraversal) {
+        return this.asAdmin().addStep(new HasTraversalStep(this.asAdmin(), key, hasNextTraversal.asAdmin(), false));
     }
 
-    public default GraphTraversal<S, E> hasNot(final Traversal<?, ?> hasNotNextTraversal) {
-        return this.asAdmin().addStep(new HasTraversalStep<>(this.asAdmin(), (Traversal.Admin<E, ?>) hasNotNextTraversal, true));
+    public default GraphTraversal<S, E> hasNot(final String key, final Traversal hasNotNextTraversal) {
+        return this.asAdmin().addStep(new HasTraversalStep(this.asAdmin(), key, hasNotNextTraversal.asAdmin(), true));
     }
 
     public default GraphTraversal<S, E> has(final String key, final P<?> predicate, final P<?>... predicates) {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
index af581c6..5658be3 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
@@ -302,12 +302,12 @@ public class __ {
         return __.<A>start().dedup(scope);
     }
 
-    public static <A> GraphTraversal<A, A> has(final Traversal<?, ?> hasNextTraversal) {
-        return __.<A>start().has(hasNextTraversal);
+    public static <A> GraphTraversal<A, A> has(final String key, final Traversal hasNextTraversal) {
+        return __.<A>start().has(key, hasNextTraversal);
     }
 
-    public static <A> GraphTraversal<A, A> hasNot(final Traversal<?, ?> hasNotNextTraversal) {
-        return __.<A>start().hasNot(hasNotNextTraversal);
+    public static <A> GraphTraversal<A, A> hasNot(final String key, final Traversal hasNotNextTraversal) {
+        return __.<A>start().hasNot(key, hasNotNextTraversal);
     }
 
     public static <A> GraphTraversal<A, A> has(final String key, final P<?> predicate, final P<?>... predicates) {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTraversalStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTraversalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTraversalStep.java
index 4cdfc8f..48129a8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTraversalStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTraversalStep.java
@@ -20,11 +20,12 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
+import org.apache.tinkerpop.gremlin.structure.Element;
 
 import java.util.Collections;
 import java.util.List;
@@ -35,13 +36,15 @@ import java.util.Set;
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  * @author Daniel Kuppitz (http://gremlin.guru)
  */
-public final class HasTraversalStep<S> extends AbstractStep<S, S> implements TraversalParent {
+public final class HasTraversalStep<S extends Element> extends AbstractStep<S, S> implements TraversalParent {
 
-    private Traversal.Admin<S, ?> hasTraversal;
+    private Traversal.Admin<?, ?> hasTraversal;
+    private final String propertyKey;
     private final boolean negate;
 
-    public HasTraversalStep(final Traversal.Admin traversal, final Traversal.Admin<S, ?> hasTraversal, final boolean negate) {
+    public HasTraversalStep(final Traversal.Admin traversal, final String propertyKey, final Traversal.Admin<?, ?> hasTraversal, final boolean negate) {
         super(traversal);
+        this.propertyKey = propertyKey;
         this.negate = negate;
         this.hasTraversal = this.integrateChild(hasTraversal);
     }
@@ -50,19 +53,19 @@ public final class HasTraversalStep<S> extends AbstractStep<S, S> implements Tra
     protected Traverser<S> processNextStart() throws NoSuchElementException {
         while (true) {
             final Traverser.Admin<S> start = this.starts.next();
-            if (TraversalUtil.test(start, this.hasTraversal) != this.negate)
+            if (TraversalUtil.test(start.get().<Object>value(this.propertyKey), (Traversal.Admin<Object,Object>)this.hasTraversal) != this.negate)
                 return start;
         }
     }
 
     @Override
     public String toString() {
-        final String stepString = TraversalHelper.makeStepString(this, this.hasTraversal);
+        final String stepString = TraversalHelper.makeStepString(this, this.propertyKey, this.hasTraversal);
         return this.negate ? stepString.replaceFirst("\\(", "(!") : stepString;
     }
 
     @Override
-    public List<Traversal<S, ?>> getLocalChildren() {
+    public List<Traversal<?, ?>> getLocalChildren() {
         return Collections.singletonList(this.hasTraversal);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
index 1b3d034..2541172 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
@@ -20,9 +20,10 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 
@@ -70,6 +71,14 @@ public class VertexStep<E extends Element> extends FlatMapStep<Vertex, E> {
         this.direction = this.direction.opposite();
     }
 
+    public boolean returnsVertex() {
+        return this.returnClass.equals(Vertex.class);
+    }
+
+    public boolean returnsEdge() {
+        return this.returnClass.equals(Edge.class);
+    }
+
     @Override
     public String toString() {
         return TraversalHelper.makeStepString(this, this.direction, Arrays.asList(this.edgeLabels), this.returnClass.getSimpleName().toLowerCase());

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
index 832100e..d2244cf 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GraphStep.java
@@ -60,16 +60,16 @@ public class GraphStep<S extends Element> extends StartStep<S> implements Engine
         return TraversalHelper.makeStepString(this, Arrays.toString(this.ids), this.returnClass.getSimpleName().toLowerCase());
     }
 
-    public boolean returnsVertices() {
-        return Vertex.class.isAssignableFrom(this.returnClass);
+    public Class<S> getReturnClass() {
+        return this.returnClass;
     }
 
-    public boolean returnsEdges() {
-        return Edge.class.isAssignableFrom(this.returnClass);
+    public boolean returnsVertex() {
+        return this.returnClass.equals(Vertex.class);
     }
 
-    public Class<S> getReturnClass() {
-        return this.returnClass;
+    public boolean returnsEdge() {
+        return this.returnClass.equals(Edge.class);
     }
 
     public void setIteratorSupplier(final Supplier<Iterator<S>> iteratorSupplier) {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
index f5a360a..8488d51 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
@@ -18,14 +18,13 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration;
 
+import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.AndStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTraversalStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.LambdaFilterStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeByPathStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
@@ -42,7 +41,6 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 /**
@@ -66,8 +64,8 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
         if (null == vertexPredicate) {
             this.edgePredicate = edgePredicate;
         } else {
-            final Traversal<Object, Vertex> inVertexPredicate = __.inV().has(vertexPredicate);
-            final Traversal<Object, Vertex> outVertexPredicate = __.outV().has(vertexPredicate);
+            final Traversal<Object, Vertex> inVertexPredicate = __.inV().where(vertexPredicate);
+            final Traversal<Object, Vertex> outVertexPredicate = __.outV().where(vertexPredicate);
 
             // if there is a vertex predicate then there is an implied edge filter on vertices even if there is no
             // edge predicate provided by the user.
@@ -89,25 +87,25 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
             vertexStepsToInsertFilterAfter.addAll(TraversalHelper.getStepsOfAssignableClass(EdgeVertexStep.class, traversal));
             vertexStepsToInsertFilterAfter.addAll(TraversalHelper.getStepsOfAssignableClass(AddVertexStep.class, traversal));
             vertexStepsToInsertFilterAfter.addAll(TraversalHelper.getStepsOfAssignableClass(AddVertexStartStep.class, traversal));
-            vertexStepsToInsertFilterAfter.addAll(graphSteps.stream().filter(s -> s.getReturnClass().equals(Vertex.class)).collect(Collectors.toList()));
+            vertexStepsToInsertFilterAfter.addAll(graphSteps.stream().filter(GraphStep::returnsVertex).collect(Collectors.toList()));
 
-            vertexStepsToInsertFilterAfter.forEach(s -> TraversalHelper.insertAfterStep(new HasTraversalStep<>(traversal, vertexPredicate.asAdmin().clone(), false), s, traversal));
+            vertexStepsToInsertFilterAfter.forEach(s -> TraversalHelper.insertAfterStep(new WhereStep<>(traversal, Scope.global, vertexPredicate.asAdmin().clone()), s, traversal));
         }
 
         if (edgePredicate != null) {
             final List<Step> edgeStepsToInsertFilterAfter = new ArrayList<>();
             edgeStepsToInsertFilterAfter.addAll(TraversalHelper.getStepsOfAssignableClass(AddEdgeStep.class, traversal));
             edgeStepsToInsertFilterAfter.addAll(TraversalHelper.getStepsOfAssignableClass(AddEdgeByPathStep.class, traversal));
-            edgeStepsToInsertFilterAfter.addAll(graphSteps.stream().filter(s -> s.getReturnClass().equals(Edge.class)).collect(Collectors.toList()));
-            edgeStepsToInsertFilterAfter.addAll(vertexSteps.stream().filter(s -> s.getReturnClass().equals(Edge.class)).collect(Collectors.toList()));
+            edgeStepsToInsertFilterAfter.addAll(graphSteps.stream().filter(GraphStep::returnsEdge).collect(Collectors.toList()));
+            edgeStepsToInsertFilterAfter.addAll(vertexSteps.stream().filter(VertexStep::returnsEdge).collect(Collectors.toList()));
 
-            edgeStepsToInsertFilterAfter.forEach(s -> TraversalHelper.insertAfterStep(new HasTraversalStep<>(traversal, edgePredicate.asAdmin().clone(), false), s, traversal));
+            edgeStepsToInsertFilterAfter.forEach(s -> TraversalHelper.insertAfterStep(new WhereStep<>(traversal, Scope.global, edgePredicate.asAdmin().clone()), s, traversal));
         }
 
         // explode g.V().out() to g.V().outE().inV() only if there is an edge predicate otherwise
-        vertexSteps.stream().filter(s -> s.getReturnClass().equals(Vertex.class)).forEach(s -> {
+        vertexSteps.stream().filter(VertexStep::returnsVertex).forEach(s -> {
             if (null == edgePredicate)
-                TraversalHelper.insertAfterStep(new HasTraversalStep<>(traversal, vertexPredicate.asAdmin().clone(), false), s, traversal);
+                TraversalHelper.insertAfterStep(new WhereStep<>(traversal, Scope.global, vertexPredicate.asAdmin().clone()), s, traversal);
             else {
                 final VertexStep replacementVertexStep = new VertexStep(traversal, Edge.class, s.getDirection(), s.getEdgeLabels());
                 Step intermediateFilterStep = null;
@@ -118,10 +116,10 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
 
                 TraversalHelper.replaceStep(s, replacementVertexStep, traversal);
                 TraversalHelper.insertAfterStep(intermediateFilterStep, replacementVertexStep, traversal);
-                TraversalHelper.insertAfterStep(new HasTraversalStep<>(traversal, edgePredicate.asAdmin().clone(), false), replacementVertexStep, traversal);
+                TraversalHelper.insertAfterStep(new WhereStep<>(traversal, Scope.global, edgePredicate.asAdmin().clone()), replacementVertexStep, traversal);
 
                 if (vertexPredicate != null)
-                    TraversalHelper.insertAfterStep(new HasTraversalStep<>(traversal, vertexPredicate.asAdmin().clone(), false), intermediateFilterStep, traversal);
+                    TraversalHelper.insertAfterStep(new WhereStep<>(traversal, Scope.global, vertexPredicate.asAdmin().clone()), intermediateFilterStep, traversal);
             }
         });
     }
@@ -143,7 +141,8 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
         private Traversal<Vertex, ?> vertexPredicate = null;
         private Traversal<Edge, ?> edgePredicate = null;
 
-        private Builder() {}
+        private Builder() {
+        }
 
         public Builder vertexPredicate(final Traversal<Vertex, ?> predicate) {
             vertexPredicate = predicate;
@@ -156,7 +155,8 @@ public final class SubgraphStrategy extends AbstractTraversalStrategy<TraversalS
         }
 
         public SubgraphStrategy create() {
-            if (null == edgePredicate && null == vertexPredicate) throw new IllegalStateException("A subgraph must be filtered by an edge or vertex filter");
+            if (null == edgePredicate && null == vertexPredicate)
+                throw new IllegalStateException("A subgraph must be filtered by an edge or vertex filter");
             return new SubgraphStrategy(vertexPredicate, edgePredicate);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
index 0b07c37..d23a11c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
@@ -25,14 +25,15 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.ConjunctionStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTraversalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.ReducingBarrierStep;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.PropertyType;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
 
 import java.util.Collections;
 import java.util.List;
@@ -73,7 +74,7 @@ public final class AdjacentToIncidentStrategy extends AbstractTraversalStrategy<
             final Step curr = steps.get(i);
             if (i == size && isOptimizable(curr)) {
                 final TraversalParent parent = curr.getTraversal().getParent();
-                if (parent instanceof HasTraversalStep || parent instanceof ConjunctionStep) {
+                if (parent instanceof WhereStep || parent instanceof HasTraversalStep || parent instanceof ConjunctionStep) {
                     optimizeStep(traversal, curr);
                 }
             } else if (isOptimizable(prev)) {
@@ -99,8 +100,8 @@ public final class AdjacentToIncidentStrategy extends AbstractTraversalStrategy<
      * @return <code>true</code> if the step is optimizable, otherwise <code>false</code>
      */
     private static boolean isOptimizable(final Step step) {
-        return ((step instanceof VertexStep && Vertex.class.equals(((VertexStep) step).getReturnClass())) ||
-                (step instanceof PropertiesStep && PropertyType.VALUE.equals(((PropertiesStep) step).getReturnType())));
+        return ((step instanceof VertexStep && ((VertexStep) step).returnsVertex()) ||
+                (step instanceof PropertiesStep && PropertyType.VALUE.equals(((PropertiesStep) step).getReturnType()))) && (step.getTraversal().getEndStep().getLabels().isEmpty() || step.getNextStep() instanceof CountGlobalStep);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
index d82faf6..b26f0e8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
@@ -99,7 +99,7 @@ public final class IncidentToAdjacentStrategy extends AbstractTraversalStrategy<
      * otherwise <code>false</code>
      */
     private static boolean isOptimizable(final Step step1, final Step step2) {
-        if (step1 instanceof VertexStep && Edge.class.equals(((VertexStep) step1).getReturnClass()) && step1.getLabels().isEmpty()) {
+        if (step1 instanceof VertexStep && ((VertexStep) step1).returnsEdge() && step1.getLabels().isEmpty()) {
             final Direction step1Dir = ((VertexStep) step1).getDirection();
             if (step1Dir.equals(Direction.BOTH)) {
                 return step2 instanceof EdgeOtherVertexStep;

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
index 69ad48e..138a311 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
@@ -28,10 +28,15 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import org.apache.tinkerpop.gremlin.structure.T;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -90,7 +95,7 @@ public final class TraversalHelper {
             if (step instanceof PropertiesStep && state == 'u')
                 return false;
             else if (step instanceof VertexStep) {
-                if (Vertex.class.isAssignableFrom(((VertexStep) step).getReturnClass())) {
+                if (((VertexStep) step).returnsVertex()) {
                     if (state == 'u') return false;
                     if (state == 'v') state = 'u';
                 } else {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
index 4ba9036..81fe7be 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConjunctionStrategyTest.java
@@ -117,7 +117,7 @@ public class ConjunctionStrategyTest {
         static Iterable<Object[]> generateTestParameters() {
 
             return Arrays.asList(new Traversal[][]{
-                    {__.has("name", "stephen").or().has(__.out("knows").has("name", "stephen")), __.or(__.has("name", "stephen"), __.has(__.out("knows").has("name", "stephen")))},
+                    {__.has("name", "stephen").or().where(__.out("knows").has("name", "stephen")), __.or(__.has("name", "stephen"), __.where(__.out("knows").has("name", "stephen")))},
                     {__.out("a").out("b").and().out("c").or().out("d"), __.or(__.and(__.out("a").out("b"), __.out("c")), __.out("d"))}
             });
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
index 99c6789..c8c7c81 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTrav
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.AndStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTraversalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IdentityStep;
@@ -43,8 +44,8 @@ public class SubgraphStrategyTest {
         final Traversal t = __.inV();
         strategy.apply(t.asAdmin());
         final EdgeVertexStep edgeVertexStep = (EdgeVertexStep) t.asAdmin().getStartStep();
-        assertEquals(HasTraversalStep.class, edgeVertexStep.getNextStep().getClass());
-        final HasTraversalStep h = (HasTraversalStep) t.asAdmin().getEndStep();
+        assertEquals(WhereStep.class, edgeVertexStep.getNextStep().getClass());
+        final WhereStep h = (WhereStep) t.asAdmin().getEndStep();
         assertEquals(1, h.getLocalChildren().size());
         assertThat(((DefaultGraphTraversal) h.getLocalChildren().get(0)).getEndStep(), CoreMatchers.instanceOf(IdentityStep.class));
     }
@@ -55,8 +56,8 @@ public class SubgraphStrategyTest {
         final Traversal t = __.inE();
         strategy.apply(t.asAdmin());
         final VertexStep vertexStep = (VertexStep) t.asAdmin().getStartStep();
-        assertEquals(HasTraversalStep.class, vertexStep.getNextStep().getClass());
-        final HasTraversalStep h = (HasTraversalStep) t.asAdmin().getEndStep();
+        assertEquals(WhereStep.class, vertexStep.getNextStep().getClass());
+        final WhereStep h = (WhereStep) t.asAdmin().getEndStep();
         assertEquals(1, h.getLocalChildren().size());
         assertThat(((DefaultGraphTraversal) h.getLocalChildren().get(0)).getEndStep(), CoreMatchers.instanceOf(IdentityStep.class));
     }
@@ -67,8 +68,8 @@ public class SubgraphStrategyTest {
         final Traversal t = __.inE();
         strategy.apply(t.asAdmin());
         final VertexStep vertexStep = (VertexStep) t.asAdmin().getStartStep();
-        assertEquals(HasTraversalStep.class, vertexStep.getNextStep().getClass());
-        final HasTraversalStep h = (HasTraversalStep) t.asAdmin().getEndStep();
+        assertEquals(WhereStep.class, vertexStep.getNextStep().getClass());
+        final WhereStep h = (WhereStep) t.asAdmin().getEndStep();
         assertEquals(1, h.getLocalChildren().size());
         assertThat(((DefaultGraphTraversal) h.getLocalChildren().get(0)).getEndStep(), CoreMatchers.instanceOf(AndStep.class));
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTraverseTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTraverseTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTraverseTest.java
index 6876316..8331312 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTraverseTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTraverseTest.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTraversalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GraphStep;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -95,7 +96,7 @@ public class SubgraphStrategyTraverseTest {
         final SubgraphStrategy strategy = SubgraphStrategy.build().edgePredicate(__.identity()).vertexPredicate(__.identity()).create();
         strategy.apply(traversal.asAdmin());
 
-        final List<HasTraversalStep> steps = TraversalHelper.getStepsOfClass(HasTraversalStep.class, traversal.asAdmin());
+        final List<WhereStep> steps = TraversalHelper.getStepsOfClass(WhereStep.class, traversal.asAdmin());
         assertEquals(expectedInsertedSteps, steps.size());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
index 8fb9bca..6d8f679 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
@@ -119,14 +119,16 @@ public class AdjacentToIncidentStrategyTest {
                     {__.both().count(), __.bothE().count()},
                     {__.out("knows").count(), __.outE("knows").count()},
                     {__.out("knows", "likes").count(), __.outE("knows", "likes").count()},
-                    {__.has(__.out()), __.has(__.outE())},
-                    {__.hasNot(__.out()), __.hasNot(__.outE())},
-                    {__.has(__.out("knows")), __.has(__.outE("knows"))},
+                    {__.where(__.out()), __.where(__.outE())},
+                    //{__.hasNot(__.out()), __.hasNot(__.outE())},
+                    {__.where(__.out("knows")), __.where(__.outE("knows"))},
                     {__.values().count(), __.properties().count()},
                     {__.values("name").count(), __.properties("name").count()},
-                    {__.has(__.values()), __.has(__.properties())},
+                    {__.where(__.values()), __.where(__.properties())},
                     {__.and(__.out(), __.in()), __.and(__.outE(), __.inE())},
-                    {__.or(__.out(), __.in()), __.or(__.outE(), __.inE())}});
+                    {__.or(__.out(), __.in()), __.or(__.outE(), __.inE())},
+                    {__.out().as("a").count(),__.outE().count()},   // TODO: is this good?
+                    {__.where(__.as("a").out("knows").as("b")), __.where(__.as("a").out("knows").as("b"))}});
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
index 4ac05c8..5d47d6d 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RangeByIsCountStrategyTest.java
@@ -24,6 +24,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTraversalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereStep;
 import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.P;
@@ -118,11 +119,11 @@ public class RangeByIsCountStrategyTest {
         @Test
         public void nestedCountEqualsNullShouldLimitToOne() {
             final AtomicInteger counter = new AtomicInteger(0);
-            final Traversal traversal = __.out().has(__.outE("created").count().is(0));
+            final Traversal traversal = __.out().where(__.outE("created").count().is(0));
             applyRangeByIsCountStrategy(traversal);
 
-            final HasTraversalStep hasStep = TraversalHelper.getStepsOfClass(HasTraversalStep.class, traversal.asAdmin()).stream().findFirst().get();
-            final Traversal nestedTraversal = (Traversal) hasStep.getLocalChildren().get(0);
+            final WhereStep whereStep = TraversalHelper.getStepsOfClass(WhereStep.class, traversal.asAdmin()).stream().findFirst().get();
+            final Traversal nestedTraversal = (Traversal) whereStep.getLocalChildren().get(0);
             TraversalHelper.getStepsOfClass(RangeGlobalStep.class, nestedTraversal.asAdmin()).stream().forEach(step -> {
                 assertEquals(0, step.getLowRange());
                 assertEquals(1, step.getHighRange());

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java
index 72a7b5d..07d7caf 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java
@@ -55,7 +55,7 @@ public class ComputerVerificationStrategyTest {
     public static Iterable<Object[]> data() {
         return Arrays.asList(new Object[][]{
                 {"__.out().union(__.out().count(),__.in().count())", __.out().union(__.out().count(), __.in().count())},
-                {"__.has(__.out().values(\"name\"))", __.has(__.out().values("name"))},
+                {"__.where(__.out().values(\"name\"))", __.where(__.out().values("name"))},
                 {"__.groupCount(\"a\").out().cap(\"a\").count()", __.groupCount("a").out().cap("a").count()},
 
         });

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasNotTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasNotTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasNotTest.groovy
index 430d9b8..aea92b1 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasNotTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasNotTest.groovy
@@ -38,9 +38,9 @@ public abstract class GroovyHasNotTest {
             TraversalScriptHelper.compute("g.V.hasNot('${propertyKey}')", g);
         }
 
-        @Override
+        /*@Override
         public Traversal<Vertex, String> get_g_V_hasNotXoutXcreatedXX() {
-            TraversalScriptHelper.compute("return g.V().hasNot(__.out('created')).values('name')", g);
-        }
+            TraversalScriptHelper.compute("g.V.hasNot(out('created')).name", g);
+        }*/
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
index e292bfc..076b2dd 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyHasTest.groovy
@@ -35,8 +35,8 @@ public abstract class GroovyHasTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_outXknowsX_hasXoutXcreatedXX_name() {
-            TraversalScriptHelper.compute("g.V.out('knows').has(__.out('created')).name", g);
+        public Traversal<Vertex, String> get_g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name() {
+            TraversalScriptHelper.compute("g.V.out('created').has('name',map{it.length()}.is(gt(3))).name", g);
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyIsTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyIsTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyIsTest.groovy
index e44c48d..258f1c4 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyIsTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyIsTest.groovy
@@ -45,13 +45,13 @@ public abstract class GroovyIsTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX() {
-            TraversalScriptHelper.compute("g.V.has(__.in('created').count.is(1)).name", g)
+        public Traversal<Vertex, String> get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX() {
+            TraversalScriptHelper.compute("g.V.where(__.in('created').count.is(1)).name", g)
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_hasXinXcreatedX_count_isXgte_2XX_valuesXnameX() {
-            TraversalScriptHelper.compute("g.V.has(__.in('created').count.is(gte(2l))).name", g)
+        public Traversal<Vertex, String> get_g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX() {
+            TraversalScriptHelper.compute("g.V.where(__.in('created').count.is(gte(2l))).name", g)
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
index f68d924..3f797d7 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
@@ -75,7 +75,7 @@ public abstract class GroovySelectTest {
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_isXmarkoXX_asXaX_select() {
-            TraversalScriptHelper.compute("g.V.has(values('name').is('marko')).as('a').select", g)
+            TraversalScriptHelper.compute("g.V.has('name',__.is('marko')).as('a').select", g)
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyProfileTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyProfileTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyProfileTest.groovy
index 74fe09a..b90657a 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyProfileTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyProfileTest.groovy
@@ -42,8 +42,8 @@ public abstract class GroovyProfileTest {
         }
 
         @Override
-        Traversal<Vertex, StandardTraversalMetrics> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile() {
-            TraversalScriptHelper.compute("g.V().has(__.in('created').count().is(1l)).values('name').profile()", g);
+        Traversal<Vertex, StandardTraversalMetrics> get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX_profile() {
+            TraversalScriptHelper.compute("g.V().where(__.in('created').count().is(1l)).values('name').profile()", g);
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalPerformanceTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalPerformanceTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalPerformanceTest.java
index 773b819..32b4656 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalPerformanceTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalPerformanceTest.java
@@ -124,7 +124,7 @@ public class TraversalPerformanceTest extends AbstractGremlinTest {
     @BenchmarkOptions(benchmarkRounds = DEFAULT_BENCHMARK_ROUNDS, warmupRounds = DEFAULT_WARMUP_ROUNDS, concurrency = BenchmarkOptions.CONCURRENCY_SEQUENTIAL)
     @LoadGraphWith(LoadGraphWith.GraphData.GRATEFUL)
     @Test
-    public void g_E_hasLabelXwrittenByX_hasNotXinV_inEXsungByXX_subgraphXsgX() throws Exception {
-        g.E().hasLabel("writtenBy").hasNot(__.inV().inE("sungBy")).subgraph("sg").iterate();
+    public void g_E_hasLabelXwrittenByX_whereXinV_inEXsungByX_count_isX0XX_subgraphXsgX() throws Exception {
+        g.E().hasLabel("writtenBy").where(__.inV().inE("sungBy").count().is(0)).subgraph("sg").iterate();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasNotTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasNotTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasNotTest.java
index eb4f375..49f518a 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasNotTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasNotTest.java
@@ -45,7 +45,7 @@ public abstract class HasNotTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Vertex> get_g_V_hasNotXprop(final String propertyKey);
 
-    public abstract Traversal<Vertex, String> get_g_V_hasNotXoutXcreatedXX();
+    //public abstract Traversal<Vertex, String> get_g_V_hasNotXoutXcreatedXX();
 
     @Test
     @LoadGraphWith(MODERN)
@@ -68,12 +68,12 @@ public abstract class HasNotTest extends AbstractGremlinProcessTest {
         assertEquals(6, list.size());
     }
 
-    @Test
+    /*@Test
     @LoadGraphWith(MODERN)
     public void g_V_hasNotXoutXcreatedXX() {
         final Traversal<Vertex, String> traversal = get_g_V_hasNotXoutXcreatedXX();
         checkResults(Arrays.asList("vadas", "lop", "ripple"), traversal);
-    }
+    }*/
 
     public static class Traversals extends HasNotTest {
 
@@ -87,9 +87,9 @@ public abstract class HasNotTest extends AbstractGremlinProcessTest {
             return g.V().hasNot(propertyKey);
         }
 
-        @Override
+        /*@Override
         public Traversal<Vertex, String> get_g_V_hasNotXoutXcreatedXX() {
-            return g.V().hasNot(__.out("created")).values("name");
-        }
+            return g.V().where(__.out("created").cou).values("name");
+        }*/
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
index 3e59769..8cc4331 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
@@ -21,12 +21,12 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
-import org.apache.tinkerpop.gremlin.structure.P;
-import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
+import org.apache.tinkerpop.gremlin.structure.P;
+import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.hamcrest.CoreMatchers;
 import org.junit.Test;
@@ -37,7 +37,6 @@ import java.util.List;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.CREW;
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*;
 import static org.junit.Assert.*;
 
 /**
@@ -47,7 +46,7 @@ import static org.junit.Assert.*;
 @RunWith(GremlinProcessRunner.class)
 public abstract class HasTest extends AbstractGremlinProcessTest {
 
-    public abstract Traversal<Vertex, String> get_g_V_outXknowsX_hasXoutXcreatedXX_name();
+    public abstract Traversal<Vertex, String> get_g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name();
 
     public abstract Traversal<Vertex, Vertex> get_g_VX1X_hasXkeyX(final Object v1Id, final String key);
 
@@ -84,9 +83,9 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_outXknowsX_hasXoutXcreatedXX_valuesXnameX() {
-        final Traversal<Vertex, String> traversal = get_g_V_outXknowsX_hasXoutXcreatedXX_name();
+        final Traversal<Vertex, String> traversal = get_g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name();
         printTraversalForm(traversal);
-        checkResults(Arrays.asList("josh"), traversal);
+        checkResults(Arrays.asList("ripple"), traversal);
     }
 
     @Test
@@ -319,8 +318,8 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_outXknowsX_hasXoutXcreatedXX_name() {
-            return g.V().out("knows").has(out("created")).values("name");
+        public Traversal<Vertex, String> get_g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name() {
+            return g.V().out("created").has("name", __.<String, Integer>map(s -> s.get().length()).is(P.gt(3))).values("name");
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/IsTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/IsTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/IsTest.java
index 4e7da30..f6d013a 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/IsTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/IsTest.java
@@ -22,7 +22,6 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
 import org.apache.tinkerpop.gremlin.structure.P;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Test;
@@ -46,9 +45,9 @@ public abstract class IsTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Integer> get_g_V_valuesXageX_isXgte_29X_isXlt_34X();
 
-    public abstract Traversal<Vertex, String> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX();
+    public abstract Traversal<Vertex, String> get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX();
 
-    public abstract Traversal<Vertex, String> get_g_V_hasXinXcreatedX_count_isXgte_2XX_valuesXnameX();
+    public abstract Traversal<Vertex, String> get_g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX();
 
     @Test
     @LoadGraphWith(MODERN)
@@ -79,7 +78,7 @@ public abstract class IsTest extends AbstractGremlinProcessTest {
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX() {
-        final Traversal<Vertex, String> traversal = get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX();
+        final Traversal<Vertex, String> traversal = get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX();
         printTraversalForm(traversal);
         assertTrue(traversal.hasNext());
         assertEquals("ripple", traversal.next());
@@ -89,7 +88,7 @@ public abstract class IsTest extends AbstractGremlinProcessTest {
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_hasXinXcreatedX_count_isXgte_2XX_valuesXnameX() {
-        final Traversal<Vertex, String> traversal = get_g_V_hasXinXcreatedX_count_isXgte_2XX_valuesXnameX();
+        final Traversal<Vertex, String> traversal = get_g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX();
         printTraversalForm(traversal);
         assertTrue(traversal.hasNext());
         assertEquals("lop", traversal.next());
@@ -113,13 +112,13 @@ public abstract class IsTest extends AbstractGremlinProcessTest {
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX() {
-            return g.V().has(in("created").count().is(1)).values("name");
+        public Traversal<Vertex, String> get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX() {
+            return g.V().where(in("created").count().is(1)).values("name");
         }
 
         @Override
-        public Traversal<Vertex, String> get_g_V_hasXinXcreatedX_count_isXgte_2XX_valuesXnameX() {
-            return g.V().has(in("created").count().is(P.gte(2l))).values("name");
+        public Traversal<Vertex, String> get_g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX() {
+            return g.V().where(in("created").count().is(P.gte(2l))).values("name");
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
index b249cc5..be4d078 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
@@ -21,9 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
-import org.apache.tinkerpop.gremlin.process.IgnoreEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Order;
@@ -32,13 +30,17 @@ import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.CREW;
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
 import static org.apache.tinkerpop.gremlin.process.traversal.Scope.local;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.as;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.values;
 import static org.junit.Assert.*;
 
 /**
@@ -510,7 +512,7 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_isXmarkoXX_asXaX_select() {
-            return g.V().has(values("name").is("marko")).as("a").select();
+            return g.V().has("name", __.is("marko")).as("a").select();
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/8bf8ede1/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/ProfileTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/ProfileTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/ProfileTest.java
index 0c0b9e4..be7dbe0 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/ProfileTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/ProfileTest.java
@@ -57,7 +57,7 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, StandardTraversalMetrics> get_g_V_sleep_sleep_profile();
 
-    public abstract Traversal<Vertex, StandardTraversalMetrics> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile();
+    public abstract Traversal<Vertex, StandardTraversalMetrics> get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX_profile();
 
     @Test
     @LoadGraphWith(MODERN)
@@ -216,7 +216,7 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest {
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile() {
-        final Traversal<Vertex, StandardTraversalMetrics> traversal = get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile();
+        final Traversal<Vertex, StandardTraversalMetrics> traversal = get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX_profile();
         printTraversalForm(traversal);
 
         traversal.iterate();
@@ -313,8 +313,8 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest {
         }
 
         @Override
-        public Traversal<Vertex, StandardTraversalMetrics> get_g_V_hasXinXcreatedX_count_isX1XX_valuesXnameX_profile() {
-            return (Traversal) g.V().has(__.in("created").count().is(1l)).values("name").profile();
+        public Traversal<Vertex, StandardTraversalMetrics> get_g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX_profile() {
+            return (Traversal) g.V().where(__.in("created").count().is(1l)).values("name").profile();
         }
     }
 }
\ No newline at end of file