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:55 UTC
[31/44] jena git commit: Test for TestIntersectionDatasetCollector
now passes
Test for TestIntersectionDatasetCollector now passes
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/bd9a4528
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/bd9a4528
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/bd9a4528
Branch: refs/heads/master
Commit: bd9a4528847f8f3bfa636a8df22f7f8a223ea9e4
Parents: 2ce74c0
Author: ajs6f <aj...@apache.org>
Authored: Sun Dec 31 14:19:06 2017 -0500
Committer: ajs6f <aj...@apache.org>
Committed: Fri Jan 5 09:32:55 2018 -0500
----------------------------------------------------------------------
.../jena/query/util/DatasetCollector.java | 21 ++++++++--------
.../jena/query/util/TestDatasetCollector.java | 1 -
.../util/TestIntersectionDatasetCollector.java | 26 +++++++++++++++++---
3 files changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/bd9a4528/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java b/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
index 092b8f8..37fe72b 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
@@ -18,13 +18,10 @@
package org.apache.jena.query.util;
-import static org.apache.jena.atlas.iterator.Iter.filter;
import static org.apache.jena.system.Txn.executeRead;
import static org.apache.jena.system.Txn.executeWrite;
-import java.util.function.BiConsumer;
-import java.util.function.BinaryOperator;
-import java.util.function.Supplier;
+import java.util.function.*;
import org.apache.jena.atlas.lib.IdentityFinishCollector.UnorderedIdentityFinishCollector;
import org.apache.jena.query.Dataset;
@@ -87,8 +84,9 @@ public abstract class DatasetCollector implements UnorderedIdentityFinishCollect
public static class IntersectionDatasetCollector extends DatasetCollector {
/**
- * The first element is treated differently because {@link DatasetCollector#supplier()} does
- * not provide an identity element for intersection.
+ * The first element is treated differently because
+ * {@link DatasetCollector#supplier()} does not provide an identity element for
+ * intersection.
*/
boolean afterFirstElement = false;
@@ -102,13 +100,16 @@ public abstract class DatasetCollector implements UnorderedIdentityFinishCollect
return (d1, d2) -> {
if (afterFirstElement) {
d1.setDefaultModel(d1.getDefaultModel().intersection(d2.getDefaultModel()));
- filter(d1.listNames(), d2::containsNamedModel).forEachRemaining(name -> {
- Model intersection = d1.getNamedModel(name).intersection(d2.getNamedModel(name));
- d1.replaceNamedModel(name, intersection);
+ d1.listNames().forEachRemaining(name -> {
+ if (d2.containsNamedModel(name)) {
+ Model intersection = d1.getNamedModel(name).intersection(d2.getNamedModel(name));
+ d1.replaceNamedModel(name, intersection);
+ } else d1.removeNamedModel(name);
});
} else {
+ // first element of the stream
d1.setDefaultModel(d2.getDefaultModel());
- d2.listNames().forEachRemaining(name -> d1.addNamedModel(name, d2.getNamedModel(name)));
+ d2.listNames().forEachRemaining(name -> d1.replaceNamedModel(name, d2.getNamedModel(name)));
afterFirstElement = true;
}
};
http://git-wip-us.apache.org/repos/asf/jena/blob/bd9a4528/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java b/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
index 539974c..b58cd82 100644
--- a/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
+++ b/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
@@ -5,7 +5,6 @@ import static org.apache.jena.sparql.sse.SSE.parseGraph;
import java.util.stream.Stream;
-import org.apache.jena.ext.com.google.common.collect.Maps;
import org.apache.jena.graph.*;
import org.apache.jena.query.Dataset;
import org.apache.jena.query.DatasetFactory;
http://git-wip-us.apache.org/repos/asf/jena/blob/bd9a4528/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java b/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
index 8ee0d1f..a0dcfa0 100644
--- a/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
+++ b/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
@@ -18,10 +18,12 @@
package org.apache.jena.query.util;
+import static org.apache.jena.graph.NodeFactory.createBlankNode;
import static org.apache.jena.rdf.model.ModelFactory.createModelForGraph;
import static org.apache.jena.sparql.sse.SSE.parseGraph;
-import org.apache.jena.graph.Graph;
+import java.util.stream.Stream;
+
import org.apache.jena.query.Dataset;
import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdf.model.Model;
@@ -36,9 +38,25 @@ public class TestIntersectionDatasetCollector extends TestDatasetCollector {
@Test
public void testIntersection() {
- Graph graph = parseGraph("(graph (triple <s1> <p1> <o1> ))");
- Model model = createModelForGraph(graph);
- Dataset dataset = DatasetFactory.create(model);
+ final Model m1 = createModelForGraph(parseGraph("(graph (triple <s1> <p1> <o1> ))"));
+ final Dataset ds1 = DatasetFactory.create(m1);
+ final String graphName1 = createBlankNode().toString();
+ ds1.addNamedModel(graphName1, m1);
+ final Model m2 = createModelForGraph(parseGraph("(graph (triple <s2> <p2> <o2> ))"));
+ final Dataset ds2 = DatasetFactory.create(m2);
+ final String graphName2 = createBlankNode().toString();
+ ds2.addNamedModel(graphName2, m2);
+ final Model m3 = createModelForGraph(parseGraph("(graph (triple <s3> <p3> <o3> ))"));
+ final String graphName3 = createBlankNode().toString();
+ ds1.addNamedModel(graphName3, m3);
+ ds2.addNamedModel(graphName3, m3);
+
+ Dataset ds = Stream.<Dataset>builder().add(ds1).add(ds2).build().collect(testInstance());
+
+ assertTrue(ds.getDefaultModel().isEmpty());
+ assertTrue(ds.getNamedModel(graphName1).isEmpty());
+ assertTrue(ds.getNamedModel(graphName2).isEmpty());
+ assertTrue(m3.isIsomorphicWith(ds.getNamedModel(graphName3)));
}
}