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/06/09 18:22:25 UTC

incubator-tinkerpop git commit: renamed KeyStep to PropertyKeyStep so its consistent with PropertyValueStep. Started the arduous process of JavaDocing GraphTraversal and __.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master f01f3c2da -> b4cc944e1


renamed KeyStep to PropertyKeyStep so its consistent with PropertyValueStep. Started the arduous process of JavaDocing GraphTraversal and __.


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

Branch: refs/heads/master
Commit: b4cc944e12b392eea48e5015c46ee095dc839042
Parents: f01f3c2
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jun 9 10:22:19 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jun 9 10:22:19 2015 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 .../traversal/dsl/graph/GraphTraversal.java     | 220 ++++++++++++++++++-
 .../gremlin/process/traversal/dsl/graph/__.java | 165 ++++++++++++++
 .../process/traversal/step/map/KeyStep.java     |  47 ----
 .../traversal/step/map/PropertyKeyStep.java     |  47 ++++
 .../process/traversal/step/map/KeyStepTest.java |  40 ----
 .../traversal/step/map/PropertyKeyStepTest.java |  40 ++++
 7 files changed, 471 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b4cc944e/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index e5aac08..a6ec7bf 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.GA (NOT OFFICIALLY RELEASED YET)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* Renamed `KeyStep` to `PropertyKeyStep` to be consistent with `PropertyValueStep`.
 * The REST API in Gremlin Server now requires parameters to be defined with a "bindings." prefix.
 * Modified the REST API in Gremlin Server to accept rebindings.
 * Added `rebindings` optional argument to sessionless requests to allow global bindings to be rebound as needed.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b4cc944e/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 2dc03c7..f9771b7 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
@@ -67,7 +67,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.FoldStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupCountStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.IdStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.KeyStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.LambdaFlatMapStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.LambdaMapStep;
@@ -81,6 +80,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderLocalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PathStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyKeyStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyMapStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyValueStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.RangeLocalStep;
@@ -167,114 +167,287 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
 
     ///////////////////// MAP STEPS /////////////////////
 
+    /**
+     * Map a traveser referencing an object of type <code>E</code> to an object of type <code>E2</code>.
+     *
+     * @param function the lambda expression that does the functional mapping
+     * @param <E2>the  mapping end type
+     * @return the traversal with an appended {@link LambdaMapStep}.
+     */
     public default <E2> GraphTraversal<S, E2> map(final Function<Traverser<E>, E2> function) {
         return this.asAdmin().addStep(new LambdaMapStep<>(this.asAdmin(), function));
     }
 
+    /**
+     * Map a traverser referencing an object of type <code>E</code> to an iterator of objects of type <code>E2</code>.
+     * The resultant iterator is drained one-by-one before a new <code>E</code> object is pulled in for processing.
+     *
+     * @param function the lambda expression that does the functional mapping
+     * @param <E2>     the type of the returned iterator objects
+     * @return the traversal with an appended {@link LambdaFlatMapStep}.
+     */
     public default <E2> GraphTraversal<S, E2> flatMap(final Function<Traverser<E>, Iterator<E2>> function) {
         return this.asAdmin().addStep(new LambdaFlatMapStep<>(this.asAdmin(), function));
     }
 
+    /**
+     * Map the {@link Element} to its {@link Element#id}.
+     *
+     * @return the traversal with an appended {@link IdStep}.
+     */
     public default GraphTraversal<S, Object> id() {
         return this.asAdmin().addStep(new IdStep<>(this.asAdmin()));
     }
 
+    /**
+     * Map the {@link Element} to its {@link Element#label}.
+     *
+     * @return the traversal with an appended {@link LabelStep}.
+     */
     public default GraphTraversal<S, String> label() {
         return this.asAdmin().addStep(new LabelStep<>(this.asAdmin()));
     }
 
+    /**
+     * Map the <code>E</code> object to itself. In other words, a "no op."
+     *
+     * @return the traversal with an appended {@link IdentityStep}.
+     */
     public default GraphTraversal<S, E> identity() {
         return this.asAdmin().addStep(new IdentityStep<>(this.asAdmin()));
     }
 
+    /**
+     * Map the {@link Vertex} to its adjacent vertices given a direction and edge labels.
+     *
+     * @param direction  the direction to traverse from the current vertex
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Vertex> to(final Direction direction, final String... edgeLabels) {
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Vertex.class, direction, edgeLabels));
     }
 
+    /**
+     * Map the {@link Vertex} to its outgoing adjacent vertices given the edge labels.
+     *
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Vertex> out(final String... edgeLabels) {
         return this.to(Direction.OUT, edgeLabels);
     }
 
+    /**
+     * Map the {@link Vertex} to its incoming adjacent vertices given the edge labels.
+     *
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Vertex> in(final String... edgeLabels) {
         return this.to(Direction.IN, edgeLabels);
     }
 
+    /**
+     * Map the {@link Vertex} to its adjacent vertices given the edge labels.
+     *
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Vertex> both(final String... edgeLabels) {
         return this.to(Direction.BOTH, edgeLabels);
     }
 
+    /**
+     * Map the {@link Vertex} to its incident edges given the direction and edge labels.
+     *
+     * @param direction  the direction to traverse from the current vertex
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Edge> toE(final Direction direction, final String... edgeLabels) {
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Edge.class, direction, edgeLabels));
     }
 
+    /**
+     * Map the {@link Vertex} to its outgoing incident edges given the edge labels.
+     *
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Edge> outE(final String... edgeLabels) {
         return this.toE(Direction.OUT, edgeLabels);
     }
 
+    /**
+     * Map the {@link Vertex} to its incoming incident edges given the edge labels.
+     *
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Edge> inE(final String... edgeLabels) {
         return this.toE(Direction.IN, edgeLabels);
     }
 
+    /**
+     * Map the {@link Vertex} to its incident edges given the edge labels.
+     *
+     * @param edgeLabels the edge labels to traverse
+     * @return the traversal with an appended {@link VertexStep}.
+     */
     public default GraphTraversal<S, Edge> bothE(final String... edgeLabels) {
         return this.toE(Direction.BOTH, edgeLabels);
     }
 
+    /**
+     * Map the {@link Edge} to its incident vertices given the direction.
+     *
+     * @param direction the direction to traverser from the current edge
+     * @return the traversal with an appended {@link EdgeVertexStep}.
+     */
     public default GraphTraversal<S, Vertex> toV(final Direction direction) {
         return this.asAdmin().addStep(new EdgeVertexStep(this.asAdmin(), direction));
     }
 
+    /**
+     * Map the {@link Edge} to its incoming/head incident {@link Vertex}.
+     *
+     * @return the traversal with an appended {@link EdgeVertexStep}.
+     */
     public default GraphTraversal<S, Vertex> inV() {
         return this.toV(Direction.IN);
     }
 
+    /**
+     * Map the {@link Edge} to its outgoing/tail incident {@link Vertex}.
+     *
+     * @return the traversal with an appended {@link EdgeVertexStep}.
+     */
     public default GraphTraversal<S, Vertex> outV() {
         return this.toV(Direction.OUT);
     }
 
+    /**
+     * Map the {@link Edge} to its incident vertices.
+     *
+     * @return the traversal with an appended {@link EdgeVertexStep}.
+     */
     public default GraphTraversal<S, Vertex> bothV() {
         return this.toV(Direction.BOTH);
     }
 
+    /**
+     * Map the {@link Edge} to the incident vertex that was not just traversed from in the path history.
+     *
+     * @return the traversal with an appended {@link EdgeOtherVertexStep}.
+     */
     public default GraphTraversal<S, Vertex> otherV() {
         return this.asAdmin().addStep(new EdgeOtherVertexStep(this.asAdmin()));
     }
 
+    /**
+     * Order all the objects in the traversal up to this point and then emit them one-by-one in their ordered sequence.
+     *
+     * @return the traversal with an appended {@link OrderGlobalStep}.
+     */
     public default GraphTraversal<S, E> order() {
         return this.order(Scope.global);
     }
 
+    /**
+     * Order either the {@link Scope#local} object (e.g. a list, map, etc.) or the entire {@link Scope#global} traversal stream.
+     *
+     * @param scope whether the ordering is the current local object or the entire global stream.
+     * @return the traversal with an appended {@link OrderGlobalStep} or {@link OrderLocalStep}.
+     */
     public default GraphTraversal<S, E> order(final Scope scope) {
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new OrderGlobalStep<>(this.asAdmin()) : new OrderLocalStep<>(this.asAdmin()));
     }
 
+    /**
+     * Map the {@link Element} to its associated properties given the provide property keys.
+     * If no property keys are provided, then all properties are emitted.
+     *
+     * @param propertyKeys the properties to retrieve
+     * @param <E2>         the value type of the returned properties
+     * @return the traversal with an appended {@link PropertiesStep}.
+     */
     public default <E2> GraphTraversal<S, ? extends Property<E2>> properties(final String... propertyKeys) {
         return this.asAdmin().addStep(new PropertiesStep<>(this.asAdmin(), PropertyType.PROPERTY, propertyKeys));
     }
 
+    /**
+     * Map the {@link Element} to the values of the associated properties given the provide property keys.
+     * If no property keys are provided, then all property values are emitted.
+     *
+     * @param propertyKeys the properties to retrieve their value from
+     * @param <E2>         the value type of the properties
+     * @return the traversal with an appended {@link PropertiesStep}.
+     */
     public default <E2> GraphTraversal<S, E2> values(final String... propertyKeys) {
         return this.asAdmin().addStep(new PropertiesStep<>(this.asAdmin(), PropertyType.VALUE, propertyKeys));
     }
 
+    /**
+     * Map the {@link Element} to a {@link Map} of the properties key'd according to their {@link Property#key}.
+     * If no property keys are provided, then all properties are retrieved.
+     *
+     * @param propertyKeys the properties to retrieve
+     * @param <E2>         the value type of the returned properties
+     * @return the traversal with an appended {@link PropertyMapStep}.
+     */
     public default <E2> GraphTraversal<S, Map<String, E2>> propertyMap(final String... propertyKeys) {
         return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), false, PropertyType.PROPERTY, propertyKeys));
     }
 
+    /**
+     * Map the {@link Element} to a {@link Map} of the property values key'd according to their {@link Property#key}.
+     * If no property keys are provided, then all property values are retrieved.
+     *
+     * @param propertyKeys the properties to retrieve
+     * @param <E2>         the value type of the returned properties
+     * @return the traversal with an appended {@link PropertyMapStep}.
+     */
     public default <E2> GraphTraversal<S, Map<String, E2>> valueMap(final String... propertyKeys) {
         return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), false, PropertyType.VALUE, propertyKeys));
     }
 
+    /**
+     * Map the {@link Element} to a {@link Map} of the property values key'd according to their {@link Property#key}.
+     * If no property keys are provided, then all property values are retrieved.
+     *
+     * @param includeTokens whether to include {@link T} tokens in the emitted map.
+     * @param propertyKeys  the properties to retrieve
+     * @param <E2>          the value type of the returned properties
+     * @return the traversal with an appended {@link PropertyMapStep}.
+     */
     public default <E2> GraphTraversal<S, Map<String, E2>> valueMap(final boolean includeTokens, final String... propertyKeys) {
         return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), includeTokens, PropertyType.VALUE, propertyKeys));
     }
 
+    /**
+     * Map the {@link Property} to its {@link Property#key}.
+     *
+     * @return the traversal with an appended {@link PropertyKeyStep}.
+     */
     public default GraphTraversal<S, String> key() {
-        return this.asAdmin().addStep(new KeyStep(this.asAdmin()));
+        return this.asAdmin().addStep(new PropertyKeyStep(this.asAdmin()));
     }
 
+    /**
+     * Map the {@link Property} to its {@link Property#value}.
+     *
+     * @return the traversal with an appended {@link PropertyValueStep}.
+     */
     public default <E2> GraphTraversal<S, E2> value() {
         return this.asAdmin().addStep(new PropertyValueStep<>(this.asAdmin()));
     }
 
+    /**
+     * Map the {@link Traverser} to its {@link Path} history via {@link Traverser#path}.
+     *
+     * @return the traversal with an appended {@link PathStep}.
+     */
     public default GraphTraversal<S, Path> path() {
         return this.asAdmin().addStep(new PathStep<>(this.asAdmin()));
     }
@@ -283,6 +456,12 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return (GraphTraversal) this.asAdmin().addStep(new MatchStep<E, Map<String, E2>>(this.asAdmin(), startLabel, traversals));
     }
 
+    /**
+     * Map the {@link Traverser} to its {@link Traverser#sack} value.
+     *
+     * @param <E2> the sack value type
+     * @return the traversal with an appended {@link SackStep}.
+     */
     public default <E2> GraphTraversal<S, E2> sack() {
         return this.asAdmin().addStep(new SackStep<>(this.asAdmin()));
     }
@@ -315,6 +494,11 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.asAdmin().addStep(new FoldStep<>(this.asAdmin(), new ConstantSupplier<>(seed), foldFunction)); // TODO: User should provide supplier?
     }
 
+    /**
+     * Map the traversal stream to its reduction as a sum of the {@link Traverser#bulk} values (i.e. count the number of traversers up to this point).
+     *
+     * @return the traversal with an appended {@link CountGlobalStep}.
+     */
     public default GraphTraversal<S, Long> count() {
         return this.count(Scope.global);
     }
@@ -323,6 +507,11 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new CountGlobalStep<>(this.asAdmin()) : new CountLocalStep<>(this.asAdmin()));
     }
 
+    /**
+     * Map the traversal stream to its reduction as a sum of the {@link Traverser#get} values multiplied by their {@link Traverser#bulk} (i.e. sum the traverser values up to this point).
+     *
+     * @return the traversal with an appended {@link SumGlobalStep}.
+     */
     public default GraphTraversal<S, Double> sum() {
         return this.sum(Scope.global);
     }
@@ -412,6 +601,11 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.asAdmin().addStep(new InjectStep<>(this.asAdmin(), injections));
     }
 
+    /**
+     * Remove all duplicates in the traversal stream up to this point.
+     *
+     * @return the traversal with an appended {@link DedupGlobalStep}.
+     */
     public default GraphTraversal<S, E> dedup() {
         return this.dedup(Scope.global);
     }
@@ -500,10 +694,22 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.asAdmin().addStep(new IsStep<>(this.asAdmin(), predicate));
     }
 
+    /**
+     * Filter the <code>E</code> object if it is not {@link P#eq} to the provided value.
+     *
+     * @param value the value that the object must equal.
+     * @return the traversal with an appended {@link IsStep}.
+     */
     public default GraphTraversal<S, E> is(final Object value) {
         return this.is(value instanceof P ? (P<E>) value : P.eq((E) value));
     }
 
+    /**
+     * Filter the <code>E</code> object given a biased coin toss.
+     *
+     * @param probability the probability that the object will pass through
+     * @return the traversal with an appended {@link CoinStep}.
+     */
     public default GraphTraversal<S, E> coin(final double probability) {
         return this.asAdmin().addStep(new CoinStep<>(this.asAdmin(), probability));
     }
@@ -544,10 +750,20 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
                 : new TailLocalStep<>(this.asAdmin(), limit));
     }
 
+    /**
+     * Filter the <code>E</code> object if its {@link Traverser#path} is not {@link Path#isSimple}.
+     *
+     * @return the traversal with an appended {@link SimplePathStep}.
+     */
     public default GraphTraversal<S, E> simplePath() {
         return this.asAdmin().addStep(new SimplePathStep<>(this.asAdmin()));
     }
 
+    /**
+     * Filter the <code>E</code> object if its {@link Traverser#path} is {@link Path#isSimple}.
+     *
+     * @return the traversal with an appended {@link CyclicPathStep}.
+     */
     public default GraphTraversal<S, E> cyclicPath() {
         return this.asAdmin().addStep(new CyclicPathStep<>(this.asAdmin()));
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b4cc944e/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 f2d3dce..6c2825f 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
@@ -60,222 +60,387 @@ public class __ {
 
     ///////////////////// MAP STEPS /////////////////////
 
+    /**
+     * @see {@link GraphTraversal#map(Function)}.
+     */
     public static <A, B> GraphTraversal<A, B> map(final Function<Traverser<A>, B> function) {
         return __.<A>start().map(function);
     }
 
+    /**
+     * @see {@link GraphTraversal#flatMap(Function)}.
+     */
     public static <A, B> GraphTraversal<A, B> flatMap(final Function<Traverser<A>, Iterator<B>> function) {
         return __.<A>start().flatMap(function);
     }
 
+    /**
+     * @see {@link GraphTraversal#identity()}
+     */
     public static <A> GraphTraversal<A, A> identity() {
         return __.<A>start().identity();
     }
 
+    /**
+     * @see {@link GraphTraversal#label()}
+     */
     public static <A> GraphTraversal<A, String> label() {
         return __.<A>start().label();
     }
 
+    /**
+     * @see {@link GraphTraversal#id()}
+     */
     public static <A> GraphTraversal<A, Object> id() {
         return __.<A>start().id();
     }
 
+    /**
+     * @see {@link GraphTraversal#to(Direction, String...)}
+     */
     public static <A> GraphTraversal<A, Vertex> to(final Direction direction, final String... edgeLabels) {
         return __.<A>start().to(direction, edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#out(String...)}
+     */
     public static <A> GraphTraversal<A, Vertex> out(final String... edgeLabels) {
         return __.<A>start().out(edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#in(String...)}
+     */
     public static <A> GraphTraversal<A, Vertex> in(final String... edgeLabels) {
         return __.<A>start().in(edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#both(String...)}
+     */
     public static <A> GraphTraversal<A, Vertex> both(final String... edgeLabels) {
         return __.<A>start().both(edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#toE(Direction, String...)}
+     */
     public static <A> GraphTraversal<A, Edge> toE(final Direction direction, final String... edgeLabels) {
         return __.<A>start().toE(direction, edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#outE(String...)}
+     */
     public static <A> GraphTraversal<A, Edge> outE(final String... edgeLabels) {
         return __.<A>start().outE(edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#inE(String...)}
+     */
     public static <A> GraphTraversal<A, Edge> inE(final String... edgeLabels) {
         return __.<A>start().inE(edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#bothE(String...)}
+     */
     public static <A> GraphTraversal<A, Edge> bothE(final String... edgeLabels) {
         return __.<A>start().bothE(edgeLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#toV(Direction)}
+     */
     public static <A> GraphTraversal<A, Vertex> toV(final Direction direction) {
         return __.<A>start().toV(direction);
     }
 
+    /**
+     * @see {@link GraphTraversal#inV()}
+     */
     public static <A> GraphTraversal<A, Vertex> inV() {
         return __.<A>start().inV();
     }
 
+    /**
+     * @see {@link GraphTraversal#outV()}
+     */
     public static <A> GraphTraversal<A, Vertex> outV() {
         return __.<A>start().outV();
     }
 
+    /**
+     * @see {@link GraphTraversal#bothV()}
+     */
     public static <A> GraphTraversal<A, Vertex> bothV() {
         return __.<A>start().bothV();
     }
 
+    /**
+     * @see {@link GraphTraversal#otherV()}
+     */
     public static <A> GraphTraversal<A, Vertex> otherV() {
         return __.<A>start().otherV();
     }
 
+    /**
+     * @see {@link GraphTraversal#order()}
+     */
     public static <A> GraphTraversal<A, A> order() {
         return __.<A>start().order();
     }
 
+    /**
+     * @see {@link GraphTraversal#order(Scope)}
+     */
     public static <A> GraphTraversal<A, A> order(final Scope scope) {
         return __.<A>start().order(scope);
     }
 
+    /**
+     * @see {@link GraphTraversal#properties(String...)}
+     */
     public static <A, B> GraphTraversal<A, ? extends Property<B>> properties(final String... propertyKeys) {
         return __.<A>start().properties(propertyKeys);
     }
 
+    /**
+     * @see {@link GraphTraversal#values(String...)}
+     */
     public static <A, B> GraphTraversal<A, B> values(final String... propertyKeys) {
         return __.<A>start().values(propertyKeys);
     }
 
+    /**
+     * @see {@link GraphTraversal#propertyMap(String...)}
+     */
     public static <A, B> GraphTraversal<A, Map<String, B>> propertyMap(final String... propertyKeys) {
         return __.<A>start().propertyMap(propertyKeys);
     }
 
+    /**
+     * @see {@link GraphTraversal#valueMap(String...)}
+     */
     public static <A, B> GraphTraversal<A, Map<String, B>> valueMap(final String... propertyKeys) {
         return __.<A>start().valueMap(propertyKeys);
     }
 
+    /**
+     * @see {@link GraphTraversal#valueMap(boolean, String...)}
+     */
     public static <A, B> GraphTraversal<A, Map<String, B>> valueMap(final boolean includeTokens, final String... propertyKeys) {
         return __.<A>start().valueMap(includeTokens, propertyKeys);
     }
 
+    /**
+     * @see {@link GraphTraversal#key()}
+     */
     public static <A> GraphTraversal<A, String> key() {
         return __.<A>start().key();
     }
 
+    /**
+     * @see {@link GraphTraversal#value()}
+     */
     public static <A, B> GraphTraversal<A, B> value() {
         return __.<A>start().value();
     }
 
+    /**
+     * @see {@link GraphTraversal#path()}
+     */
     public static <A> GraphTraversal<A, Path> path() {
         return __.<A>start().path();
     }
 
+    /**
+     * @see {@link GraphTraversal#match(String, Traversal[])}
+     */
     public static <A, B> GraphTraversal<A, Map<String, B>> match(final String startLabel, final Traversal<?, ?>... traversals) {
         return __.<A>start().match(startLabel, traversals);
     }
 
+    /**
+     * @see {@link GraphTraversal#sack()}
+     */
     public static <A, B> GraphTraversal<A, B> sack() {
         return __.<A>start().sack();
     }
 
+    /**
+     * @see {@link GraphTraversal#select(Scope, String)}
+     */
     public static <A, B> GraphTraversal<A, B> select(final Scope scope, final String stepLabel) {
         return __.<A>start().select(scope, stepLabel);
     }
 
+    /**
+     * @see {@link GraphTraversal#select(String)}
+     */
     public static <A, B> GraphTraversal<A, B> select(final String stepLabel) {
         return __.<A>start().select(stepLabel);
     }
 
+    /**
+     * @see {@link GraphTraversal#select(Scope, String...)}
+     */
     public static <A, B> GraphTraversal<A, Map<String, B>> select(final Scope scope, final String... stepLabels) {
         return __.<A>start().select(scope, stepLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#select(String...)}
+     */
     public static <A, B> GraphTraversal<A, Map<String, B>> select(final String... stepLabels) {
         return __.<A>start().select(stepLabels);
     }
 
+    /**
+     * @see {@link GraphTraversal#unfold()}
+     */
     public static <A> GraphTraversal<A, A> unfold() {
         return __.<A>start().unfold();
     }
 
+    /**
+     * @see {@link GraphTraversal#fold()}
+     */
     public static <A> GraphTraversal<A, List<A>> fold() {
         return __.<A>start().fold();
     }
 
+    /**
+     * @see {@link GraphTraversal#fold(Object, BiFunction)}
+     */
     public static <A, B> GraphTraversal<A, B> fold(final B seed, final BiFunction<B, A, B> foldFunction) {
         return __.<A>start().fold(seed, foldFunction);
     }
 
+    /**
+     * @see {@link GraphTraversal#count()}
+     */
     public static <A> GraphTraversal<A, Long> count() {
         return __.<A>start().count();
     }
 
+    /**
+     * @see {@link GraphTraversal#count(Scope)}
+     */
     public static <A> GraphTraversal<A, Long> count(final Scope scope) {
         return __.<A>start().count(scope);
     }
 
+    /**
+     * @see {@link GraphTraversal#sum()}
+     */
     public static <A> GraphTraversal<A, Double> sum() {
         return __.<A>start().sum();
     }
 
+    /**
+     * @see {@link GraphTraversal#sum(Scope)}
+     */
     public static <A> GraphTraversal<A, Double> sum(final Scope scope) {
         return __.<A>start().sum(scope);
     }
 
+    /**
+     * @see {@link GraphTraversal#min()}
+     */
     public static <A, B extends Number> GraphTraversal<A, B> min() {
         return __.<A>start().min();
     }
 
+    /**
+     * @see {@link GraphTraversal#min(Scope)}
+     */
     public static <A, B extends Number> GraphTraversal<A, B> min(final Scope scope) {
         return __.<A>start().min(scope);
     }
 
+    /**
+     * @see {@link GraphTraversal#max()}
+     */
     public static <A, B extends Number> GraphTraversal<A, B> max() {
         return __.<A>start().max();
     }
 
+    /**
+     * @see {@link GraphTraversal#max(Scope)}
+     */
     public static <A, B extends Number> GraphTraversal<A, B> max(final Scope scope) {
         return __.<A>start().max(scope);
     }
 
+    /**
+     * @see {@link GraphTraversal#mean()}
+     */
     public static <A> GraphTraversal<A, Double> mean() {
         return __.<A>start().mean();
     }
 
+    /**
+     * @see {@link GraphTraversal#mean(Scope)}
+     */
     public static <A> GraphTraversal<A, Double> mean(final Scope scope) {
         return __.<A>start().mean(scope);
     }
 
+    /**
+     * @see {@link GraphTraversal#group()}
+     */
     public static <A, K, R> GraphTraversal<A, Map<K, R>> group() {
         return __.<A>start().group();
     }
 
+    /**
+     * @see {@link GraphTraversal#groupCount()}
+     */
     public static <A, B> GraphTraversal<A, Map<B, Long>> groupCount() {
         return __.<A>start().<B>groupCount();
     }
 
+    /**
+     * @see {@link GraphTraversal#tree()}
+     */
     public static <A> GraphTraversal<A, Tree> tree() {
         return __.<A>start().tree();
     }
 
+    /**
+     * @see {@link GraphTraversal#addV(Object...)}
+     */
     public static <A> GraphTraversal<A, Vertex> addV(final Object... propertyKeyValues) {
         return __.<A>start().addV(propertyKeyValues);
     }
 
+    /**
+     * @see {@link GraphTraversal#addE(Scope, Direction, String, String, Object...)} (Scope, String)}
+     */
     public static <A> GraphTraversal<A, Edge> addE(final Scope scope, final Direction direction, final String firstVertexKeyOrEdgeLabel, final String edgeLabelOrSecondVertexKey, final Object... propertyKeyValues) {
         return __.<A>start().addE(scope, direction, firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey, propertyKeyValues);
     }
 
+    /**
+     * @see {@link GraphTraversal#addE(Direction, String, String, Object...)}
+     */
     public static <A> GraphTraversal<A, Edge> addE(final Direction direction, final String firstVertexKeyOrEdgeLabel, final String edgeLabelOrSecondVertexKey, final Object... propertyKeyValues) {
         return __.<A>start().addE(direction, firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey, propertyKeyValues);
     }
 
+    /**
+     * @see {@link GraphTraversal#addOutE(String, String, Object...)}
+     */
     public static <A> GraphTraversal<A, Edge> addOutE(final String firstVertexKeyOrEdgeLabel, final String edgeLabelOrSecondVertexKey, final Object... propertyKeyValues) {
         return __.<A>start().addOutE(firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey, propertyKeyValues);
     }
 
+    /**
+     * @see {@link GraphTraversal#addInE(String, String, Object...)}
+     */
     public static <A> GraphTraversal<A, Edge> addInE(final String firstVertexKeyOrEdgeLabel, final String edgeLabelOrSecondVertexKey, final Object... propertyKeyValues) {
         return __.<A>start().addInE(firstVertexKeyOrEdgeLabel, edgeLabelOrSecondVertexKey, propertyKeyValues);
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b4cc944e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStep.java
deleted file mode 100644
index 1666c6c..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStep.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.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.traverser.TraverserRequirement;
-import org.apache.tinkerpop.gremlin.structure.Property;
-
-import java.util.Collections;
-import java.util.Set;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public final class KeyStep extends MapStep<Property, String> {
-
-    public KeyStep(final Traversal.Admin traversal) {
-        super(traversal);
-    }
-
-    @Override
-    protected String map(final Traverser.Admin<Property> traverser) {
-        return traverser.get().key();
-    }
-
-    @Override
-    public Set<TraverserRequirement> getRequirements() {
-        return Collections.singleton(TraverserRequirement.OBJECT);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b4cc944e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStep.java
new file mode 100644
index 0000000..ea1db27
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStep.java
@@ -0,0 +1,47 @@
+/*
+ * 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.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.traverser.TraverserRequirement;
+import org.apache.tinkerpop.gremlin.structure.Property;
+
+import java.util.Collections;
+import java.util.Set;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class PropertyKeyStep extends MapStep<Property, String> {
+
+    public PropertyKeyStep(final Traversal.Admin traversal) {
+        super(traversal);
+    }
+
+    @Override
+    protected String map(final Traverser.Admin<Property> traverser) {
+        return traverser.get().key();
+    }
+
+    @Override
+    public Set<TraverserRequirement> getRequirements() {
+        return Collections.singleton(TraverserRequirement.OBJECT);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b4cc944e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStepTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStepTest.java
deleted file mode 100644
index 885e9fc..0000000
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/KeyStepTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *
- *  * 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.process.traversal.step.map;
-
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
-import org.apache.tinkerpop.gremlin.process.traversal.step.StepTest;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @author Daniel Kuppitz (http://gremlin.guru)
- */
-public class KeyStepTest extends StepTest {
-
-    @Override
-    protected List<Traversal> getTraversals() {
-        return Collections.singletonList(__.key());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/b4cc944e/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStepTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStepTest.java
new file mode 100644
index 0000000..8c4f520
--- /dev/null
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/PropertyKeyStepTest.java
@@ -0,0 +1,40 @@
+/*
+ *
+ *  * 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.process.traversal.step.map;
+
+import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
+import org.apache.tinkerpop.gremlin.process.traversal.step.StepTest;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author Daniel Kuppitz (http://gremlin.guru)
+ */
+public class PropertyKeyStepTest extends StepTest {
+
+    @Override
+    protected List<Traversal> getTraversals() {
+        return Collections.singletonList(__.key());
+    }
+}