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 2012/11/01 09:43:03 UTC
svn commit: r1404501 - in
/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang:
ParserQueryBase.java SPARQLParserBase.java arq/ARQParserBase.java
sparql_10/SPARQLParser10Base.java sparql_11/SPARQLParser11Base.java
Author: andy
Date: Thu Nov 1 08:43:03 2012
New Revision: 1404501
URL: http://svn.apache.org/viewvc?rev=1404501&view=rev
Log:
JENA-343 fixed
Rename ParserQueryBase as SPARQLParserBase (because it is the base for update and query)
Added:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/SPARQLParserBase.java
- copied, changed from r1402248, jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_10/SPARQLParser10Base.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_11/SPARQLParser11Base.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java?rev=1404501&r1=1404500&r2=1404501&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java Thu Nov 1 08:43:03 2012
@@ -18,265 +18,9 @@
package com.hp.hpl.jena.sparql.lang;
-import java.util.* ;
-
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.query.Query ;
-import com.hp.hpl.jena.query.QueryParseException ;
-import com.hp.hpl.jena.sparql.ARQInternalErrorException ;
-import com.hp.hpl.jena.sparql.core.Var ;
-import com.hp.hpl.jena.sparql.engine.binding.Binding ;
-import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
-import com.hp.hpl.jena.sparql.engine.binding.BindingMap ;
-import com.hp.hpl.jena.sparql.modify.request.QuadAcc ;
-import com.hp.hpl.jena.sparql.modify.request.QuadDataAcc ;
-import com.hp.hpl.jena.sparql.util.LabelToNodeMap ;
-import com.hp.hpl.jena.update.Update ;
-import com.hp.hpl.jena.update.UpdateRequest ;
-
-/** Class that has all the parse event operations and other query/update specific things */
-public class ParserQueryBase extends ParserBase
-{
- private Deque<Query> stack = new ArrayDeque<Query>() ;
- protected Query query ;
-
- public void setQuery(Query q)
- {
- query = q ;
- setPrologue(q) ;
- }
-
- public Query getQuery() { return query ; }
-
- // The ARQ parser is both query and update languages.
-
-// // ---- SPARQL/Update (Submission)
-// private UpdateRequest requestSubmission = null ;
-//
-// protected UpdateRequest getUpdateRequestSubmission() { return requestSubmission ; }
-// public void setUpdateRequest(UpdateRequest request)
-// {
-// setPrologue(request) ;
-// this.requestSubmission = request ;
-// // And create a query because we may have nested selects.
-// this.query = new Query () ;
-// }
-
- // SPARQL Update (W3C RECommendation)
- private UpdateRequest request = null ;
-
- // Places to push settings across points where we reset.
- private boolean oldBNodesAreVariables ;
- private boolean oldBNodesAreAllowed ;
-
- // Count of subSelect nesting.
- // Level 0 is top level.
- // Level -1 is not in a pattern WHERE clause.
- private int queryLevel = -1 ;
- private Deque<Set<String>> stackPreviousLabels = new ArrayDeque<Set<String>>() ;
- private Deque<LabelToNodeMap> stackCurrentLabels = new ArrayDeque<LabelToNodeMap>() ;
-
- protected UpdateRequest getUpdateRequest() { return request ; }
- public void setUpdateRequest(UpdateRequest request)
- {
- this.request = request ;
- this.query = new Query() ;
- setPrologue(request) ;
- }
-
- // Signal start/finish of units
-
- protected void startQuery() {}
- protected void finishQuery() {}
-
- protected void startUpdateRequest() {}
- protected void finishUpdateRequest() {}
-
-// protected void startBasicGraphPattern()
-// { activeLabelMap.clear() ; }
-//
-// protected void endBasicGraphPattern()
-// { oldLabels.addAll(activeLabelMap.getLabels()) ; }
-
- protected void startUpdateOperation() {}
- protected void finishUpdateOperation() {}
-
- protected void startModifyUpdate() { }
- protected void finishModifyUpdate() {}
-
- protected void startDataInsert(QuadDataAcc qd, int line, int col)
- {
- oldBNodesAreVariables = getBNodesAreVariables() ;
- setBNodesAreVariables(false) ;
- activeLabelMap.clear() ;
- }
-
- protected void finishDataInsert(QuadDataAcc qd, int line, int col)
- {
- previousLabels.addAll(activeLabelMap.getLabels()) ;
- activeLabelMap.clear() ;
- setBNodesAreVariables(oldBNodesAreVariables) ;
- }
-
- protected void startDataDelete(QuadDataAcc qd,int line, int col)
- {
- oldBNodesAreAllowed = getBNodesAreAllowed() ;
- setBNodesAreAllowed(false) ;
- }
-
- protected void finishDataDelete(QuadDataAcc qd, int line, int col)
- {
- setBNodesAreAllowed(oldBNodesAreAllowed) ;
- }
-
- // These can be nested with subSELECTs but subSELECTs share bNodeLabel state.
- protected void startWherePattern()
- {
- queryLevel += 1 ;
- if ( queryLevel == 0 )
- {
- pushLabelState() ;
- clearLabelState() ;
- }
- }
-
- protected void finishWherePattern()
- {
- if ( queryLevel == 0 )
- popLabelState() ;
- queryLevel -= 1 ;
- }
-
- // This holds the accumulation of labels from earlier INSERT DATA
- // across template creation (bNode in templates get cloned before
- // going into the data).
-
- protected void startInsertTemplate(QuadAcc qd, int line, int col)
- {
- oldBNodesAreVariables = getBNodesAreVariables() ;
- setBNodesAreVariables(false) ;
- pushLabelState() ;
- }
-
- protected void finishInsertTemplate(QuadAcc qd, int line, int col)
- {
- setBNodesAreVariables(oldBNodesAreVariables) ;
- // Restore accumulated labels.
- popLabelState() ;
- }
-
- // No bNodes in delete templates.
- protected void startDeleteTemplate(QuadAcc qd, int line, int col)
- {
- oldBNodesAreAllowed = getBNodesAreAllowed() ;
- setBNodesAreAllowed(false) ;
- }
-
- protected void finishDeleteTemplate(QuadAcc qd, int line, int col)
- {
- setBNodesAreAllowed(oldBNodesAreAllowed) ;
- }
-
- protected void emitUpdate(Update update)
- {
- request.add(update) ;
- }
-
- protected void startSubSelect(int line, int col)
- {
- if ( query == null )
- throw new ARQInternalErrorException("Parser query object is null") ;
- stack.push(query) ;
- query = new Query(getPrologue()) ;
- }
-
- protected Query endSubSelect(int line, int column)
- {
- Query subQuery = query ;
- if ( ! subQuery.isSelectType() )
- throwParseException("Subquery not a SELECT query", line, column) ;
- query = stack.pop();
- return subQuery ;
- }
-
- private List<Var> variables = null ;
- private List<Binding> values = null ;
- private int currentColumn = -1 ;
-
- protected void startValuesClause(int line, int col)
- {
- variables = new ArrayList<Var>() ;
- values = new ArrayList<Binding>() ;
- }
-
- protected void finishValuesClause(int line, int col)
- {
- getQuery().setValuesDataBlock(variables, values) ;
- }
-
- protected void startInlineData(List<Var> vars, List<Binding> rows, int line, int col)
- {
- variables = vars ;
- values = rows ;
- }
-
- protected void finishInlineData(int line, int col)
- {}
-
- private BindingMap currentValueRow() { return (BindingMap)values.get(values.size()-1) ; }
-
- protected void emitDataBlockVariable(Var v) { variables.add(v) ; }
-
- protected void startDataBlockValueRow(int line, int col)
- {
- values.add(BindingFactory.create()) ;
- currentColumn = -1 ;
- }
-
- protected void emitDataBlockValue(Node n, int line, int col)
- {
- currentColumn++ ;
-
- if ( currentColumn >= variables.size() )
- // Exception will be thrown later when we have the complete row count.
- return ;
-
- Var v = variables.get(currentColumn) ;
- if ( n != null )
- currentValueRow().add(v, n) ;
-
- }
-
- protected void finishDataBlockValueRow(int line, int col)
- {
- //if ( variables.size() != currentValueRow().size() )
-
- if ( currentColumn+1 != variables.size() )
- {
- String msg = String.format("Mismatch: %d variables but %d values",variables.size(), currentColumn+1) ;
- msg = QueryParseException.formatMessage(msg, line, col) ;
- throw new QueryParseException(msg, line , col) ;
- }
- }
-
- private void pushLabelState()
- {
- // Hide used labels already tracked.
- stackPreviousLabels.push(previousLabels) ;
- stackCurrentLabels.push(activeLabelMap) ;
- previousLabels = new HashSet<String>() ;
- activeLabelMap.clear() ;
- }
-
- private void popLabelState()
- {
- previousLabels = stackPreviousLabels.pop() ;
- activeLabelMap = stackCurrentLabels.pop();
- }
-
- private void clearLabelState()
- {
- activeLabelMap.clear() ;
- previousLabels.clear() ;
- }
+/** @deprecated Use SPARQLParserBase */
+@Deprecated
+public class ParserQueryBase extends SPARQLParserBase
+{
+ protected ParserQueryBase() { super() ; }
}
Copied: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/SPARQLParserBase.java (from r1402248, jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/SPARQLParserBase.java?p2=jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/SPARQLParserBase.java&p1=jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java&r1=1402248&r2=1404501&rev=1404501&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserQueryBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/SPARQLParserBase.java Thu Nov 1 08:43:03 2012
@@ -35,10 +35,12 @@ import com.hp.hpl.jena.update.Update ;
import com.hp.hpl.jena.update.UpdateRequest ;
/** Class that has all the parse event operations and other query/update specific things */
-public class ParserQueryBase extends ParserBase
+public class SPARQLParserBase extends ParserBase
{
private Deque<Query> stack = new ArrayDeque<Query>() ;
protected Query query ;
+
+ protected SPARQLParserBase() {}
public void setQuery(Query q)
{
@@ -102,7 +104,7 @@ public class ParserQueryBase extends Par
protected void finishUpdateOperation() {}
protected void startModifyUpdate() { }
- protected void finishModifyUpdate() {}
+ protected void finishModifyUpdate() { }
protected void startDataInsert(QuadDataAcc qd, int line, int col)
{
@@ -160,9 +162,10 @@ public class ParserQueryBase extends Par
protected void finishInsertTemplate(QuadAcc qd, int line, int col)
{
- setBNodesAreVariables(oldBNodesAreVariables) ;
// Restore accumulated labels.
popLabelState() ;
+ // This also set the bnode syntax to node functionality - must be after popLabelState.
+ setBNodesAreVariables(oldBNodesAreVariables) ;
}
// No bNodes in delete templates.
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java?rev=1404501&r1=1404500&r2=1404501&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/arq/ARQParserBase.java Thu Nov 1 08:43:03 2012
@@ -21,10 +21,10 @@ import org.openjena.atlas.json.io.JSONHa
import org.openjena.atlas.json.io.JSONHandlerBase ;
import org.openjena.atlas.lib.NotImplemented ;
-import com.hp.hpl.jena.sparql.lang.ParserQueryBase ;
+import com.hp.hpl.jena.sparql.lang.SPARQLParserBase ;
class ARQParserBase
- extends ParserQueryBase
+ extends SPARQLParserBase
implements ARQParserConstants
{
// JSON
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_10/SPARQLParser10Base.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_10/SPARQLParser10Base.java?rev=1404501&r1=1404500&r2=1404501&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_10/SPARQLParser10Base.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_10/SPARQLParser10Base.java Thu Nov 1 08:43:03 2012
@@ -17,10 +17,10 @@
*/
package com.hp.hpl.jena.sparql.lang.sparql_10;
-import com.hp.hpl.jena.sparql.lang.ParserQueryBase ;
+import com.hp.hpl.jena.sparql.lang.SPARQLParserBase ;
class SPARQLParser10Base
- extends ParserQueryBase
+ extends SPARQLParserBase
implements SPARQLParser10Constants
{
}
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_11/SPARQLParser11Base.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_11/SPARQLParser11Base.java?rev=1404501&r1=1404500&r2=1404501&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_11/SPARQLParser11Base.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/sparql_11/SPARQLParser11Base.java Thu Nov 1 08:43:03 2012
@@ -17,10 +17,10 @@
*/
package com.hp.hpl.jena.sparql.lang.sparql_11;
-import com.hp.hpl.jena.sparql.lang.ParserQueryBase ;
+import com.hp.hpl.jena.sparql.lang.SPARQLParserBase ;
class SPARQLParser11Base
- extends ParserQueryBase
+ extends SPARQLParserBase
implements SPARQLParser11Constants
{
}