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 e26ca81 InternalFunctions is a super interface to BranchFunction and
NestedFunction. getInternals() (crappy name for now) allow access to Function
compilations.
e26ca81 is described below
commit e26ca81c52474cc491c77b6f12171399053f154e
Author: Marko A. Rodriguez <[email protected]>
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);