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 2017/06/08 14:38:23 UTC

[5/9] jena git commit: JENA-1074: Add DatasetGraph.getUnionGraph

JENA-1074: Add DatasetGraph.getUnionGraph

A graph which is the triples fromall named graph in the dataset.
This does not include the default graph.


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

Branch: refs/heads/master
Commit: 0a872489d859a78cf0e9e13b2a8ce532a5751d5d
Parents: 462fe53
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Jun 4 09:44:34 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Jun 4 09:44:34 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/sparql/core/DatasetGraph.java    |  7 +++++++
 .../org/apache/jena/sparql/core/DatasetGraphBase.java     | 10 ++++++++++
 .../org/apache/jena/sparql/core/DatasetGraphWrapper.java  |  4 ++++
 3 files changed, 21 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/0a872489/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraph.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraph.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraph.java
index d772624..313af4d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraph.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraph.java
@@ -49,6 +49,13 @@ public interface DatasetGraph extends Transactional, Closeable
     public Graph getGraph(Node graphNode) ;
     
     /**
+     * Return a {@link Graph} that is the union of all named graphs in this dataset. This
+     * union graph is read-only (its prefix mapping in the current JVM may be changed but
+     * that may not persist).
+     */
+    public Graph getUnionGraph();
+    
+    /**
      * Does the DatasetGraph contain a specific named graph? 
      * Whether a dataset contains a graph if there are no triples is
      * not defined - see the specifc implementation. Some datasets are "open" -

http://git-wip-us.apache.org/repos/asf/jena/blob/0a872489/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
index e5214eb..73847fe 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
@@ -26,6 +26,7 @@ import org.apache.jena.graph.Node ;
 import org.apache.jena.shared.Lock ;
 import org.apache.jena.shared.LockMRSW ;
 import org.apache.jena.sparql.core.mem.DatasetGraphInMemory ;
+import org.apache.jena.sparql.graph.GraphOps;
 import org.apache.jena.sparql.sse.writers.WriterGraph ;
 import org.apache.jena.sparql.util.Context ;
 
@@ -58,6 +59,15 @@ abstract public class DatasetGraphBase implements DatasetGraph
     
     @Override
     public abstract Graph getDefaultGraph() ;
+    
+    @Override
+    public Graph getUnionGraph() {
+        // Implementations are encouraged to implement an efficent
+        // {@code DatasetGraphBase.findQuadsInUnionGraph} or
+        // {@code findNG(Quad.unionGraph, Node.ANY, Node.ANY, Node.ANY)}
+        // for a distinct iterator (e.g. avoid calling "distinct()" by not creating duplicates).
+        return GraphOps.unionGraph(this);
+    }
 
     @Override
     public abstract Graph getGraph(Node graphNode) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/0a872489/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphWrapper.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphWrapper.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphWrapper.java
index 3480fd4..421fdc0 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphWrapper.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphWrapper.java
@@ -82,6 +82,10 @@ public class DatasetGraphWrapper implements DatasetGraph, Sync
     { return getG().getDefaultGraph(); }
 
     @Override
+    public Graph getUnionGraph()
+    { return getG().getUnionGraph(); }
+
+    @Override
     public Graph getGraph(Node graphNode)
     { return getG().getGraph(graphNode) ; }