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/11/17 17:20:28 UTC

[02/34] jena git commit: Tidy up and maintenance.

Tidy up and maintenance.

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

Branch: refs/heads/master
Commit: b87a34f92f8dd1805ba20b7a0b1eea86eb6c4e08
Parents: c846b05
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Nov 1 18:46:06 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Nov 13 15:35:19 2018 +0000

----------------------------------------------------------------------
 .../jena/sparql/core/DatasetDescription.java    |  5 +++
 .../sparql/core/DatasetGraphFilteredView.java   |  6 ++--
 .../jena/sparql/core/DatasetGraphReadOnly.java  | 27 +++--------------
 .../jena/sparql/engine/http/HttpQuery.java      |  2 +-
 .../org/apache/jena/sparql/graph/GraphOps.java  | 32 +++++++++++++++++++-
 5 files changed, 44 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/b87a34f9/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetDescription.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetDescription.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetDescription.java
index 2b2a48d..bd7f35b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetDescription.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetDescription.java
@@ -106,4 +106,9 @@ public class DatasetDescription
 
     /** Create a DatasetGraph from the description - reads URLs into an in-memory DatasetGraph */ 
     public DatasetGraph createDatasetGraph() { return DatasetUtils.createDatasetGraph(this) ; }
+    
+    @Override
+    public String toString() {
+        return "DatasetDescription : "+defaultGraphURIs+" : "+namedGraphURIs; 
+    }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/b87a34f9/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFilteredView.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFilteredView.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFilteredView.java
index be2cc38..ec61b04 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFilteredView.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFilteredView.java
@@ -152,8 +152,8 @@ public class DatasetGraphFilteredView extends DatasetGraphReadOnly implements Da
         return ! this.find().hasNext(); 
     }
     
-//    @Override public String toString() {
-//        return  
-//    }
+    @Override public String toString() {
+        return "Filtered:\n"+super.toString();  
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/b87a34f9/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphReadOnly.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphReadOnly.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphReadOnly.java
index 7b624b4..a0557f2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphReadOnly.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphReadOnly.java
@@ -18,9 +18,6 @@
 
 package org.apache.jena.sparql.core;
 
-import java.util.Map ;
-import java.util.concurrent.ConcurrentHashMap;
-
 import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
@@ -36,42 +33,26 @@ public class DatasetGraphReadOnly extends DatasetGraphWrapper
 
     public DatasetGraphReadOnly(DatasetGraph dsg) { super(dsg) ; }
     
-    private Graph dftGraph = null ;
+    private Graph dftGraph = new GraphReadOnly(super.getDefaultGraph()) ;
     
     @Override
-    public Graph getDefaultGraph()
-    {
-        if ( dftGraph == null )
-            dftGraph = new GraphReadOnly(super.getDefaultGraph()) ;
+    public Graph getDefaultGraph() {
         return dftGraph ;
     }
 
-    @Override public void begin(ReadWrite mode)         {
+    @Override public void begin(ReadWrite mode) {
         if ( mode == ReadWrite.WRITE )
             //throw new JenaTransactionException("read-only dataset : no write transactions") ;
             Log.warn(this, "Write transaction on a read-only dataset") ;
         get().begin(mode) ; 
     }
     
-    private Map<Node, Graph> namedGraphs = new ConcurrentHashMap<>() ;
-
     @Override
     public Graph getGraph(Node graphNode) {
-        // Cache GraphReadOnly wrappers. This also makes == work (a nicety)
-        // if the underlying DatasetGraph isn't changing.
-        if ( namedGraphs.containsKey(graphNode) ) {
-            if ( !super.containsGraph(graphNode) ) {
-                namedGraphs.remove(graphNode) ;
-                return null ;
-            }
-            return namedGraphs.get(graphNode) ;
-        }
-
-        Graph g = super.getGraph(graphNode) ;
+        Graph g = get().getGraph(graphNode) ;
         if ( g == null )
             return null ;
         g = new GraphReadOnly(g) ;
-        namedGraphs.put(graphNode, g) ;
         return g ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/b87a34f9/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/HttpQuery.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/HttpQuery.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/HttpQuery.java
index ca6c038..427ddbb 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/HttpQuery.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/HttpQuery.java
@@ -361,7 +361,7 @@ public class HttpQuery extends Params {
     
     private QueryExceptionHTTP rewrap(HttpException httpEx) {
         // The historical contract of HTTP Queries has been to throw QueryExceptionHTTP however using the standard
-    	    // ARQ HttpOp machinery we use these days means the internal HTTP errors come back as HttpException
+        // ARQ HttpOp machinery we use these days means the internal HTTP errors come back as HttpException
         // Therefore we need to wrap appropriately
         responseCode = httpEx.getResponseCode();
         if (responseCode != -1) {

http://git-wip-us.apache.org/repos/asf/jena/blob/b87a34f9/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphOps.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphOps.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphOps.java
index 3d2bec9..63bedc9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphOps.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphOps.java
@@ -25,6 +25,7 @@ import org.apache.jena.atlas.iterator.Iter ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
+import org.apache.jena.graph.impl.WrappedGraph;
 import org.apache.jena.sparql.core.DatasetGraph ;
 import org.apache.jena.sparql.core.Quad ;
 
@@ -40,7 +41,7 @@ public class GraphOps {
             return true ;
         return dsg.containsGraph(gn) ;
     }
-
+    
     /** Get a graph from the dataset - the graph name may be special
      * - the union graph (which is immutable) or a special name for
      * the default graph. 
@@ -89,4 +90,33 @@ public class GraphOps {
     public static void deleteAll(Graph g, Iterable<Triple> iter) {
         deleteAll(g, iter.iterator()) ;
     }
+
+    /** Remove all layers of graph wrapping. Returns the orinalk graph is not wrapped at all.*/
+    public static Graph unwrapAll(Graph graph) {
+        Graph graph1 = graph;
+        for (;;) {
+            Graph graph2 = unwrapOne(graph1);
+            if ( graph2 == graph1 )
+                return graph1;
+            graph1 = graph2;
+        }
+    }
+
+    /** Remove one layer of graph wrapping. */
+    public static boolean isWrapped(Graph graph) {
+        if ( graph instanceof WrappedGraph ) return true;
+        if ( graph instanceof GraphWrapper ) return true;
+        return false;
+    }
+        
+    /** Remove one layer of graph wrapping. Returns the orinalk graph is not wrapped at all. */
+    public static Graph unwrapOne(Graph graph) {
+        if ( graph instanceof WrappedGraph )
+            // WrappedGraph is a GraphWithPerform
+            return ((WrappedGraph)graph).getWrapped();
+        if ( graph instanceof GraphWrapper )
+            // GraphWrapper is a pure wrapper.
+            return ((GraphWrapper)graph).get();
+        return graph;
+    }
 }