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