This is an automated email from the ASF dual-hosted git repository.

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
     new 635eeca  identity() is now a map(traverser::object). Now Map, Filter, 
FlatMap, Reduce, and Branch are self-consistent.
635eeca is described below

commit 635eecaf3be3cb37a550ef284ff54c65ab27dae9
Author: Marko A. Rodriguez <okramma...@gmail.com>
AuthorDate: Sat Mar 23 09:06:42 2019 -0600

    identity() is now a map(traverser::object). Now Map, Filter, FlatMap, 
Reduce, and Branch are self-consistent.
---
 .../main/java/org/apache/tinkerpop/language/gremlin/Traversal.java   | 2 +-
 .../java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java     | 4 +---
 .../org/apache/tinkerpop/machine/function/filter/FilterFilter.java   | 4 +---
 .../tinkerpop/machine/strategy/optimization/IdentityStrategy.java    | 5 +++--
 4 files changed, 6 insertions(+), 9 deletions(-)

diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
index 8525d92..c7214bd 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
@@ -191,7 +191,7 @@ public class Traversal<C, S, E> implements Iterator<E> {
     }
 
     public Traversal<C, S, E> identity() {
-        this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
Boolean.TRUE);
+        this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
"traverser::object");
         return this;
     }
 
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
index c692651..359e6e7 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
@@ -80,9 +80,7 @@ public final class CoreCompiler implements BytecodeCompiler {
             case Symbols.BRANCH:
                 return new BranchBranch<>(coefficient, labels, 
BranchBranch.makeBranches(instruction.args()));
             case Symbols.FILTER:
-                return instruction.args().length == 1 ?
-                        new FilterFilter<>(coefficient, labels, null, 
Argument.create(instruction.args())) :
-                        new FilterFilter<>(coefficient, labels, 
Pred.valueOf(instruction.args()[0]), 
Argument.create(Arrays.copyOfRange(instruction.args(), 1, 
instruction.args().length)));
+                return new FilterFilter<>(coefficient, labels, 
Pred.valueOf(instruction.args()[0]), 
Argument.create(Arrays.copyOfRange(instruction.args(), 1, 
instruction.args().length)));
             case Symbols.FLATMAP:
                 return new FlatmapFlatmap<>(coefficient, labels, 
Argument.create(instruction.args()));
             case Symbols.GROUP_COUNT:
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
index d93a420..df39450 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
@@ -45,9 +45,7 @@ public final class FilterFilter<C, S> extends 
AbstractFunction<C> implements Fil
 
     @Override
     public boolean test(final Traverser<C, S> traverser) {
-        return null == this.pred ?
-                this.argument.filterArg(traverser) :
-                this.pred.test(traverser.object(), 
this.argument.mapArg(traverser));
+        return this.pred.test(traverser.object(), 
this.argument.mapArg(traverser));
     }
 
     @Override
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
index 6c1bd99..db223b9 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
@@ -31,8 +31,9 @@ public final class IdentityStrategy extends 
AbstractStrategy<Strategy.Optimizati
     @Override
     public <C> void apply(final Bytecode<C> bytecode) {
         bytecode.getInstructions().removeIf(instruction ->
-                instruction.op().equals(CoreCompiler.Symbols.FILTER) &&
-                        Boolean.TRUE.equals(instruction.args()[0]) &&
+                instruction.op().equals(CoreCompiler.Symbols.MAP) &&
+                        instruction.args().length == 1 &&
+                        "traverser::object".equals(instruction.args()[0]) &&
                         instruction.labels().isEmpty() &&
                         instruction.coefficient().isUnity());
     }

Reply via email to