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

commit e26ca81c52474cc491c77b6f12171399053f154e
Author: Marko A. Rodriguez <okramma...@gmail.com>
AuthorDate: Tue Mar 12 07:03:23 2019 -0600

    InternalFunctions is a super interface to BranchFunction and 
NestedFunction. getInternals() (crappy name for now) allow access to Function 
compilations.
---
 .../org/apache/tinkerpop/machine/functions/BranchFunction.java |  3 ---
 .../apache/tinkerpop/machine/functions/InternalFunction.java   |  7 +++++--
 .../apache/tinkerpop/machine/functions/branch/UnionBranch.java | 10 ++--------
 .../tinkerpop/machine/functions/filter/FilterFilter.java       |  7 +++++++
 .../org/apache/tinkerpop/machine/functions/map/MapMap.java     |  7 +++++++
 .../src/main/java/org/apache/tinkerpop/machine/beam/Beam.java  |  7 ++++---
 6 files changed, 25 insertions(+), 16 deletions(-)

diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java
index 8092095..8f7965f 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/BranchFunction.java
@@ -21,7 +21,6 @@ package org.apache.tinkerpop.machine.functions;
 import org.apache.tinkerpop.machine.traversers.Traverser;
 
 import java.util.Iterator;
-import java.util.List;
 import java.util.function.Function;
 
 /**
@@ -29,6 +28,4 @@ import java.util.function.Function;
  */
 public interface BranchFunction<C, S, E> extends Function<Traverser<C, S>, 
Iterator<Traverser<C, E>>>, InternalFunction<C> {
 
-    public List<List<CFunction<C>>> getBranches();
-
 }
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java
index a2ce8e1..9481137 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/InternalFunction.java
@@ -18,12 +18,15 @@
  */
 package org.apache.tinkerpop.machine.functions;
 
-import org.apache.tinkerpop.machine.processor.ProcessorFactory;
-import org.apache.tinkerpop.machine.traversers.TraverserFactory;
+import org.apache.tinkerpop.machine.bytecode.Compilation;
+
+import java.util.List;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
 public interface InternalFunction<C> extends CFunction<C> {
 
+    public List<Compilation<C, ?, ?>> getInternals();
+
 }
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java
index c2f7a21..6f72b48 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/branch/UnionBranch.java
@@ -22,12 +22,10 @@ import org.apache.tinkerpop.machine.bytecode.Compilation;
 import org.apache.tinkerpop.machine.coefficients.Coefficient;
 import org.apache.tinkerpop.machine.functions.AbstractFunction;
 import org.apache.tinkerpop.machine.functions.BranchFunction;
-import org.apache.tinkerpop.machine.functions.CFunction;
 import org.apache.tinkerpop.machine.traversers.Traverser;
 import org.apache.tinkerpop.util.MultiIterator;
 import org.apache.tinkerpop.util.StringFactory;
 
-import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -60,11 +58,7 @@ public final class UnionBranch<C, S, E> extends 
AbstractFunction<C, S, Iterator<
     }
 
     @Override
-    public List<List<CFunction<C>>> getBranches() {
-        final List<List<CFunction<C>>> branches = new ArrayList<>();
-        for (final Compilation compilation : this.branches) {
-            branches.add(compilation.getFunctions());
-        }
-        return branches;
+    public List<Compilation<C, ?, ?>> getInternals() {
+        return (List) this.branches;
     }
 }
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java
index b7b25bd..f9e86d4 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/filter/FilterFilter.java
@@ -26,6 +26,8 @@ import org.apache.tinkerpop.machine.functions.NestedFunction;
 import org.apache.tinkerpop.machine.traversers.Traverser;
 import org.apache.tinkerpop.util.StringFactory;
 
+import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -49,4 +51,9 @@ public final class FilterFilter<C, S> extends 
AbstractFunction<C, S, S> implemen
     public String toString() {
         return StringFactory.makeFunctionString(this, this.internalFilter);
     }
+
+    @Override
+    public List<Compilation<C, ?, ?>> getInternals() {
+        return Collections.singletonList(this.internalFilter);
+    }
 }
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java
index edf3348..2dd0ffe 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/functions/map/MapMap.java
@@ -26,6 +26,8 @@ import org.apache.tinkerpop.machine.functions.NestedFunction;
 import org.apache.tinkerpop.machine.traversers.Traverser;
 import org.apache.tinkerpop.util.StringFactory;
 
+import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -49,4 +51,9 @@ public class MapMap<C, S, E> extends AbstractFunction<C, S, 
E> implements MapFun
     public String toString() {
         return StringFactory.makeFunctionString(this, this.internalMap);
     }
+
+    @Override
+    public List<Compilation<C, ?, ?>> getInternals() {
+        return Collections.singletonList(this.internalMap);
+    }
 }
diff --git 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java
index bc8e3f6..2ad5cd4 100644
--- 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java
+++ 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java
@@ -29,6 +29,7 @@ import org.apache.beam.sdk.values.PCollection;
 import org.apache.beam.sdk.values.PCollectionList;
 import org.apache.tinkerpop.machine.bytecode.Bytecode;
 import org.apache.tinkerpop.machine.bytecode.BytecodeUtil;
+import org.apache.tinkerpop.machine.bytecode.Compilation;
 import org.apache.tinkerpop.machine.coefficients.Coefficient;
 import org.apache.tinkerpop.machine.coefficients.LongCoefficient;
 import org.apache.tinkerpop.machine.functions.BranchFunction;
@@ -75,11 +76,11 @@ public class Beam<C, S, E> implements Processor<C, S, E> {
     private PCollection<Traverser<C, ?>> 
processFunction(PCollection<Traverser<C, ?>> collection, final CFunction<?> 
function, final boolean branching) {
         DoFn<Traverser<C, S>, Traverser<C, E>> fn = null;
         if (function instanceof BranchFunction) {
-            final List<List<CFunction<C>>> branches = ((BranchFunction) 
function).getBranches();
+            final List<Compilation<C, ?, ?>> branches = ((BranchFunction<C, ?, 
?>) function).getInternals();
             final List<PCollection<Traverser<C, ?>>> collections = new 
ArrayList<>(branches.size());
-            for (final List<CFunction<C>> branch : branches) {
+            for (final Compilation<C, ?, ?> branch : branches) {
                 PCollection<Traverser<C, ?>> branchCollection = collection;
-                for (final CFunction<C> branchFunction : branch) {
+                for (final CFunction<C> branchFunction : 
branch.getFunctions()) {
                     branchCollection = this.processFunction(branchCollection, 
branchFunction, true);
                 }
                 collections.add(branchCollection);

Reply via email to