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;
+ }
}