You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by aj...@apache.org on 2018/01/06 15:17:29 UTC
[05/44] jena git commit: Further test coverage
Further test coverage
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/82acf1bc
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/82acf1bc
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/82acf1bc
Branch: refs/heads/master
Commit: 82acf1bcb1ded958deb93dda07b094fdb815193f
Parents: 4ec88f3
Author: ajs6f <aj...@apache.org>
Authored: Fri Dec 29 09:03:02 2017 -0500
Committer: ajs6f <aj...@apache.org>
Committed: Fri Jan 5 09:26:07 2018 -0500
----------------------------------------------------------------------
.../sparql/util/IntersectionDatasetGraph.java | 96 +++++++++++++-------
.../jena/sparql/util/ViewDatasetGraph.java | 8 +-
.../util/TestIntersectionDatasetGraph.java | 24 ++++-
.../jena/sparql/util/TestUnionDatasetGraph.java | 1 -
4 files changed, 85 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/82acf1bc/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java
index d590d50..20a0e3b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/IntersectionDatasetGraph.java
@@ -1,47 +1,73 @@
package org.apache.jena.sparql.util;
-import static org.apache.jena.atlas.iterator.Iter.filter;
+import static org.apache.jena.atlas.iterator.Iter.iter;
import java.util.Iterator;
import java.util.function.Function;
-import org.apache.jena.graph.Graph;
-import org.apache.jena.graph.Node;
+import org.apache.jena.graph.*;
import org.apache.jena.graph.compose.Intersection;
import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.util.iterator.ExtendedIterator;
+import org.apache.jena.util.iterator.NullIterator;
public class IntersectionDatasetGraph extends ViewDatasetGraph {
+
+ public IntersectionDatasetGraph(DatasetGraph left, DatasetGraph right, Context c) {
+ super(left, right, c);
+ }
- public IntersectionDatasetGraph(DatasetGraph left, DatasetGraph right, Context c) {
- super(left, right, c);
- }
-
- Graph intersect(Function<DatasetGraph, Graph> op) {
- return join(Intersection::new, op);
- }
-
- @Override
- public Graph getDefaultGraph() {
- return intersect(DatasetGraph::getDefaultGraph);
- }
-
- @Override
- public Graph getGraph(Node graphNode) {
- return intersect(dsg -> dsg.getGraph(graphNode));
- }
-
- @Override
- public boolean containsGraph(Node graphNode) {
- return both(dsg -> dsg.containsGraph(graphNode));
- }
-
- @Override
- public Iterator<Node> listGraphNodes() {
- return filter(getLeft().listGraphNodes(), getRight()::containsGraph);
- }
-
- @Override
- public boolean contains(Node g, Node s, Node p, Node o) {
- return both(dsg -> dsg.contains(g, s, p, o));
- }
+ Graph intersect(Function<DatasetGraph, Graph> op) {
+ return join(IntersectionView::new, op);
+ }
+
+ @Override
+ public Graph getDefaultGraph() {
+ return intersect(DatasetGraph::getDefaultGraph);
+ }
+
+ @Override
+ public Graph getGraph(Node graphNode) {
+ return intersect(dsg -> dsg.getGraph(graphNode));
+ }
+
+ @Override
+ public boolean containsGraph(Node graphNode) {
+ return both(dsg -> dsg.containsGraph(graphNode) && !dsg.getGraph(graphNode).isEmpty());
+ }
+
+ @Override
+ public Iterator<Node> listGraphNodes() {
+ return iter(getLeft().listGraphNodes())
+ .filter(graphName -> !getGraph(graphName).isEmpty())
+ .filter(getRight()::containsGraph)
+ .filter(graphName -> !getRight().getGraph(graphName).isEmpty());
+ }
+
+ @Override
+ public boolean contains(Node g, Node s, Node p, Node o) {
+ return both(dsg -> dsg.contains(g, s, p, o));
+ }
+
+ static class IntersectionView extends Intersection {
+
+ public IntersectionView(Graph L, Graph R) {
+ super(L, R);
+ }
+
+ @Override
+ public void performAdd(Triple t) {
+ IntersectionDatasetGraph.throwNoMutationAllowed();
+ }
+
+ @Override
+ public void performDelete(Triple t) {
+ IntersectionDatasetGraph.throwNoMutationAllowed();
+ }
+
+ @Override
+ protected ExtendedIterator<Triple> _graphBaseFind(Triple s) {
+ return L.isEmpty() || R.isEmpty() ? NullIterator.instance() : super._graphBaseFind(s);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/82acf1bc/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java
index c1c6542..6d12292 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/ViewDatasetGraph.java
@@ -32,7 +32,7 @@ public abstract class ViewDatasetGraph extends Pair.OfSameType<DatasetGraph> imp
this.lock = new PairLock(left.getLock(), right.getLock());
}
- private static void throwNoMutationAllowed() {
+ protected static void throwNoMutationAllowed() {
throw new UnsupportedOperationException("This view does not allow mutation!");
}
@@ -47,13 +47,9 @@ public abstract class ViewDatasetGraph extends Pair.OfSameType<DatasetGraph> imp
case WRITE:
throwNoMutationAllowed();
case READ:
- forEach(ViewDatasetGraph::beginRead);
+ forEach(dsg -> dsg.begin(READ));
}
}
-
- private static void beginRead(DatasetGraph dsg) {
- dsg.begin(READ);
- }
@Override
public void abort() {
http://git-wip-us.apache.org/repos/asf/jena/blob/82acf1bc/jena-arq/src/test/java/org/apache/jena/sparql/util/TestIntersectionDatasetGraph.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/util/TestIntersectionDatasetGraph.java b/jena-arq/src/test/java/org/apache/jena/sparql/util/TestIntersectionDatasetGraph.java
index 59eaf0e..4c04baf 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/util/TestIntersectionDatasetGraph.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/util/TestIntersectionDatasetGraph.java
@@ -1,17 +1,37 @@
package org.apache.jena.sparql.util;
+import static org.apache.jena.sparql.sse.SSE.parseGraph;
+
+import org.apache.jena.graph.*;
import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
import org.junit.Test;
public class TestIntersectionDatasetGraph extends TestViewDatasetGraph<IntersectionDatasetGraph> {
@Override
public IntersectionDatasetGraph testInstance(DatasetGraph left, DatasetGraph right, Context c) {
- return new IntersectionDatasetGraph(right, right, c);
+ return new IntersectionDatasetGraph(left, right, c);
}
@Test
public void testIntersection() {
-
+ final Graph g1 = parseGraph("(graph (triple <s1> <p1> <o1> ))");
+ final DatasetGraph dsg1 = DatasetGraphFactory.create(g1);
+ final Node graphName1 = NodeFactory.createBlankNode();
+ dsg1.addGraph(graphName1, g1);
+ final Graph g2 = parseGraph("(graph (triple <s2> <p2> <o2> ))");
+ final DatasetGraph dsg2 = DatasetGraphFactory.create(g2);
+ final Node graphName2 = NodeFactory.createBlankNode();
+ dsg2.addGraph(graphName2, g2);
+ final Node graphName3 = NodeFactory.createBlankNode();
+ dsg1.addGraph(graphName3, g1);
+ dsg2.addGraph(graphName3, g1);
+ DatasetGraph dsg = testInstance(dsg1, dsg2, Context.emptyContext);
+ assertEquals(1, dsg.size());
+ assertTrue(dsg.getDefaultGraph().isEmpty());
+ assertTrue(dsg.getGraph(graphName1).isEmpty());
+ assertTrue(dsg.getGraph(graphName2).isEmpty());
+ assertTrue(g1.isIsomorphicWith(dsg.getGraph(graphName3)));
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/82acf1bc/jena-arq/src/test/java/org/apache/jena/sparql/util/TestUnionDatasetGraph.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/util/TestUnionDatasetGraph.java b/jena-arq/src/test/java/org/apache/jena/sparql/util/TestUnionDatasetGraph.java
index a131846..463e1ff 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/util/TestUnionDatasetGraph.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/util/TestUnionDatasetGraph.java
@@ -17,7 +17,6 @@ public class TestUnionDatasetGraph extends TestViewDatasetGraph<UnionDatasetGrap
@Test
public void testUnion() {
-
final Graph g1 = parseGraph("(graph (triple <s1> <p1> <o1> ))");
final DatasetGraph dsg1 = DatasetGraphFactory.create(g1);
final Node graphName1 = NodeFactory.createBlankNode();