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/08/31 12:05:07 UTC
[17/27] jena git commit: Provide DatasetGraph operation
Provide DatasetGraph operation
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ec54d3dd
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ec54d3dd
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ec54d3dd
Branch: refs/heads/master
Commit: ec54d3ddc3eeab1e33cf0a8f0d4e44be40c4d16b
Parents: cdb9619
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Aug 26 18:04:53 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Aug 26 18:04:53 2018 +0100
----------------------------------------------------------------------
.../jena/query/QueryExecutionFactory.java | 35 +++++++++++++------
.../jena/sparql/engine/QueryExecutionBase.java | 36 +++++++++++++++++---
2 files changed, 57 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/ec54d3dd/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
index f784d1a..1894ca5 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
@@ -18,6 +18,7 @@
package org.apache.jena.query;
import java.util.List ;
+import java.util.Objects;
import org.apache.http.client.HttpClient;
import org.apache.http.protocol.HttpContext;
@@ -93,7 +94,19 @@ public class QueryExecutionFactory
// checkArg(dataset) ; // Allow null
return make(query, dataset) ;
}
-
+
+ /**
+ * Create a QueryExecution to execute over the {@link DatasetGraph}.
+ *
+ * @param query Query
+ * @param datasetGraph Target of the query
+ * @return QueryExecution
+ */
+ static public QueryExecution create(Query query, DatasetGraph datasetGraph) {
+ Objects.requireNonNull(query, "Query is null") ;
+ Objects.requireNonNull(datasetGraph, "DatasetGraph is null") ;
+ return make(query, datasetGraph) ;
+ }
/** Create a QueryExecution to execute over the Dataset.
*
* @param queryStr Query string
@@ -580,7 +593,7 @@ public class QueryExecutionFactory
Dataset dataset = DatasetFactory.wrap(model);
Graph g = unwrap(model.getGraph());
if ( g instanceof GraphView ) {
- GraphView gv = (GraphView)model.getGraph();
+ GraphView gv = (GraphView)g;
// Copy context of the storage dataset to the wrapper dataset.
dataset.getContext().putAll(gv.getDataset().getContext());
}
@@ -597,23 +610,25 @@ public class QueryExecutionFactory
}
}
- protected static QueryExecution make(Query query, Dataset dataset)
- { return make(query, dataset, null) ; }
+ protected static QueryExecution make(Query query, Dataset dataset)
+ { return make(query, dataset, null, null) ; }
-
- protected static QueryExecution make(Query query, Dataset dataset, Context context) {
+ protected static QueryExecution make(Query query, DatasetGraph datasetGraph)
+ { return make(query, null, datasetGraph, null) ; }
+
+ // Both Dataset and DatasetGraph for full backwards compatibility
+ protected static QueryExecution make(Query query, Dataset dataset, DatasetGraph dsg, Context context) {
+ if ( dsg == null && dataset != null )
+ dsg = dataset.asDatasetGraph();
query.setResultVars() ;
if ( context == null )
context = ARQ.getContext() ; // .copy done in QueryExecutionBase -> Context.setupContext.
- DatasetGraph dsg = null ;
- if ( dataset != null )
- dsg = dataset.asDatasetGraph() ;
QueryEngineFactory f = findFactory(query, dsg, context) ;
if ( f == null ) {
Log.warn(QueryExecutionFactory.class, "Failed to find a QueryEngineFactory") ;
return null ;
}
- return new QueryExecutionBase(query, dataset, context, f) ;
+ return new QueryExecutionBase(query, dataset, dsg, context, f) ;
}
static private QueryEngineFactory findFactory(Query query, DatasetGraph dataset, Context context) {
http://git-wip-us.apache.org/repos/asf/jena/blob/ec54d3dd/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java
index e86c857..16aea26 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryExecutionBase.java
@@ -33,7 +33,11 @@ import org.apache.jena.atlas.logging.Log;
import org.apache.jena.graph.Node;
import org.apache.jena.graph.Triple;
import org.apache.jena.query.* ;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.rdf.model.Statement;
import org.apache.jena.shared.PrefixMapping;
import org.apache.jena.sparql.ARQConstants;
import org.apache.jena.sparql.core.DatasetGraph;
@@ -82,16 +86,40 @@ public class QueryExecutionBase implements QueryExecution
private long timeout2 = TIMEOUT_UNSET;
private final AlarmClock alarmClock = AlarmClock.get();
- public QueryExecutionBase(Query query, Dataset dataset,
+ public QueryExecutionBase(Query query, Dataset dataset, Context context, QueryEngineFactory qeFactory) {
+ this(query, dataset, null, context, qeFactory);
+ }
+
+ public QueryExecutionBase(Query query, DatasetGraph datasetGraph, Context context, QueryEngineFactory qeFactory) {
+ this(query, null, datasetGraph, context, qeFactory);
+ }
+
+ public QueryExecutionBase(Query query, Dataset dataset, DatasetGraph datasetGraph,
Context context, QueryEngineFactory qeFactory) {
this.query = query;
- this.dataset = dataset ;
+ this.dataset = formDataset(dataset, datasetGraph);
this.qeFactory = qeFactory ;
- this.dsg = (dataset == null) ? null : dataset.asDatasetGraph() ;
+ this.dsg = formDatasetGraph(datasetGraph, dataset);
this.context = Context.setupContextExec(context, dsg) ;
init() ;
}
+ private static Dataset formDataset(Dataset dataset, DatasetGraph datasetGraph) {
+ if ( dataset != null )
+ return dataset;
+ if ( datasetGraph != null )
+ return DatasetFactory.wrap(datasetGraph);
+ return null;
+ }
+
+ private static DatasetGraph formDatasetGraph(DatasetGraph datasetGraph, Dataset dataset) {
+ if ( datasetGraph != null )
+ return datasetGraph;
+ if ( dataset != null )
+ return dataset.asDatasetGraph();
+ return null;
+ }
+
private void init() {
if ( query != null )
context.put(ARQConstants.sysCurrentQuery, query) ;