You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2015/11/15 22:25:31 UTC

[3/3] jena git commit: JENA-624, JENA-1064: Union graph quads to be Quad.unionGraph.

JENA-624, JENA-1064: Union graph quads to be Quad.unionGraph.

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

Branch: refs/heads/master
Commit: f00e659c52d3b9daac4a0ffacf19be1b90c03d60
Parents: a03ac09
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Nov 15 21:24:52 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Nov 15 21:24:52 2015 +0000

----------------------------------------------------------------------
 .../org/apache/jena/sparql/core/mem/QuadTable.java  |  6 +++++-
 .../apache/jena/sparql/core/mem/QuadTableForm.java  | 16 +++++++---------
 .../sparql/core/mem/TestDatasetGraphInMemory.java   | 12 +++++++-----
 3 files changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/f00e659c/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 7505d1a..579c1e2 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
@@ -62,6 +62,10 @@ public interface QuadTable extends TupleTable<Quad> {
 
 	default Stream<Quad> findInUnionGraph(final Node s, final Node p, final Node o) {
 		final Set<Triple> seen = new HashSet<>();
-		return find(ANY, s, p, o).filter(q -> !q.isDefaultGraph() && seen.add(q.asTriple()));
+		return find(ANY, s, p, o).sequential()
+		    .filter(q -> !q.isDefaultGraph())
+		    .map(Quad::asTriple)
+		    .filter(seen::add)
+		    .map(t -> Quad.create(Quad.unionGraph, t)) ;
 	}
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/f00e659c/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTableForm.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTableForm.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTableForm.java
index 89383e3..c600a35 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTableForm.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/QuadTableForm.java
@@ -135,11 +135,10 @@ public enum QuadTableForm implements Supplier<QuadTable>,Predicate<Set<TupleSlot
 
 				@Override
 				public Stream<Quad> findInUnionGraph(final Node s, final Node p, final Node o) {
-					final AtomicReference<Triple> mostRecentlySeen = new AtomicReference<>();
-					return find(ANY, s, p, o).filter(currentQuad -> {
-						final Triple currentTriple = currentQuad.asTriple();
-						return !mostRecentlySeen.getAndSet(currentTriple).equals(currentTriple);
-					});
+				    final AtomicReference<Triple> mostRecentlySeen = new AtomicReference<>();
+				    return find(ANY, s, p, o).map(Quad::asTriple).filter(t->{
+				        return !mostRecentlySeen.getAndSet(t).equals(t);
+				    }).map(t->Quad.create(Quad.unionGraph, t)) ;
 				}
 
 				@Override
@@ -238,10 +237,9 @@ public enum QuadTableForm implements Supplier<QuadTable>,Predicate<Set<TupleSlot
 				@Override
 				public Stream<Quad> findInUnionGraph(final Node s, final Node p, final Node o) {
 					final AtomicReference<Triple> mostRecentlySeen = new AtomicReference<>();
-					return find(ANY, s, p, o).filter(currentQuad -> {
-						final Triple currentTriple = currentQuad.asTriple();
-						return !mostRecentlySeen.getAndSet(currentTriple).equals(currentTriple);
-					});
+					return find(ANY, s, p, o).map(Quad::asTriple).filter(t->{
+						return !mostRecentlySeen.getAndSet(t).equals(t);
+					}).map(t->Quad.create(Quad.unionGraph, t)) ;
 				}
 
 				@Override

http://git-wip-us.apache.org/repos/asf/jena/blob/f00e659c/jena-arq/src/test/java/org/apache/jena/sparql/core/mem/TestDatasetGraphInMemory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/core/mem/TestDatasetGraphInMemory.java b/jena-arq/src/test/java/org/apache/jena/sparql/core/mem/TestDatasetGraphInMemory.java
index a5ad4c3..4a28dfb 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/core/mem/TestDatasetGraphInMemory.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/core/mem/TestDatasetGraphInMemory.java
@@ -239,15 +239,17 @@ public class TestDatasetGraphInMemory {
 
 		@Test
 		public void unionGraphWorksProperly() {
-			final DatasetGraph dsg = emptyDataset();
+		    DatasetGraph dsg = emptyDataset();
 			// quads from named graphs should appear in union
-			final Quad q = Quad.create(createBlankNode(), createBlankNode(), createBlankNode(), createBlankNode());
+			Quad q = Quad.create(createBlankNode(), createBlankNode(), createBlankNode(), createBlankNode());
 			dsg.add(q);
-			assertTrue(iter(dsg.find(unionGraph, ANY, ANY, ANY)).some(q::equals));
+			// Expected in the union graph
+			Quad q2 = Quad.create(unionGraph, q.asTriple());
+			assertTrue(iter(dsg.find(unionGraph, ANY, ANY, ANY)).some(q2::equals));
 			// no triples from default graph should appear in union
-			final Triple t = Triple.create(createBlankNode(), createBlankNode(), createBlankNode());
+			Triple t = Triple.create(createBlankNode(), createBlankNode(), createBlankNode());
 			dsg.getDefaultGraph().add(t);
-			assertFalse(iter(dsg.find(unionGraph, ANY, ANY, ANY)).some(t::equals));
+			assertFalse(iter(dsg.find(unionGraph, ANY, ANY, ANY)).some(Quad::isDefaultGraph)) ;
 		}
 
 		@Override