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:19 UTC

[1/9] jena git commit: Improve javadoc

Repository: jena
Updated Branches:
  refs/heads/master bd357d406 -> 3baf1a36f


Improve javadoc

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

Branch: refs/heads/master
Commit: a6eaa15da666981443dbb803905439449850a7ba
Parents: cc8810d
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jun 3 22:37:08 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jun 3 22:37:08 2017 +0100

----------------------------------------------------------------------
 .../apache/jena/sparql/core/DatasetGraphBaseFind.java | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/a6eaa15d/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBaseFind.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBaseFind.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBaseFind.java
index 67c4566..e58cf9e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBaseFind.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBaseFind.java
@@ -100,19 +100,27 @@ abstract public class DatasetGraphBaseFind extends DatasetGraphBase
      * No duplicates - the union graph is a <em>set</em> of triples.
      * See {@link #findInAnyNamedGraphs}, where there may be duplicates.
      * <p>
-     * Implementations are encouraged to override this method. For example, it
-     * may be possible to avoid "distinct".
+     * Implementations are encouraged to override this method or {@link #findUnionGraphTriples}.
+     * For example, it may be possible to avoid "distinct".
      */
     public Iterator<Quad> findQuadsInUnionGraph(Node s, Node p , Node o) {
         return findUnionGraphTriples(s,p,o).map(t -> new Quad(Quad.unionGraph, t)).iterator() ;
     }
 
+    /** Find matches in the notional union of all named graphs - return as triples.
+     * No duplicates - the union graph is a <em>set</em> of triples.
+     * See {@link #findInAnyNamedGraphs}, where there may be duplicates.
+     * <p>
+     * Implementations are encouraged to override this method. For example, it
+     * may be possible to avoid "distinct".
+     */
     private Stream<Triple> findUnionGraphTriples(Node s, Node p , Node o) {
         return Iter.asStream(findInAnyNamedGraphs(s,p,o)).map(Quad::asTriple).distinct() ;
     }
 
-    /** Find in a specific named graph - {@code g} is a group term (IRI or bNode), not a wild card (or null). */
+    /** Find in a specific named graph - {@code g} is a ground term (IRI or bNode), not a wild card (or null). */
     protected abstract Iterator<Quad> findInSpecificNamedGraph(Node g, Node s, Node p , Node o) ;
+    
     /** Find in any named graph - return quads.
      * If a triple matches in two different graph, return a quad for each.
      * See {@link #findInUnionGraph} for matching without duplicate triples.


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

Posted by an...@apache.org.
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) ; }
 


[7/9] jena git commit: JENA-1074: Provide Dataset.getUnionModel()

Posted by an...@apache.org.
JENA-1074: Provide Dataset.getUnionModel()

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

Branch: refs/heads/master
Commit: 8a6ad81cb4692790b6afe2268c2d7310da035cda
Parents: a016916
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Jun 4 09:57:34 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Jun 4 09:58:46 2017 +0100

----------------------------------------------------------------------
 jena-arq/src/main/java/org/apache/jena/query/Dataset.java       | 3 +++
 .../src/main/java/org/apache/jena/sparql/core/DatasetImpl.java  | 5 +++++
 2 files changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/8a6ad81c/jena-arq/src/main/java/org/apache/jena/query/Dataset.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/Dataset.java b/jena-arq/src/main/java/org/apache/jena/query/Dataset.java
index 4ab06f5..db88642 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/Dataset.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/Dataset.java
@@ -35,6 +35,9 @@ public interface Dataset extends Transactional
     /** Get the default graph as a Jena Model */
     public Model getDefaultModel() ;
     
+    /** Get the graph which is teh unionof all named graphs as a Jena Model */
+    public Model getUnionModel() ;
+
     /** Set the default graph.  Can be set to null for none. */ 
     public void  setDefaultModel(Model model) ;
 

http://git-wip-us.apache.org/repos/asf/jena/blob/8a6ad81c/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
index 60fa30f..2216d2f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
@@ -83,6 +83,11 @@ public class DatasetImpl implements Dataset
     }
 
     @Override
+    public Model getUnionModel() {
+        return ModelFactory.createModelForGraph(dsg.getUnionGraph()) ;
+    }
+
+    @Override
     public Lock getLock() { return dsg.getLock() ; }
 
     @Override


[8/9] jena git commit: JENA-1074: Merge commit 'refs/pull/260/head' of github.com:apache/jena

Posted by an...@apache.org.
JENA-1074: Merge commit 'refs/pull/260/head' of github.com:apache/jena

This closes #260.


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

Branch: refs/heads/master
Commit: aeedc5053f478961316ad7d1a0c753d6920844eb
Parents: bd357d4 8a6ad81
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Jun 8 14:59:46 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Jun 8 14:59:46 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/query/Dataset.java     |  3 ++
 .../apache/jena/sparql/core/DatasetGraph.java   |  7 +++
 .../jena/sparql/core/DatasetGraphBase.java      | 10 ++++
 .../jena/sparql/core/DatasetGraphBaseFind.java  | 14 ++++--
 .../jena/sparql/core/DatasetGraphWrapper.java   |  4 ++
 .../apache/jena/sparql/core/DatasetImpl.java    |  5 ++
 .../jena/sparql/graph/GraphUnionRead.java       | 13 ++++-
 .../sparql/core/AbstractDatasetGraphFind.java   | 53 ++++++++++++++++----
 .../main/java/org/apache/jena/graph/Graph.java  | 20 +++++---
 9 files changed, 108 insertions(+), 21 deletions(-)
----------------------------------------------------------------------



[4/9] jena git commit: JENA-1074: Use DatasetGraph.findNG for dynamic union graph .find.

Posted by an...@apache.org.
JENA-1074: Use DatasetGraph.findNG for dynamic union graph .find.

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

Branch: refs/heads/master
Commit: 462fe53a8fbac8770471251be676a050d29a4d1a
Parents: c25cbd8
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Jun 4 09:43:25 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Jun 4 09:43:25 2017 +0100

----------------------------------------------------------------------
 .../org/apache/jena/sparql/graph/GraphUnionRead.java     | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/462fe53a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
index a14a9c8..fa4115e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
@@ -19,6 +19,7 @@
 package org.apache.jena.sparql.graph ;
 
 import java.util.Collection ;
+import java.util.Iterator;
 import java.util.function.Consumer ;
 
 import org.apache.jena.atlas.iterator.Iter ;
@@ -78,6 +79,14 @@ public class GraphUnionRead extends GraphBase {
 
     @Override
     protected ExtendedIterator<Triple> graphBaseFind(Triple m) {
+        if ( graphs == null ) {
+            // This produces unique quads with the same graph node,
+            // hence the triples are distinct. 
+            Iterator<Quad> qIter = dataset.findNG(Quad.unionGraph, Node.ANY, Node.ANY, Node.ANY);
+            Iterator<Triple> tIter = Iter.map(qIter, quad->quad.asTriple());
+            return WrappedIterator.createNoRemove(tIter) ;
+        }
+        // Only certain graphs.
         IteratorConcat<Triple> iter = new IteratorConcat<>() ;
         forEachGraph((g) -> iter.add(g.find(m))) ;
         return WrappedIterator.createNoRemove(Iter.distinct(iter)) ;
@@ -103,7 +112,7 @@ public class GraphUnionRead extends GraphBase {
     
     @Override
     public void performAdd(Triple t) {
-        throw new AddDeniedException("GraphUnionRead::performAdd - read-only graph") ;
+        throw new AddDeniedException("GraphUnionRead::performAdd - Read-only graph") ;
     }
 
     @Override


[9/9] jena git commit: JENA-1074: Use match parameters

Posted by an...@apache.org.
JENA-1074: Use match parameters


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

Branch: refs/heads/master
Commit: 3baf1a36f7d68df7e4e1ba218cefdccc54eb3563
Parents: aeedc50
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Jun 8 15:38:08 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Jun 8 15:38:08 2017 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/3baf1a36/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
index fa4115e..e675d6f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
@@ -82,7 +82,7 @@ public class GraphUnionRead extends GraphBase {
         if ( graphs == null ) {
             // This produces unique quads with the same graph node,
             // hence the triples are distinct. 
-            Iterator<Quad> qIter = dataset.findNG(Quad.unionGraph, Node.ANY, Node.ANY, Node.ANY);
+            Iterator<Quad> qIter = dataset.findNG(Quad.unionGraph, m.getSubject(), m.getPredicate(), m.getObject());
             Iterator<Triple> tIter = Iter.map(qIter, quad->quad.asTriple());
             return WrappedIterator.createNoRemove(tIter) ;
         }


[2/9] jena git commit: Block ExtendedIterator.remove

Posted by an...@apache.org.
Block ExtendedIterator.remove

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

Branch: refs/heads/master
Commit: 97e950e76023eb698fb369e621d246861be79e97
Parents: a6eaa15
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jun 3 22:38:01 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jun 3 22:38:01 2017 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/97e950e7/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
index 3c4fb39..a14a9c8 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphUnionRead.java
@@ -80,7 +80,7 @@ public class GraphUnionRead extends GraphBase {
     protected ExtendedIterator<Triple> graphBaseFind(Triple m) {
         IteratorConcat<Triple> iter = new IteratorConcat<>() ;
         forEachGraph((g) -> iter.add(g.find(m))) ;
-        return WrappedIterator.create(Iter.distinct(iter)) ;
+        return WrappedIterator.createNoRemove(Iter.distinct(iter)) ;
     }
     
     /** Execute action for each graph that exists */


[3/9] jena git commit: JENA-1074: Add Graph.find(), equivalent to find(ANY, ANY, ANY).

Posted by an...@apache.org.
JENA-1074: Add Graph.find(), equivalent to find(ANY,ANY,ANY).

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

Branch: refs/heads/master
Commit: c25cbd8bd33cfb08c8a04d0b7f228b361be76f6c
Parents: 97e950e
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Jun 4 09:41:11 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Jun 4 09:41:11 2017 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/jena/graph/Graph.java  | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/c25cbd8b/jena-core/src/main/java/org/apache/jena/graph/Graph.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/graph/Graph.java b/jena-core/src/main/java/org/apache/jena/graph/Graph.java
index 0dd9ed3..ea39ddb 100644
--- a/jena-core/src/main/java/org/apache/jena/graph/Graph.java
+++ b/jena-core/src/main/java/org/apache/jena/graph/Graph.java
@@ -92,17 +92,25 @@ public interface Graph
 	/** 
         Returns an iterator over all the Triples that match the triple pattern.
    
-        @param m a Triple[Match] encoding the pattern to look for
+        @param m a Triple encoding the pattern to look for
         @return an iterator of all triples in this graph that match m
 	 */
 	ExtendedIterator<Triple> find(Triple m);
 
-
-/** Returns an iterator over Triple.
-	   */
-	ExtendedIterator<Triple> find(Node s,Node p,Node o);
+	/** Returns an iterator over Triples matching a pattern.
+     * 
+     * @return an iterator of all triples in this graph
+	 */
+	ExtendedIterator<Triple> find(Node s, Node p, Node o);
     
-	/**
+    /** Returns an iterator over all Triples in the graph.
+     * Equivalent to {@code find(Node.ANY, Node.ANY, Node.ANY)}
+     * 
+     * @return an iterator of all triples in this graph
+     */
+    default ExtendedIterator<Triple> find() { return find(Node.ANY, Node.ANY, Node.ANY); }
+
+    /**
 	 * Compare this graph with another using the method
 	 * described in 
 	 * <a href="http://www.w3.org/TR/rdf-concepts#section-Graph-syntax">


[6/9] jena git commit: JENA-1074: Tests for DatasetGraph.getUnionGraph()

Posted by an...@apache.org.
JENA-1074: Tests for DatasetGraph.getUnionGraph()


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

Branch: refs/heads/master
Commit: a0169161322a6d65227e0c40cf464a0c879f1af2
Parents: 0a87248
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Jun 4 09:55:15 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Jun 4 09:58:39 2017 +0100

----------------------------------------------------------------------
 .../sparql/core/AbstractDatasetGraphFind.java   | 53 ++++++++++++++++----
 1 file changed, 43 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/a0169161/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphFind.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphFind.java b/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphFind.java
index f3585fa..f201e8c 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphFind.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphFind.java
@@ -19,24 +19,23 @@
 package org.apache.jena.sparql.core;
 
 import static org.apache.jena.atlas.iterator.Iter.asStream ;
-import static org.apache.jena.atlas.iterator.Iter.toList ;
+import static org.apache.jena.atlas.iterator.Iter.toList;
+import static org.apache.jena.atlas.iterator.Iter.toSet;
 import static org.apache.jena.atlas.junit.BaseTest.assertEqualsUnordered;
 import static org.junit.Assert.assertEquals ;
 import static org.junit.Assert.assertFalse ;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue ;
-import static org.junit.Assert.fail ;
+import static org.junit.Assert.fail;
 
-import java.util.Arrays ;
-import java.util.Collection ;
-import java.util.Iterator ;
-import java.util.List ;
+import java.util.*;
 import java.util.stream.Collectors ;
 
+import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
-import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.core.DatasetGraphBaseFind ;
-import org.apache.jena.sparql.core.Quad ;
+import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.sparql.graph.NodeConst ;
 import org.apache.jena.sparql.sse.SSE ;
 import org.junit.Assume ;
@@ -193,6 +192,8 @@ public abstract class AbstractDatasetGraphFind {
         assertTrue(x.contains(q2)) ;
     }
     
+    // Union graph by name.
+
     @Test public void find_union_01() {
         List<Quad> x = toList(dsg.find(Quad.unionGraph, null, null, null)) ;
         assertEquals(3, x.size()) ;
@@ -206,6 +207,38 @@ public abstract class AbstractDatasetGraphFind {
         Quad qz = Quad.create(Quad.unionGraph, q2.asTriple()) ;
         assertFalse(x.contains(qz)) ;
     }
+
+    // Union graph as graph
+    
+    @Test public void find_union_02() {
+        DatasetGraphBaseFind dsgx = (DatasetGraphBaseFind)dsg ;
+        assertNotNull(dsgx.getUnionGraph());
+        List<Triple> x = toList(dsgx.getUnionGraph().find(null, null, null)) ;
+        assertEquals(3, x.size()) ;
+        assertTrue(x.contains(q4.asTriple())) ;
+        assertTrue(x.contains(q5.asTriple())) ;
+        assertTrue(x.contains(q10.asTriple())) ;
+    }
+    
+    @Test public void find_union_03() {
+        DatasetGraphBaseFind dsgx = (DatasetGraphBaseFind)dsg ;
+        assertNotNull(dsgx.getUnionGraph());
+        Set<Triple> x1 = toSet(dsgx.getUnionGraph().find(null, null, null)) ;
+        Set<Triple> x2 = Iter.iter(dsg.find(Quad.unionGraph, null, null, null)).map(Quad::asTriple).toSet();
+        assertEquals(x1, x2);
+    }
+
+    @Test(expected=AddDeniedException.class)
+    public void find_union_04() {
+        DatasetGraphBaseFind dsgx = (DatasetGraphBaseFind)dsg ;
+        dsgx.getUnionGraph().add(q4.asTriple());
+    }
+    
+    @Test(expected=DeleteDeniedException.class)
+    public void find_union_05() {
+        DatasetGraphBaseFind dsgx = (DatasetGraphBaseFind)dsg ;
+        dsgx.getUnionGraph().delete(q4.asTriple());
+    }
     
     // DatasetGraphBaseFind specific.
     
@@ -245,7 +278,7 @@ public abstract class AbstractDatasetGraphFind {
         assertEqualsUnordered(x1, x2) ;
         assertEquals(1, x2.size()) ;
     }
-
+    
     static List<Triple> quadsToDistinctTriples(Iterator<Quad> iter) {
         return asStream(iter).map(Quad::asTriple).distinct().collect(Collectors.toList()) ;
     }