You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2013/07/15 14:59:37 UTC
svn commit: r1503219 -
/clerezza/trunk/rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java
Author: reto
Date: Mon Jul 15 12:59:37 2013
New Revision: 1503219
URL: http://svn.apache.org/r1503219
Log:
CLEREZZA-802: now using the TcProvider of the defaultgraph when enforcing fastlane and one is pecified
Modified:
clerezza/trunk/rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java
Modified: clerezza/trunk/rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java
URL: http://svn.apache.org/viewvc/clerezza/trunk/rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java?rev=1503219&r1=1503218&r2=1503219&view=diff
==============================================================================
--- clerezza/trunk/rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java (original)
+++ clerezza/trunk/rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java Mon Jul 15 12:59:37 2013
@@ -35,6 +35,7 @@ import org.apache.clerezza.rdf.core.MGra
import org.apache.clerezza.rdf.core.TripleCollection;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.access.security.TcAccessController;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
import org.apache.clerezza.rdf.core.impl.WriteBlockedMGraph;
import org.apache.clerezza.rdf.core.impl.WriteBlockedTripleCollection;
import org.apache.clerezza.rdf.core.sparql.NoQueryEngineException;
@@ -47,7 +48,6 @@ import org.apache.clerezza.rdf.core.spar
import org.apache.clerezza.rdf.core.sparql.query.DescribeQuery;
import org.apache.clerezza.rdf.core.sparql.query.Query;
import org.apache.clerezza.rdf.core.sparql.query.SelectQuery;
-import org.apache.clerezza.rdf.core.sparql.query.impl.SimpleStringQuerySerializer;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
@@ -279,24 +279,38 @@ public class TcManager extends TcProvide
* @return the resulting ResultSet, Graph or Boolean value
*/
public Object executeSparqlQuery(String query, TripleCollection defaultGraph) throws ParseException {
- return executeSparqlQuery(query, defaultGraph, false);
+ TcProvider singleTargetTcProvider = null;
+
+ final UriRef defaultGraphName = new UriRef("urn:x-temp:/kjsfadfhfasdffds");
+ final SparqlPreParser sparqlPreParser = new SparqlPreParser(this);
+ final Set<UriRef> referencedGraphs = sparqlPreParser.getReferredGraphs(query, defaultGraphName);
+ if ((referencedGraphs != null) && (!referencedGraphs.contains(defaultGraphName))) {
+ singleTargetTcProvider = getSingleTargetTcProvider(referencedGraphs);
+ }
+ if ((singleTargetTcProvider != null) && (singleTargetTcProvider instanceof QueryableTcProvider)) {
+ return ((QueryableTcProvider) singleTargetTcProvider).executeSparqlQuery(query, null);
+ }
+ final QueryEngine queryEngine = this.queryEngine;
+ if (queryEngine != null) {
+ return queryEngine.execute(this, defaultGraph, query);
+ } else {
+ throw new NoQueryEngineException();
+ }
}
/**
* Executes any sparql query. The type of the result object will vary
- * depending on the type of the query. If the defaultGraph is available
- * in this TcManages executeSparqlQuery(String, UriRef) should be used instead.
+ * depending on the type of the query. Note that this method only works for
+ * queries that do not need a default graph.
*
* @param query the sparql query to execute
- * @param defaultGraph the default graph against which to execute the query
- * if no FROM clause is present
* @param forceFastlane indicate whether to force fastlane usage.
* @return the resulting ResultSet, Graph or Boolean value
*/
- public Object executeSparqlQuery(String query, TripleCollection defaultGraph, boolean forceFastlane) throws ParseException {
+ public Object executeSparqlQuery(String query, boolean forceFastlane) throws ParseException {
TcProvider singleTargetTcProvider = null;
if (forceFastlane) {
- singleTargetTcProvider = getSingleTargetTcProvider();
+ singleTargetTcProvider = getSingleTargetTcProvider(Collections.EMPTY_SET);
} else {
final UriRef defaultGraphName = new UriRef("urn:x-temp:/kjsfadfhfasdffds");
SparqlPreParser sparqlPreParser = new SparqlPreParser(this);
@@ -311,20 +325,39 @@ public class TcManager extends TcProvide
}
final QueryEngine queryEngine = this.queryEngine;
if (queryEngine != null) {
- return queryEngine.execute(this, defaultGraph, query);
+ return queryEngine.execute(this, new SimpleMGraph(), query);
} else {
throw new NoQueryEngineException();
}
}
+ /**
+ * Executes any sparql query. The type of the result object will vary
+ * depending on the type of the query. If the defaultGraph is available
+ * in this TcManages executeSparqlQuery(String, UriRef) should be used instead.
+ *
+ * @param query the sparql query to execute
+ * @param defaultGraphName the graph to be used as default graph in the Sparql Graph Store
+ * @return the resulting ResultSet, Graph or Boolean value
+ */
public Object executeSparqlQuery(String query, UriRef defaultGraphName) throws ParseException {
return executeSparqlQuery(query, defaultGraphName, false);
}
+ /**
+ * Executes any sparql query. The type of the result object will vary
+ * depending on the type of the query. If the defaultGraph is available
+ * in this TcManages executeSparqlQuery(String, UriRef) should be used instead.
+ *
+ * @param query the sparql query to execute
+ * @param defaultGraph the graph to be used as default graph in the Sparql Graph Store
+ * @param forceFastlane indicate whether to force fastlane usage.
+ * @return the resulting ResultSet, Graph or Boolean value
+ */
public Object executeSparqlQuery(String query, UriRef defaultGraphName, boolean forceFastlane) throws ParseException {
TcProvider singleTargetTcProvider = null;
if (forceFastlane) {
- singleTargetTcProvider = getSingleTargetTcProvider();
+ singleTargetTcProvider = getSingleTargetTcProvider(Collections.singleton(defaultGraphName));
} else {
SparqlPreParser sparqlPreParser = new SparqlPreParser(this);
final Set<UriRef> referencedGraphs = sparqlPreParser.getReferredGraphs(query, defaultGraphName);
@@ -520,7 +553,4 @@ public class TcManager extends TcProvide
return singleTargetTcProvider;
}
- private TcProvider getSingleTargetTcProvider() {
- return providerList.first();
- }
}