Repository: jena
Updated Branches:
  refs/heads/master a523a4066 -> 6eadb3662


Collecting ordering methods into OrderedTupleTable


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

Branch: refs/heads/master
Commit: b951c7797c59c251fe47a235622e9fdb81cf7e84
Parents: f066605
Author: ajs6f <[email protected]>
Authored: Wed Jan 6 12:17:49 2016 -0500
Committer: ajs6f <[email protected]>
Committed: Sun Jan 17 15:40:26 2016 -0500

----------------------------------------------------------------------
 .../jena/sparql/core/mem/OrderedTupleTable.java | 53 +++++++++++++++++---
 .../apache/jena/sparql/core/mem/QuadTable.java  | 36 +------------
 .../jena/sparql/core/mem/TripleTable.java       | 31 +-----------
 3 files changed, 47 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/b951c779/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/OrderedTupleTable.java
----------------------------------------------------------------------
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/OrderedTupleTable.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/OrderedTupleTable.java
index 21f2852..ffe91ad 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/OrderedTupleTable.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/OrderedTupleTable.java
@@ -13,11 +13,6 @@
 
 package org.apache.jena.sparql.core.mem;
 
-import static org.apache.jena.sparql.core.mem.QuadTable.accept;
-import static org.apache.jena.sparql.core.mem.QuadTable.apply;
-import static org.apache.jena.sparql.core.mem.TripleTable.accept;
-import static org.apache.jena.sparql.core.mem.TripleTable.apply;
-
 import java.util.function.Consumer;
 
 import org.apache.jena.atlas.lib.tuple.TupleMap;
@@ -72,7 +67,11 @@ public abstract class OrderedTupleTable<TupleType, 
ConsumerType> implements Tupl
             final Node s = q.getSubject();
             final Node p = q.getPredicate();
             final Node o = q.getObject();
-            accept(order, g, s, p, o, consumer);
+            final Node first = get(order.mapIdx(0), g, s, p, o);
+            final Node second = get(order.mapIdx(1), g, s, p, o);
+            final Node third = get(order.mapIdx(2), g, s, p, o);
+            final Node fourth = get(order.mapIdx(3), g, s, p, o);
+            consumer.accept(first, second, third, fourth);
         };
     }
 
@@ -89,15 +88,53 @@ public abstract class OrderedTupleTable<TupleType, 
ConsumerType> implements Tupl
             final Node s = t.getSubject();
             final Node p = t.getPredicate();
             final Node o = t.getObject();
-            accept(order, s, p, o, consumer);
+            final Node first = get(order.mapIdx(0), s, p, o);
+            final Node x2a = get(order.mapIdx(1), s, p, o);
+            final Node x3a = get(order.mapIdx(2), s, p, o);
+            consumer.accept(first, x2a, x3a);
         };
     }
 
     protected <T, X> TriOperator<T, X> map(final TriOperator<T, X> f) {
-        return (s, p, o) -> apply(order, s, p, o, f);
+        return (s, p, o) -> OrderedTupleTable.apply(order, s, p, o, f);
     }
 
     protected Triple unmap(final Node first, final Node second, final Node 
third) {
         return apply(reverse, first, second, third, Triple::new);
     }
+
+    private static <X> X get(final int i, final X x1, final X x2, final X x3) {
+        switch (i) {
+        case 0: return x1;
+        case 1: return x2;
+        case 2: return x3;
+        default: throw new IndexOutOfBoundsException("Triples have components 
0, 1, 2 but index = " + i + "!");
+        }
+    }
+
+    private static <X> X get(final int i, final X x1, final X x2, final X x3, 
final X x4) {
+        switch (i) {
+        case 0: return x1;
+        case 1: return x2;
+        case 2: return x3;
+        case 3: return x4;
+        default: throw new IndexOutOfBoundsException("Quads have components 0, 
1, 2, 3 but index = " + i + "!");
+        }
+    }
+
+    private static <X, Z> Z apply(final TupleMap tupleMap, final X x1, final X 
x2, final X x3, final X x4,
+            final QuadOperator<X, Z> f) {
+        final X x1a = get(tupleMap.mapIdx(0), x1, x2, x3, x4);
+        final X x2a = get(tupleMap.mapIdx(1), x1, x2, x3, x4);
+        final X x3a = get(tupleMap.mapIdx(2), x1, x2, x3, x4);
+        final X x4a = get(tupleMap.mapIdx(3), x1, x2, x3, x4);
+        return f.apply(x1a, x2a, x3a, x4a);
+    }
+
+    private static <X, Z> Z apply(final TupleMap ordering, final X x1, final X 
x2, final X x3, final TriOperator<X, Z> f) {
+        final X x1a = get(ordering.mapIdx(0), x1, x2, x3);
+        final X x2a = get(ordering.mapIdx(1), x1, x2, x3);
+        final X x3a = get(ordering.mapIdx(2), x1, x2, x3);
+        return f.apply(x1a, x2a, x3a);
+    }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/b951c779/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTable.java
----------------------------------------------------------------------
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTable.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTable.java
index 9d9f8f0..80eedb6 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTable.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTable.java
@@ -18,9 +18,7 @@ import static org.apache.jena.graph.Node.ANY;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.stream.Stream;
-import org.apache.jena.atlas.lib.tuple.QuadConsumer.Consumer4;
-import org.apache.jena.atlas.lib.tuple.QuadFunction.QuadOperator;
-import org.apache.jena.atlas.lib.tuple.TupleMap;
+
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.Triple;
 import org.apache.jena.sparql.core.Quad;
@@ -64,36 +62,4 @@ public interface QuadTable extends TupleTable<Quad> {
                 .filter(seen::add)
                 .map(t -> Quad.create(Quad.unionGraph, t));
     }
-
-    default Quad unmap(final TupleMap order, final Node first, final Node 
second, final Node third, final Node fourth) {
-        return apply(order, first, second, third, fourth, Quad::new);
-    }
-
-    static <X, Z> Z apply(final TupleMap tupleMap, final X x1, final X x2, 
final X x3, final X x4,
-            final QuadOperator<X, Z> f) {
-        final X x1a = get(tupleMap.mapIdx(0), x1, x2, x3, x4);
-        final X x2a = get(tupleMap.mapIdx(1), x1, x2, x3, x4);
-        final X x3a = get(tupleMap.mapIdx(2), x1, x2, x3, x4);
-        final X x4a = get(tupleMap.mapIdx(3), x1, x2, x3, x4);
-        return f.apply(x1a, x2a, x3a, x4a);
-    }
-
-    static <X> void accept(final TupleMap tupleMap, final X x1, final X x2, 
final X x3, final X x4,
-            final Consumer4<X> f) {
-        final X x1a = get(tupleMap.mapIdx(0), x1, x2, x3, x4);
-        final X x2a = get(tupleMap.mapIdx(1), x1, x2, x3, x4);
-        final X x3a = get(tupleMap.mapIdx(2), x1, x2, x3, x4);
-        final X x4a = get(tupleMap.mapIdx(3), x1, x2, x3, x4);
-        f.accept(x1a, x2a, x3a, x4a);
-    }
-
-    static <X> X get(final int i, final X x1, final X x2, final X x3, final X 
x4) {
-        switch (i) {
-        case 0: return x1;
-        case 1: return x2;
-        case 2: return x3;
-        case 3: return x4;
-        default: throw new IndexOutOfBoundsException("Quads have components 0, 
1, 2, 3 but index = " + i + "!");
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/b951c779/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/TripleTable.java
----------------------------------------------------------------------
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/TripleTable.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/TripleTable.java
index 069d73e..b2337b6 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/TripleTable.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/TripleTable.java
@@ -14,9 +14,7 @@
 package org.apache.jena.sparql.core.mem;
 
 import java.util.stream.Stream;
-import org.apache.jena.atlas.lib.tuple.TriFunction.TriOperator;
-import org.apache.jena.atlas.lib.tuple.TriConsumer.Consumer3;
-import org.apache.jena.atlas.lib.tuple.TupleMap;
+
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.Triple;
 
@@ -39,31 +37,4 @@ public interface TripleTable extends TupleTable<Triple> {
     default void clear() {
         find(null, null, null).forEach(this::delete);
     }
-
-    static <X> void accept(final TupleMap ordering, final X x1, final X x2, 
final X x3, final Consumer3<X> c) {
-        final X x1a = get(ordering.mapIdx(0), x1, x2, x3);
-        final X x2a = get(ordering.mapIdx(1), x1, x2, x3);
-        final X x3a = get(ordering.mapIdx(2), x1, x2, x3);
-        c.accept(x1a, x2a, x3a);
-    }
-
-    static <X, Z> Z apply(final TupleMap ordering, final X x1, final X x2, 
final X x3, final TriOperator<X, Z> f) {
-        final X x1a = get(ordering.mapIdx(0), x1, x2, x3);
-        final X x2a = get(ordering.mapIdx(1), x1, x2, x3);
-        final X x3a = get(ordering.mapIdx(2), x1, x2, x3);
-        return f.apply(x1a, x2a, x3a);
-    }
-
-    default Triple unmap(final TupleMap order, final Node first, final Node 
second, final Node third) {
-        return apply(order, first, second, third, Triple::new);
-    }
-
-    static <X> X get(final int i, final X x1, final X x2, final X x3) {
-        switch (i) {
-        case 0: return x1;
-        case 1: return x2;
-        case 2: return x3;
-        default: throw new IndexOutOfBoundsException("Triples have components 
0, 1, 2 but index = " + i + "!");
-        }
-    }
 }

Reply via email to