Merge branch 'TINKERPOP-1506'

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

Branch: refs/heads/master
Commit: 5caf664404c704a2de226a2918d5a76bed44f10b
Parents: 1541e84 4fb9a8e
Author: Marko A. Rodriguez <okramma...@gmail.com>
Authored: Wed Nov 2 18:42:32 2016 -0600
Committer: Marko A. Rodriguez <okramma...@gmail.com>
Committed: Wed Nov 2 18:42:32 2016 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 docs/src/reference/the-traversal.asciidoc       |  9 +-
 docs/src/upgrade/release-3.3.x.asciidoc         | 10 ++-
 .../traversal/dsl/graph/GraphTraversal.java     |  7 +-
 .../traversal/step/branch/OptionalStep.java     | 92 ++++++++++++++++++++
 .../traversal/step/branch/OptionalStepTest.java | 49 +++++++++++
 .../step/branch/GroovyOptionalTest.groovy       |  4 +
 .../traversal/step/branch/OptionalTest.java     | 30 +++++--
 8 files changed, 187 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5caf6644/CHANGELOG.asciidoc
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5caf6644/docs/src/reference/the-traversal.asciidoc
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5caf6644/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --cc 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 088a4de,dca3b7f..441d3f0
--- 
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
@@@ -1310,15 -1305,9 +1311,15 @@@ public interface GraphTraversal<S, E> e
          return this.asAdmin().addStep(new ChooseStep<E, E2, 
Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) __.filter(new 
PredicateTraverser<>(choosePredicate)), (Traversal.Admin<E, E2>) trueChoice, 
(Traversal.Admin<E, E2>) falseChoice));
      }
  
 +    public default <E2> GraphTraversal<S, E2> choose(final Predicate<E> 
choosePredicate,
 +                                                     final Traversal<?, E2> 
trueChoice) {
 +        this.asAdmin().getBytecode().addStep(Symbols.choose, choosePredicate, 
trueChoice);
 +        return this.asAdmin().addStep(new ChooseStep<E, E2, 
Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) __.filter(new 
PredicateTraverser<>(choosePredicate)), (Traversal.Admin<E, E2>) trueChoice, 
(Traversal.Admin<E, E2>) __.identity()));
 +    }
 +
      public default <E2> GraphTraversal<S, E2> optional(final Traversal<?, E2> 
optionalTraversal) {
          this.asAdmin().getBytecode().addStep(Symbols.optional, 
optionalTraversal);
-         return this.asAdmin().addStep(new ChooseStep<>(this.asAdmin(), 
(Traversal.Admin<E, ?>) optionalTraversal, (Traversal.Admin<E, E2>) 
optionalTraversal.asAdmin().clone(), (Traversal.Admin<E, E2>) 
__.<E2>identity()));
+         return this.asAdmin().addStep(new OptionalStep<>(this.asAdmin(), 
(Traversal.Admin<E2, E2>) optionalTraversal));
      }
  
      public default <E2> GraphTraversal<S, E2> union(final Traversal<?, E2>... 
unionTraversals) {

Reply via email to