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 2018/03/08 21:34:52 UTC

[5/8] jena git commit: JENA-1500: Hide empty graphs in default in-memory dataset.

JENA-1500: Hide empty graphs in default in-memory dataset.


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

Branch: refs/heads/master
Commit: c06971febfd6b6d92cfbb97b9baa3781f1709dda
Parents: 7130fd5
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Mar 8 15:54:13 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Mar 8 15:54:13 2018 +0000

----------------------------------------------------------------------
 .../org/apache/jena/sparql/core/DatasetGraphMap.java | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/c06971fe/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphMap.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphMap.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphMap.java
index c01f250..9ebb704 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphMap.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphMap.java
@@ -24,6 +24,7 @@ import static org.apache.jena.sparql.util.graph.GraphUtils.triples2quadsDftGraph
 import java.util.HashMap ;
 import java.util.Iterator ;
 import java.util.Map ;
+import java.util.Map.Entry;
 
 import org.apache.jena.atlas.iterator.IteratorConcat ;
 import org.apache.jena.graph.Graph ;
@@ -86,10 +87,22 @@ public class DatasetGraphMap extends DatasetGraphTriplesQuads
     
     @Override
     public Iterator<Node> listGraphNodes() {
-        return graphs.keySet().iterator();
+        // Hide empty graphs. 
+        return graphs.entrySet().stream().filter(e->!e.getValue().isEmpty()).map(Entry::getKey).iterator();
     }
 
     @Override
+    public boolean containsGraph(Node graphNode) {
+        // Hide empty graphs. 
+        if ( Quad.isDefaultGraph(graphNode) )
+            return true;
+        if ( Quad.isUnionGraph(graphNode) )
+            return true;
+        Graph g = graphs.get(graphNode);
+        return g != null && !g.isEmpty(); 
+    }
+    
+    @Override
     protected void addToDftGraph(Node s, Node p, Node o) {
         getDefaultGraph().add(Triple.create(s, p, o)) ;
     }