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 201d03d  incr is gone. random other tweaks. taking a break.
201d03d is described below

commit 201d03d8ef1e398c49079bd0e432f876f3ae4107
Author: Marko A. Rodriguez <okramma...@gmail.com>
AuthorDate: Sat Mar 23 10:38:32 2019 -0600

    incr is gone. random other tweaks. taking a break.
---
 .../tinkerpop/language/gremlin/Traversal.java      |  7 +++-
 .../tinkerpop/machine/bytecode/CoreCompiler.java   |  9 ++---
 .../tinkerpop/machine/bytecode/MethodArgument.java |  8 ++++-
 .../machine/function/filter/FilterFilter.java      |  4 ++-
 .../tinkerpop/machine/function/map/IncrMap.java    | 42 ----------------------
 .../machine/processor/pipes/PipesTest.java         |  9 +++--
 6 files changed, 26 insertions(+), 53 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 c7214bd..8bc4e92 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
@@ -211,7 +211,7 @@ public class Traversal<C, S, E> implements Iterator<E> {
     }
 
     public Traversal<C, S, Long> incr() {
-        this.bytecode.addInstruction(this.currentCoefficient, Symbols.INCR);
+        this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
"number::add", 1L);
         return (Traversal) this;
     }
 
@@ -280,6 +280,11 @@ public class Traversal<C, S, E> implements Iterator<E> {
         return this;
     }
 
+    public <K, V> Traversal<C, S, V> value(final K key) {
+        this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
"dictionary::get", key);
+        return (Traversal) this;
+    }
+
     ///////
 
     private final void prepareTraversal() {
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 359e6e7..32590a0 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
@@ -27,7 +27,6 @@ import 
org.apache.tinkerpop.machine.function.branch.RepeatBranch;
 import org.apache.tinkerpop.machine.function.filter.FilterFilter;
 import org.apache.tinkerpop.machine.function.flatmap.FlatmapFlatmap;
 import org.apache.tinkerpop.machine.function.initial.InjectInitial;
-import org.apache.tinkerpop.machine.function.map.IncrMap;
 import org.apache.tinkerpop.machine.function.map.MapMap;
 import org.apache.tinkerpop.machine.function.map.PathMap;
 import org.apache.tinkerpop.machine.function.reduce.GroupCountReduce;
@@ -59,7 +58,6 @@ public final class CoreCompiler implements BytecodeCompiler {
         put(Symbols.FILTER, FunctionType.FILTER);
         put(Symbols.FLATMAP, FunctionType.FLATMAP);
         put(Symbols.GROUP_COUNT, FunctionType.REDUCE);
-        put(Symbols.INCR, FunctionType.MAP);
         put(Symbols.INITIAL, FunctionType.INITIAL);
         put(Symbols.JOIN, FunctionType.BARRIER);
         put(Symbols.MAP, FunctionType.MAP);
@@ -80,15 +78,15 @@ public final class CoreCompiler implements BytecodeCompiler 
{
             case Symbols.BRANCH:
                 return new BranchBranch<>(coefficient, labels, 
BranchBranch.makeBranches(instruction.args()));
             case Symbols.FILTER:
-                return new FilterFilter<>(coefficient, labels, 
Pred.valueOf(instruction.args()[0]), 
Argument.create(Arrays.copyOfRange(instruction.args(), 1, 
instruction.args().length)));
+                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)));
             case Symbols.FLATMAP:
                 return new FlatmapFlatmap<>(coefficient, labels, 
Argument.create(instruction.args()));
             case Symbols.GROUP_COUNT:
                 return new GroupCountReduce<>(coefficient, labels, 
Compilation.compileOrNull(0, instruction.args()));
             case Symbols.INITIAL:
                 return new InjectInitial<>(coefficient, labels, 
instruction.args());
-            case Symbols.INCR:
-                return new IncrMap<>(coefficient, labels);
             case Symbols.JOIN:
                 return new JoinBarrier<>(coefficient, labels, (Symbols.Tokens) 
instruction.args()[0], Compilation.compileOne(instruction.args()[1]), 
Argument.create(instruction.args()[2]));
             case Symbols.MAP:
@@ -148,7 +146,6 @@ public final class CoreCompiler implements BytecodeCompiler 
{
         // [groupCount, ?[bc]]
         public static final String GROUP_COUNT = "groupCount";
         // [incr]
-        public static final String INCR = "incr";
         public static final String INITIAL = "initial";
         public static final String JOIN = "join";
         // [map, [bc]]
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/MethodArgument.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/MethodArgument.java
index 313a42a..fc76797 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/MethodArgument.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/MethodArgument.java
@@ -18,7 +18,9 @@
  */
 package org.apache.tinkerpop.machine.bytecode;
 
+import org.apache.tinkerpop.machine.structure.data.TElement;
 import org.apache.tinkerpop.machine.traverser.Traverser;
+import org.apache.tinkerpop.machine.util.NumberHelper;
 
 import java.util.Arrays;
 import java.util.Map;
@@ -48,7 +50,11 @@ public class MethodArgument<E> implements Argument<E> {
         else if (this.method.equals("keys"))
             return (E) ((Map) traverser.object()).keySet();
         else if (this.method.equals("get"))
-            return (E) ((Map) 
traverser.object()).get(this.arguments[0].mapArg(traverser));
+            return (E) (traverser.object() instanceof Map ?
+                    ((Map) 
traverser.object()).get(this.arguments[0].mapArg(traverser)) :
+                    ((TElement) 
traverser.object()).get(this.arguments[0].mapArg(traverser)));
+        else if (this.method.equals("add"))
+            return (E) NumberHelper.add((Number) traverser.object(), (Number) 
this.arguments[0].mapArg(traverser));
         else
             throw new RuntimeException("Unknown method");
     }
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 df39450..d93a420 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,7 +45,9 @@ public final class FilterFilter<C, S> extends 
AbstractFunction<C> implements Fil
 
     @Override
     public boolean test(final Traverser<C, S> traverser) {
-        return this.pred.test(traverser.object(), 
this.argument.mapArg(traverser));
+        return null == this.pred ?
+                this.argument.filterArg(traverser) :
+                this.pred.test(traverser.object(), 
this.argument.mapArg(traverser));
     }
 
     @Override
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/IncrMap.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/IncrMap.java
deleted file mode 100644
index d2ff394..0000000
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/map/IncrMap.java
+++ /dev/null
@@ -1,42 +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.machine.function.map;
-
-import org.apache.tinkerpop.machine.coefficient.Coefficient;
-import org.apache.tinkerpop.machine.function.AbstractFunction;
-import org.apache.tinkerpop.machine.function.MapFunction;
-import org.apache.tinkerpop.machine.traverser.Traverser;
-
-import java.util.Set;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public class IncrMap<C> extends AbstractFunction<C> implements MapFunction<C, 
Long, Long> {
-
-    public IncrMap(final Coefficient<C> coefficient, final Set<String> labels) 
{
-        super(coefficient, labels);
-    }
-
-    @Override
-    public Long apply(final Traverser<C, Long> traverser) {
-        return traverser.object() + 1L;
-    }
-
-}
diff --git 
a/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/PipesTest.java
 
b/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/PipesTest.java
index 9d8ee6c..820a70b 100644
--- 
a/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/PipesTest.java
+++ 
b/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/PipesTest.java
@@ -99,7 +99,7 @@ public class PipesTest {
         System.out.println(traversal);
         System.out.println(traversal.toList());
         System.out.println("\n----------\n");
-        traversal = g.inject(7L).choose(__.is(7L), __.incr());
+        traversal = g.inject(7L).choose(__.is(7L), __.incr()).sum();
         System.out.println(TraversalUtil.getBytecode(traversal));
         System.out.println(traversal);
         System.out.println(traversal.toList());
@@ -143,7 +143,12 @@ public class PipesTest {
         System.out.println(traversal);
         System.out.println(traversal.toList());
         System.out.println("\n----------\n");
-        traversal = 
g.inject(listA).unfold().has(__.<Map,String>constant("name"), "marko");
+        traversal = 
g.inject(listA).unfold().has(__.<Map,String>constant("name"), 
"marko").value("age");
+        System.out.println(TraversalUtil.getBytecode(traversal));
+        System.out.println(traversal);
+        System.out.println(traversal.toList());
+        System.out.println("\n----------\n");
+        traversal = g.inject(Map.of("name", "marko", "age", 29), 
Map.of("name", "josh", "age", 
32)).hasKey(P.regex(__.constant("[a].*[e]"))).has("name", "marko").value("age");
         System.out.println(TraversalUtil.getBytecode(traversal));
         System.out.println(traversal);
         System.out.println(traversal.toList());

Reply via email to