This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit ff27e3df401ca5cbff414906d64ad9d026e16d7f Author: Andy Seaborne <[email protected]> AuthorDate: Sun May 4 10:34:24 2025 +0100 Format white space --- .../apache/jena/sparql/lang/LabelToNodeMap.java | 46 +++--- .../apache/jena/sparql/lang/ParserSPARQL10.java | 30 ++-- .../apache/jena/sparql/lang/ParserSPARQL11.java | 24 +-- .../jena/sparql/lang/ParserSPARQL11Update.java | 18 +-- .../apache/jena/sparql/lang/ParserSPARQL12.java | 24 +-- .../jena/sparql/lang/ParserSPARQL12Update.java | 18 +-- .../apache/jena/sparql/lang/QueryParserBase.java | 22 +-- .../org/apache/jena/sparql/lang/SPARQLParser.java | 14 +- .../apache/jena/sparql/lang/SPARQLParserBase.java | 122 +++++++-------- .../jena/sparql/lang/SPARQLParserFactory.java | 2 +- .../org/apache/jena/sparql/lang/UpdateParser.java | 12 +- .../jena/sparql/lang/UpdateParserFactory.java | 2 +- .../jena/sparql/lang/UpdateParserRegistry.java | 46 +++--- .../org/apache/jena/sparql/lang/TestUnescape.java | 56 +++---- .../org/apache/jena/sparql/lang/TestVarScope.java | 165 +++++++++++---------- 15 files changed, 302 insertions(+), 299 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/LabelToNodeMap.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/LabelToNodeMap.java index 532f6c168b..a7d2bb93bd 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/LabelToNodeMap.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/LabelToNodeMap.java @@ -18,15 +18,15 @@ package org.apache.jena.sparql.lang; -import java.util.HashMap ; -import java.util.Map ; -import java.util.Set ; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; -import org.apache.jena.graph.Node ; -import org.apache.jena.graph.NodeFactory ; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.NodeFactory; import org.apache.jena.riot.lang.LabelToNode; -import org.apache.jena.sparql.ARQConstants ; -import org.apache.jena.sparql.core.VarAlloc ; +import org.apache.jena.sparql.ARQConstants; +import org.apache.jena.sparql.core.VarAlloc; /** Map from _:* form to bNodes or variables. @@ -36,13 +36,13 @@ import org.apache.jena.sparql.core.VarAlloc ; public class LabelToNodeMap { - private Map<String, Node> bNodeLabels = new HashMap<>() ; + private Map<String, Node> bNodeLabels = new HashMap<>(); // Variables or bNodes? // True means variables (query pattern) // False means blank node (construct template) - boolean generateVars = false ; - VarAlloc allocator = null ; + boolean generateVars = false; + VarAlloc allocator = null; /** * Create blank nodes, with the same blank node returned for the same label. @@ -52,7 +52,7 @@ public class LabelToNodeMap */ @Deprecated public static LabelToNodeMap createBNodeMap() - { return new LabelToNodeMap(false, null) ; } + { return new LabelToNodeMap(false, null); } /** * Create variables (Var), starting from zero each time This means that parsing a @@ -62,32 +62,32 @@ public class LabelToNodeMap * @return LabelToNodeMap */ public static LabelToNodeMap createVarMap() - { return new LabelToNodeMap(true, new VarAlloc(ARQConstants.allocParserAnonVars) ) ; } + { return new LabelToNodeMap(true, new VarAlloc(ARQConstants.allocParserAnonVars) ); } private LabelToNodeMap(boolean genVars, VarAlloc allocator) { - generateVars = genVars ; - this.allocator = allocator ; + generateVars = genVars; + this.allocator = allocator; } - public Set<String> getLabels() { return bNodeLabels.keySet() ; } + public Set<String> getLabels() { return bNodeLabels.keySet(); } public Node asNode(String label) { - Node n = bNodeLabels.get(label) ; + Node n = bNodeLabels.get(label); if ( n != null ) - return n ; - n = allocNode() ; - bNodeLabels.put(label, n) ; - return n ; + return n; + n = allocNode(); + bNodeLabels.put(label, n); + return n; } public Node allocNode() { if ( generateVars ) - return allocAnonVariable() ; - return NodeFactory.createBlankNode() ; + return allocAnonVariable(); + return NodeFactory.createBlankNode(); } private Node allocAnonVariable() { - return allocator.allocVar() ; + return allocator.allocVar(); } public void clear() { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL10.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL10.java index 1474ca4777..e0c7999b3e 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL10.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL10.java @@ -18,22 +18,22 @@ package org.apache.jena.sparql.lang; -import java.io.Reader ; -import java.io.StringReader ; +import java.io.Reader; +import java.io.StringReader; -import org.apache.jena.atlas.logging.Log ; -import org.apache.jena.query.Query ; -import org.apache.jena.query.QueryException ; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.query.Syntax ; -import org.apache.jena.shared.JenaException ; -import org.apache.jena.sparql.lang.sparql_10.SPARQLParser10 ; -import org.apache.jena.sparql.syntax.Element ; -import org.apache.jena.sparql.syntax.Template ; +import org.apache.jena.atlas.logging.Log; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryException; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.query.Syntax; +import org.apache.jena.shared.JenaException; +import org.apache.jena.sparql.lang.sparql_10.SPARQLParser10; +import org.apache.jena.sparql.syntax.Element; +import org.apache.jena.sparql.syntax.Template; public class ParserSPARQL10 extends SPARQLParser { - private interface Action { void exec(SPARQLParser10 parser) throws Exception ; } + private interface Action { void exec(SPARQLParser10 parser) throws Exception; } @Override protected Query parse$(final Query query, String queryString) { @@ -67,8 +67,8 @@ public class ParserSPARQL10 extends SPARQLParser // All throwable handling. private static void perform(Query query, String string, Action action) { - Reader in = new StringReader(string) ; - SPARQLParser10 parser = new SPARQLParser10(in) ; + Reader in = new StringReader(string); + SPARQLParser10 parser = new SPARQLParser10(in); try { query.setStrict(true); parser.setQuery(query); @@ -92,7 +92,7 @@ public class ParserSPARQL10 extends SPARQLParser throw new QueryParseException(err.getMessage(), err, -1, -1); } catch (Throwable th) { Log.warn(ParserSPARQL10.class, "Unexpected throwable: ", th); - throw new QueryException(th.getMessage(), th) ; + throw new QueryException(th.getMessage(), th); } } } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java index f40b04f009..fc0b8fea77 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java @@ -18,22 +18,22 @@ package org.apache.jena.sparql.lang; -import java.io.Reader ; -import java.io.StringReader ; +import java.io.Reader; +import java.io.StringReader; -import org.apache.jena.atlas.logging.Log ; -import org.apache.jena.query.Query ; -import org.apache.jena.query.QueryException ; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.query.Syntax ; -import org.apache.jena.shared.JenaException ; -import org.apache.jena.sparql.lang.sparql_11.SPARQLParser11 ; -import org.apache.jena.sparql.syntax.Element ; -import org.apache.jena.sparql.syntax.Template ; +import org.apache.jena.atlas.logging.Log; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryException; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.query.Syntax; +import org.apache.jena.shared.JenaException; +import org.apache.jena.sparql.lang.sparql_11.SPARQLParser11; +import org.apache.jena.sparql.syntax.Element; +import org.apache.jena.sparql.syntax.Template; public class ParserSPARQL11 extends SPARQLParser { - private interface Action { void exec(SPARQLParser11 parser) throws Exception ; } + private interface Action { void exec(SPARQLParser11 parser) throws Exception; } @Override protected Query parse$(final Query query, String queryString) { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11Update.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11Update.java index ae9a1b66a6..e76e1503cf 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11Update.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11Update.java @@ -18,16 +18,16 @@ package org.apache.jena.sparql.lang; -import java.io.Reader ; +import java.io.Reader; -import org.apache.jena.atlas.logging.Log ; -import org.apache.jena.query.QueryException ; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.shared.JenaException ; +import org.apache.jena.atlas.logging.Log; +import org.apache.jena.query.QueryException; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.shared.JenaException; import org.apache.jena.sparql.core.Prologue; -import org.apache.jena.sparql.lang.sparql_11.SPARQLParser11 ; -import org.apache.jena.sparql.modify.UpdateSink ; -import org.apache.jena.update.UpdateException ; +import org.apache.jena.sparql.lang.sparql_11.SPARQLParser11; +import org.apache.jena.sparql.modify.UpdateSink; +import org.apache.jena.update.UpdateException; public class ParserSPARQL11Update extends UpdateParser { @@ -35,7 +35,7 @@ public class ParserSPARQL11Update extends UpdateParser @Override protected void executeParse(UpdateSink sink, Prologue prologue, Reader r) { - SPARQLParser11 parser = null ; + SPARQLParser11 parser = null; try { parser = new SPARQLParser11(r); parser.setUpdate(prologue, sink); diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12.java index a2baddb724..6db50ca3a7 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12.java @@ -18,22 +18,22 @@ package org.apache.jena.sparql.lang; -import java.io.Reader ; -import java.io.StringReader ; +import java.io.Reader; +import java.io.StringReader; -import org.apache.jena.atlas.logging.Log ; -import org.apache.jena.query.Query ; -import org.apache.jena.query.QueryException ; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.query.Syntax ; -import org.apache.jena.shared.JenaException ; -import org.apache.jena.sparql.lang.sparql_12.SPARQLParser12 ; -import org.apache.jena.sparql.syntax.Element ; -import org.apache.jena.sparql.syntax.Template ; +import org.apache.jena.atlas.logging.Log; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryException; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.query.Syntax; +import org.apache.jena.shared.JenaException; +import org.apache.jena.sparql.lang.sparql_12.SPARQLParser12; +import org.apache.jena.sparql.syntax.Element; +import org.apache.jena.sparql.syntax.Template; public class ParserSPARQL12 extends SPARQLParser { - private interface Action { void exec(SPARQLParser12 parser) throws Exception ; } + private interface Action { void exec(SPARQLParser12 parser) throws Exception; } @Override protected Query parse$(final Query query, String queryString) { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12Update.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12Update.java index ced6ba56bc..40313c8b8b 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12Update.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL12Update.java @@ -18,16 +18,16 @@ package org.apache.jena.sparql.lang; -import java.io.Reader ; +import java.io.Reader; -import org.apache.jena.atlas.logging.Log ; -import org.apache.jena.query.QueryException ; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.shared.JenaException ; +import org.apache.jena.atlas.logging.Log; +import org.apache.jena.query.QueryException; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.shared.JenaException; import org.apache.jena.sparql.core.Prologue; -import org.apache.jena.sparql.lang.sparql_12.SPARQLParser12 ; -import org.apache.jena.sparql.modify.UpdateSink ; -import org.apache.jena.update.UpdateException ; +import org.apache.jena.sparql.lang.sparql_12.SPARQLParser12; +import org.apache.jena.sparql.modify.UpdateSink; +import org.apache.jena.update.UpdateException; public class ParserSPARQL12Update extends UpdateParser { @@ -35,7 +35,7 @@ public class ParserSPARQL12Update extends UpdateParser @Override protected void executeParse(UpdateSink sink, Prologue prologue, Reader r) { - SPARQLParser12 parser = null ; + SPARQLParser12 parser = null; try { parser = new SPARQLParser12(r); parser.setUpdate(prologue, sink); diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/QueryParserBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/QueryParserBase.java index 122a2d2e9b..398273125f 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/QueryParserBase.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/QueryParserBase.java @@ -59,18 +59,18 @@ import org.slf4j.LoggerFactory; /** Base class parsers, mainly SPARQL related */ public class QueryParserBase { - protected final Node XSD_TRUE = NodeConst.nodeTrue ; - protected final Node XSD_FALSE = NodeConst.nodeFalse ; + protected final Node XSD_TRUE = NodeConst.nodeTrue; + protected final Node XSD_FALSE = NodeConst.nodeFalse; - protected final Node nRDFtype = NodeConst.nodeRDFType ; + protected final Node nRDFtype = NodeConst.nodeRDFType; - protected final Node nRDFnil = NodeConst.nodeNil ; - protected final Node nRDFfirst = NodeConst.nodeFirst ; - protected final Node nRDFrest = NodeConst.nodeRest ; + protected final Node nRDFnil = NodeConst.nodeNil; + protected final Node nRDFfirst = NodeConst.nodeFirst; + protected final Node nRDFrest = NodeConst.nodeRest; - protected final Node nRDFsubject = RDF.Nodes.subject ; - protected final Node nRDFpredicate = RDF.Nodes.predicate ; - protected final Node nRDFobject = RDF.Nodes.object ; + protected final Node nRDFsubject = RDF.Nodes.subject; + protected final Node nRDFpredicate = RDF.Nodes.predicate; + protected final Node nRDFobject = RDF.Nodes.object; protected final Node nRDFreifies = RDF.Nodes.reifies; @@ -215,7 +215,7 @@ public class QueryParserBase { // Because of Java (Java strings have surrogate pairs) we only detect singleton surrogates. protected void checkString(String string, int line, int column) { // Checks for bare surrogate pairs. - for ( int i = 0 ; i < string.length() ; i++ ) { + for ( int i = 0; i < string.length(); i++ ) { // Not "codePointAt" which does surrogate processing. char ch = string.charAt(i); @@ -667,7 +667,7 @@ public class QueryParserBase { int len = s.length(); StringBuilder sb = new StringBuilder(); - for ( int i = 0 ; i < len ; i++ ) { + for ( int i = 0; i < len; i++ ) { char ch = s.charAt(i); // Keep line and column numbers. switch (ch) { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParser.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParser.java index a0122b240a..27d5e9b958 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParser.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParser.java @@ -18,9 +18,9 @@ package org.apache.jena.sparql.lang; -import org.apache.jena.query.Query ; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.query.Syntax ; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.query.Syntax; /** This class provides the root of lower level access to all the parsers. * Each subclass hides the details of the per-language exception handlers and other @@ -30,13 +30,13 @@ import org.apache.jena.query.Syntax ; public abstract class SPARQLParser { public final Query parse(Query query, String queryString) throws QueryParseException { - Query parsedQuery = parse$(query, queryString) ; - validateParsedQuery(parsedQuery) ; + Query parsedQuery = parse$(query, queryString); + validateParsedQuery(parsedQuery); parsedQuery.resetResultVars(); - return parsedQuery ; + return parsedQuery; } - protected abstract Query parse$(Query query, String queryString) throws QueryParseException ; + protected abstract Query parse$(Query query, String queryString) throws QueryParseException; public static boolean canParse(Syntax syntaxURI) { return SPARQLParserRegistry.get().containsFactory(syntaxURI); diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java index 4af45c042f..13d4aaa47c 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserBase.java @@ -18,19 +18,19 @@ package org.apache.jena.sparql.lang; -import java.util.* ; - -import org.apache.jena.graph.Node ; -import org.apache.jena.query.Query ; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.sparql.ARQInternalErrorException ; -import org.apache.jena.sparql.core.Prologue ; -import org.apache.jena.sparql.core.Var ; -import org.apache.jena.sparql.engine.binding.Binding ; +import java.util.*; + +import org.apache.jena.graph.Node; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.sparql.ARQInternalErrorException; +import org.apache.jena.sparql.core.Prologue; +import org.apache.jena.sparql.core.Var; +import org.apache.jena.sparql.engine.binding.Binding; import org.apache.jena.sparql.engine.binding.BindingBuilder; -import org.apache.jena.sparql.modify.UpdateSink ; -import org.apache.jena.sparql.modify.request.* ; -import org.apache.jena.update.Update ; +import org.apache.jena.sparql.modify.UpdateSink; +import org.apache.jena.sparql.modify.request.*; +import org.apache.jena.update.Update; /** Class that has all the parse event operations and other query/update specific things */ public class SPARQLParserBase extends QueryParserBase { @@ -44,37 +44,37 @@ public class SPARQLParserBase extends QueryParserBase { setPrologue(q); } - public Query getQuery() { return query ; } + public Query getQuery() { return query; } // The ARQ parser is both query and update languages. // // ---- SPARQL/Update (Submission) -// private UpdateRequest requestSubmission = null ; +// private UpdateRequest requestSubmission = null; // -// protected UpdateRequest getUpdateRequestSubmission() { return requestSubmission ; } +// protected UpdateRequest getUpdateRequestSubmission() { return requestSubmission; } // public void setUpdateRequest(UpdateRequest request) // { -// setPrologue(request) ; -// this.requestSubmission = request ; +// setPrologue(request); +// this.requestSubmission = request; // // And create a query because we may have nested selects. -// this.query = new Query () ; +// this.query = new Query (); // } - private UpdateSink sink = null ; + private UpdateSink sink = null; // Places to push settings across points where we reset. - private boolean oldBNodesAreVariables ; - private boolean oldBNodesAreAllowed ; + 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<>() ; - private Deque<LabelToNodeMap> stackCurrentLabels = new ArrayDeque<>() ; + private int queryLevel = -1; + private Deque<Set<String>> stackPreviousLabels = new ArrayDeque<>(); + private Deque<LabelToNodeMap> stackCurrentLabels = new ArrayDeque<>(); public void setUpdate(Prologue prologue, UpdateSink sink) { - this.sink = sink ; + this.sink = sink; this.query = new Query(); setPrologue(prologue); } @@ -88,10 +88,10 @@ public class SPARQLParserBase extends QueryParserBase { protected void finishUpdateRequest() {} // protected void startBasicGraphPattern() -// { activeLabelMap.clear() ; } +// { activeLabelMap.clear(); } // // protected void endBasicGraphPattern() -// { oldLabels.addAll(activeLabelMap.getLabels()) ; } +// { oldLabels.addAll(activeLabelMap.getLabels()); } protected void startUpdateOperation() {} protected void finishUpdateOperation() {} @@ -176,9 +176,9 @@ public class SPARQLParserBase extends QueryParserBase { private static UpdateVisitor v = new UpdateVisitorBase() { @Override public void visit(UpdateModify mod) { - SyntaxVarScope.checkElement(mod.getWherePattern()) ; + SyntaxVarScope.checkElement(mod.getWherePattern()); } - } ; + }; private void verifyUpdate(Update update) { update.visit(v); @@ -194,13 +194,13 @@ public class SPARQLParserBase extends QueryParserBase { protected void pushQuery() { if ( query == null ) - throw new ARQInternalErrorException("Parser query object is null") ; - stack.push(query) ; + throw new ARQInternalErrorException("Parser query object is null"); + stack.push(query); } protected void startSubSelect(int line, int col) { pushQuery(); - query = newSubQuery(getPrologue()) ; + query = newSubQuery(getPrologue()); } protected Query newSubQuery(Prologue progloue) { @@ -214,89 +214,89 @@ public class SPARQLParserBase extends QueryParserBase { } protected Query endSubSelect(int line, int column) { - Query subQuery = query ; + Query subQuery = query; if ( ! subQuery.isSelectType() ) - throwParseException("Subquery not a SELECT query", line, column) ; + throwParseException("Subquery not a SELECT query", line, column); popQuery(); - return subQuery ; + return subQuery; } - private List<Var> variables = null ; - private List<Binding> values = null ; + private List<Var> variables = null; + private List<Binding> values = null; private BindingBuilder rowBuilder; - private int currentColumn = -1 ; + private int currentColumn = -1; // Trailing VALUES. protected void startValuesClause(int line, int col) { - variables = new ArrayList<>() ; - values = new ArrayList<>() ; + variables = new ArrayList<>(); + values = new ArrayList<>(); rowBuilder = Binding.builder(); } protected void finishValuesClause(int line, int col) { - getQuery().setValuesDataBlock(variables, values) ; + getQuery().setValuesDataBlock(variables, values); } // ElementData. VALUES in the WHERE clause. protected void startInlineData(List<Var> vars, List<Binding> rows, int line, int col) { - variables = vars ; - values = rows ; + variables = vars; + values = rows; rowBuilder = Binding.builder(); } protected void finishInlineData(int line, int col) {} - protected void emitDataBlockVariable(Var v) { variables.add(v) ; } + protected void emitDataBlockVariable(Var v) { variables.add(v); } protected void startDataBlockValueRow(int line, int col) { rowBuilder.reset(); - currentColumn = -1 ; + currentColumn = -1; } protected void emitDataBlockValue(Node n, int line, int col) { - currentColumn++ ; + currentColumn++; if ( currentColumn >= variables.size() ) // Exception will be thrown later when we have the complete row count. - return ; + return; - Var v = variables.get(currentColumn) ; + Var v = variables.get(currentColumn); if ( n != null && ! n.isConcrete() ) { - String msg = QueryParseException.formatMessage("Term is not concrete: "+n, line, col) ; - throw new QueryParseException(msg, line, col) ; + String msg = QueryParseException.formatMessage("Term is not concrete: "+n, line, col); + throw new QueryParseException(msg, line, col); } if ( n != null ) - rowBuilder.add(v, n) ; + rowBuilder.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) ; + 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); } values.add(rowBuilder.build()); } private void pushLabelState() { // Hide used labels already tracked. - stackPreviousLabels.push(previousLabels) ; - stackCurrentLabels.push(activeLabelMap) ; - previousLabels = new HashSet<>() ; - activeLabelMap.clear() ; + stackPreviousLabels.push(previousLabels); + stackCurrentLabels.push(activeLabelMap); + previousLabels = new HashSet<>(); + activeLabelMap.clear(); } private void popLabelState() { - previousLabels = stackPreviousLabels.pop() ; + previousLabels = stackPreviousLabels.pop(); activeLabelMap = stackCurrentLabels.pop(); } private void clearLabelState() { - activeLabelMap.clear() ; - previousLabels.clear() ; + activeLabelMap.clear(); + previousLabels.clear(); } } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserFactory.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserFactory.java index eeb85061a3..d7aa6526cb 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserFactory.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/SPARQLParserFactory.java @@ -18,7 +18,7 @@ package org.apache.jena.sparql.lang; -import org.apache.jena.query.Syntax ; +import org.apache.jena.query.Syntax; public interface SPARQLParserFactory { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParser.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParser.java index 8f6382424c..1a1f4fc8dc 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParser.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParser.java @@ -19,16 +19,16 @@ package org.apache.jena.sparql.lang; import java.io.FileReader; -import java.io.InputStream ; -import java.io.Reader ; +import java.io.InputStream; +import java.io.Reader; import java.io.StringReader; import org.apache.jena.atlas.logging.Log; -import org.apache.jena.query.QueryParseException ; -import org.apache.jena.query.Syntax ; +import org.apache.jena.query.QueryParseException; +import org.apache.jena.query.Syntax; import org.apache.jena.sparql.core.Prologue; -import org.apache.jena.sparql.modify.UpdateSink ; -import org.apache.jena.util.FileUtils ; +import org.apache.jena.sparql.modify.UpdateSink; +import org.apache.jena.util.FileUtils; /** * This class provides the root of lower level access to all the update parsers. diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserFactory.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserFactory.java index 72b05af19a..b42ba6b013 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserFactory.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserFactory.java @@ -18,7 +18,7 @@ package org.apache.jena.sparql.lang; -import org.apache.jena.query.Syntax ; +import org.apache.jena.query.Syntax; public interface UpdateParserFactory { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserRegistry.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserRegistry.java index 69710d68c2..c96bf350b7 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserRegistry.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/UpdateParserRegistry.java @@ -18,15 +18,15 @@ package org.apache.jena.sparql.lang; -import java.util.HashMap ; -import java.util.Map ; +import java.util.HashMap; +import java.util.Map; -import org.apache.jena.query.Syntax ; +import org.apache.jena.query.Syntax; public class UpdateParserRegistry { // the map contains the registered factories hashed by the syntaxes - private Map<Syntax, UpdateParserFactory> factories = new HashMap<>() ; + private Map<Syntax, UpdateParserFactory> factories = new HashMap<>(); // Singleton static UpdateParserRegistry registry = null; @@ -39,30 +39,30 @@ public class UpdateParserRegistry private UpdateParserRegistry() {} private static synchronized void init() { - UpdateParserRegistry reg = new UpdateParserRegistry() ; + UpdateParserRegistry reg = new UpdateParserRegistry(); reg.add(Syntax.syntaxSPARQL_11, new UpdateParserFactory() { @Override - public boolean accept( Syntax syntax ) { return Syntax.syntaxSPARQL_11.equals(syntax) ; } + public boolean accept( Syntax syntax ) { return Syntax.syntaxSPARQL_11.equals(syntax); } @Override - public UpdateParser create( Syntax syntax ) { return new ParserSPARQL11Update() ; } }) ; + public UpdateParser create( Syntax syntax ) { return new ParserSPARQL11Update(); } }); reg.add(Syntax.syntaxSPARQL_12, new UpdateParserFactory() { @Override - public boolean accept( Syntax syntax ) { return Syntax.syntaxSPARQL_12.equals(syntax) ; } + public boolean accept( Syntax syntax ) { return Syntax.syntaxSPARQL_12.equals(syntax); } @Override - public UpdateParser create( Syntax syntax ) { return new ParserSPARQL12Update() ; } }) ; + public UpdateParser create( Syntax syntax ) { return new ParserSPARQL12Update(); } }); reg.add(Syntax.syntaxARQ, new UpdateParserFactory() { @Override - public boolean accept(Syntax syntax ) { return Syntax.syntaxARQ.equals(syntax) ; } + public boolean accept(Syntax syntax ) { return Syntax.syntaxARQ.equals(syntax); } @Override - public UpdateParser create ( Syntax syntax ) { return new ParserARQUpdate() ; } }) ; + public UpdateParser create ( Syntax syntax ) { return new ParserARQUpdate(); } }); - registry = reg ; + registry = reg; } /** Return a suitable factory for the given syntax @@ -72,7 +72,7 @@ public class UpdateParserRegistry */ public static UpdateParserFactory findFactory(Syntax syntax) - { return get().getFactory(syntax) ; } + { return get().getFactory(syntax); } /** Return a suitable parser for the given syntax * @@ -81,7 +81,7 @@ public class UpdateParserRegistry */ public static UpdateParser parser(Syntax syntax) - { return get().createParser(syntax) ; } + { return get().createParser(syntax); } /** Return a suitable parser factory for the given syntax * @@ -90,7 +90,7 @@ public class UpdateParserRegistry */ public UpdateParserFactory getFactory(Syntax syntax) - { return factories.get(syntax) ; } + { return factories.get(syntax); } /** Return a suitable parser for the given syntax * @@ -99,8 +99,8 @@ public class UpdateParserRegistry */ public UpdateParser createParser(Syntax syntax) { - UpdateParserFactory f = getFactory(syntax) ; - return ( f != null ) ? f.create(syntax) : null ; + UpdateParserFactory f = getFactory(syntax); + return ( f != null ) ? f.create(syntax) : null; } /** Register the given parser factory for the specified syntax. @@ -108,7 +108,7 @@ public class UpdateParserRegistry * given one. */ public static void addFactory(Syntax syntax, UpdateParserFactory f) - { get().add(syntax, f) ; } + { get().add(syntax, f); } /** Register the given parser factory for the specified syntax. * If another factory is registered for the syntax it is replaced by the @@ -118,23 +118,23 @@ public class UpdateParserRegistry { if ( ! f.accept(syntax) ) throw new IllegalArgumentException( "The given parser factory does not accept the specified syntax." ); - factories.put(syntax, f) ; + factories.put(syntax, f); } /** Unregister the parser factory associated with the given syntax */ public static void removeFactory(Syntax syntax) - { get().remove(syntax) ; } + { get().remove(syntax); } /** Unregister the parser factory associated with the given syntax */ public void remove(Syntax syntax) - { factories.remove(syntax) ; } + { factories.remove(syntax); } /** Checks whether a parser factory is registered for the given syntax */ public static boolean containsParserFactory(Syntax syntax) - { return get().containsFactory(syntax) ; } + { return get().containsFactory(syntax); } /** Checks whether a parser factory is registered for the given syntax */ public boolean containsFactory(Syntax syntax) - { return factories.containsKey(syntax) ; } + { return factories.containsKey(syntax); } } diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestUnescape.java b/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestUnescape.java index 1bd3765806..a80e241dcd 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestUnescape.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestUnescape.java @@ -21,37 +21,37 @@ package org.apache.jena.sparql.lang; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; -import org.apache.jena.query.QueryParseException ; -import org.junit.Test ; +import org.apache.jena.query.QueryParseException; +import org.junit.Test; public class TestUnescape { - @Test public void testEsc01() { execTest("x\\uabcd", "x\uabcd") ; } - @Test public void testEsc02() { execTest("\\uabcdx", "\uabcdx") ; } - @Test public void testEsc03() { execTest("1234\\uabcd1234", "1234\uabcd1234") ; } - @Test public void testEsc04() { execTestFail("\\X") ; } - @Test public void testEsc05() { execTestFail("\\Xz") ; } - @Test public void testEsc06() { execTestFail("a\\X") ; } - - @Test public void testEscUni01() { execTestFail("\\uabck") ; } - @Test public void testEscUni02() { execTestFail("\\uab") ; } - @Test public void testEscUni03() { execTestFail("\\uabc") ; } - @Test public void testEscUni04() { execTestFail("\\ua") ; } - @Test public void testEscUni05() { execTestFail("\\u") ; } - @Test public void testEscUni06() { execTestFail("\\") ; } - @Test public void testEscUni07() { execTest("\\u0020", " ") ; } - @Test public void testEscUni08() { execTest("\\uFFFF", "\uFFFF") ; } - @Test public void testEscUni09() { execTest("\\u0000", "\u0000") ; } - @Test public void testEscUni10() { execTestFail("\\U0000") ; } - @Test public void testEscUni11() { execTestFail("\\U0000A") ; } - @Test public void testEscUni12() { execTestFail("\\U0000AB") ; } - @Test public void testEscUni13() { execTestFail("\\U0000ABC") ; } - @Test public void testEscUni14() { execTest("\\U0000ABCD", "\uABCD") ; } - @Test public void testEscUni15() { execTestFail("\\U0000") ; } - @Test public void testEscUni16() { execTest("\\U00000000", "\u0000") ; } - @Test public void testEscUni17() { execTest("x\\tx\\nx\\r", "x\tx\nx\r") ; } - @Test public void testEscUni18() { execTest("x\\t\\n\\r", "x\t\n\r") ; } - + @Test public void testEsc01() { execTest("x\\uabcd", "x\uabcd"); } + @Test public void testEsc02() { execTest("\\uabcdx", "\uabcdx"); } + @Test public void testEsc03() { execTest("1234\\uabcd1234", "1234\uabcd1234"); } + @Test public void testEsc04() { execTestFail("\\X"); } + @Test public void testEsc05() { execTestFail("\\Xz"); } + @Test public void testEsc06() { execTestFail("a\\X"); } + + @Test public void testEscUni01() { execTestFail("\\uabck"); } + @Test public void testEscUni02() { execTestFail("\\uab"); } + @Test public void testEscUni03() { execTestFail("\\uabc"); } + @Test public void testEscUni04() { execTestFail("\\ua"); } + @Test public void testEscUni05() { execTestFail("\\u"); } + @Test public void testEscUni06() { execTestFail("\\"); } + @Test public void testEscUni07() { execTest("\\u0020", " "); } + @Test public void testEscUni08() { execTest("\\uFFFF", "\uFFFF"); } + @Test public void testEscUni09() { execTest("\\u0000", "\u0000"); } + @Test public void testEscUni10() { execTestFail("\\U0000"); } + @Test public void testEscUni11() { execTestFail("\\U0000A"); } + @Test public void testEscUni12() { execTestFail("\\U0000AB"); } + @Test public void testEscUni13() { execTestFail("\\U0000ABC"); } + @Test public void testEscUni14() { execTest("\\U0000ABCD", "\uABCD"); } + @Test public void testEscUni15() { execTestFail("\\U0000"); } + @Test public void testEscUni16() { execTest("\\U00000000", "\u0000"); } + @Test public void testEscUni17() { execTest("x\\tx\\nx\\r", "x\tx\nx\r"); } + @Test public void testEscUni18() { execTest("x\\t\\n\\r", "x\t\n\r"); } + private void execTestFail(String input) { try { String s = QueryParserBase.unescapeStr(input); diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestVarScope.java b/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestVarScope.java index 6bc712e9d7..b0f0c3ee93 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestVarScope.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/lang/TestVarScope.java @@ -18,129 +18,132 @@ package org.apache.jena.sparql.lang; -import org.apache.jena.query.Query ; -import org.apache.jena.query.QueryException ; -import org.apache.jena.query.QueryFactory ; -import org.junit.Test ; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryException; +import org.apache.jena.query.QueryFactory; +import org.junit.Test; public class TestVarScope { private static void scope(String queryStr) { - Query query = QueryFactory.create(queryStr) ; + Query query = QueryFactory.create(queryStr); } - - @Test public void scope_01() { scope("SELECT ?x { ?s ?p ?o }") ; } - @Test public void scope_02() { scope("SELECT ?s { ?s ?p ?o }") ; } - - @Test public void scope_03() { scope("SELECT (?o+1 AS ?x) { ?s ?p ?o }") ; } - + + @Test public void scope_01() { scope("SELECT ?x { ?s ?p ?o }"); } + @Test public void scope_02() { scope("SELECT ?s { ?s ?p ?o }"); } + + @Test public void scope_03() { scope("SELECT (?o+1 AS ?x) { ?s ?p ?o }"); } + @Test(expected=QueryException.class) - public void scope_04() { scope("SELECT (?o+1 AS ?o) { ?s ?p ?o }") ; } - + public void scope_04() { scope("SELECT (?o+1 AS ?o) { ?s ?p ?o }"); } + @Test(expected=QueryException.class) - public void scope_05() { scope("SELECT (?o+1 AS ?x) (?o+1 AS ?x) { ?s ?p ?o }") ; } + public void scope_05() { scope("SELECT (?o+1 AS ?x) (?o+1 AS ?x) { ?s ?p ?o }"); } + + @Test public void scope_06() { scope("SELECT (?z+1 AS ?x) { ?s ?p ?o } GROUP BY (?o+5 AS ?z)"); } - @Test public void scope_06() { scope("SELECT (?z+1 AS ?x) { ?s ?p ?o } GROUP BY (?o+5 AS ?z)") ; } - @Test(expected=QueryException.class) - public void scope_07() { scope("SELECT (?o+1 AS ?x) { ?s ?p ?o } GROUP BY (?o+5 AS ?x)") ; } + public void scope_07() { scope("SELECT (?o+1 AS ?x) { ?s ?p ?o } GROUP BY (?o+5 AS ?x)"); } - @Test public void scope_08() { scope("SELECT (count(*) AS ?X) (?X+1 AS ?Z) { ?s ?p ?o }") ; } + @Test public void scope_08() { scope("SELECT (count(*) AS ?X) (?X+1 AS ?Z) { ?s ?p ?o }"); } + + @Test public void scope_09() { scope("SELECT (count(*) AS ?X) (?X+?o AS ?Z) { ?s ?p ?o } GROUP BY ?o"); } + + @Test public void scope_10() { scope("SELECT (?o+1 AS ?x) { ?s ?p ?o MINUS { ?s ?p ?x} } "); } - @Test public void scope_09() { scope("SELECT (count(*) AS ?X) (?X+?o AS ?Z) { ?s ?p ?o } GROUP BY ?o") ; } - - @Test public void scope_10() { scope("SELECT (?o+1 AS ?x) { ?s ?p ?o MINUS { ?s ?p ?x} } ") ; } - @Test(expected=QueryException.class) - public void scope_15() { scope("SELECT (?o+1 AS ?x) { { SELECT (123 AS ?x) {?s ?p ?o } } } ") ; } - + public void scope_15() { scope("SELECT (?o+1 AS ?x) { { SELECT (123 AS ?x) {?s ?p ?o } } } "); } + @Test(expected=QueryException.class) - public void scope_16() { scope("SELECT (?o+1 AS ?o) { { SELECT (123 AS ?x) {?s ?p ?o } } } ") ; } + public void scope_16() { scope("SELECT (?o+1 AS ?o) { { SELECT (123 AS ?x) {?s ?p ?o } } } "); } @Test(expected=QueryException.class) - public void scope_17() { scope("SELECT (?o+1 AS ?o) { { SELECT (123 AS ?x) {?s ?p ?o FILTER(?x > 57)} } } ") ; } + public void scope_17() { scope("SELECT (?o+1 AS ?o) { { SELECT (123 AS ?x) {?s ?p ?o FILTER(?x > 57)} } } "); } + + @Test public void scope_20() { scope("SELECT ?x { ?x ?p ?o } GROUP BY ?x"); } - @Test public void scope_20() { scope("SELECT ?x { ?x ?p ?o } GROUP BY ?x") ; } - @Test (expected=QueryException.class) - public void scope_21() { scope("SELECT ?o { ?x ?p ?o } GROUP BY ?x") ; } + public void scope_21() { scope("SELECT ?o { ?x ?p ?o } GROUP BY ?x"); } @Test(expected=QueryException.class) - public void scope_22() { scope("SELECT * { ?s ?p ?o BIND(5 AS ?o) }") ; } - - @Test public void scope_23() { scope("SELECT * { ?s ?p ?o { BIND(5 AS ?o) } }") ; } - + public void scope_22() { scope("SELECT * { ?s ?p ?o BIND(5 AS ?o) }"); } + + @Test public void scope_23() { scope("SELECT * { ?s ?p ?o { BIND(5 AS ?o) } }"); } + @Test(expected=QueryException.class) - public void scope_24() { scope("SELECT * { { ?s ?p ?o } BIND(5 AS ?o) }") ; } - - @Test public void scope_25() { scope("SELECT * { { ?s ?p ?o } { BIND(5 AS ?o) } }") ; } - - @Test public void scope_26() { scope("SELECT * { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} BIND(?o2+5 AS ?z) }") ; } + public void scope_24() { scope("SELECT * { { ?s ?p ?o } BIND(5 AS ?o) }"); } + + @Test public void scope_25() { scope("SELECT * { { ?s ?p ?o } { BIND(5 AS ?o) } }"); } + + @Test public void scope_26() { scope("SELECT * { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} BIND(?o2+5 AS ?z) }"); } @Test(expected=QueryException.class) - public void scope_27() { scope("SELECT * { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} BIND(5 AS ?o2) }") ; } + public void scope_27() { scope("SELECT * { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} BIND(5 AS ?o2) }"); } @Test(expected=QueryException.class) - public void scope_28() { scope("SELECT * { { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} } BIND(?o+5 AS ?o2) }") ; } + public void scope_28() { scope("SELECT * { { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} } BIND(?o+5 AS ?o2) }"); } @Test(expected=QueryException.class) - public void scope_29() { scope("SELECT * { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} BIND(5 AS ?o) }") ; } + public void scope_29() { scope("SELECT * { ?s ?p ?o OPTIONAL{?s ?p2 ?o2} BIND(5 AS ?o) }"); } @Test(expected=QueryException.class) - public void scope_30() { scope("SELECT * { { ?s ?p ?o } OPTIONAL{?s ?p2 ?o2} BIND(5 AS ?o) }") ; } - + public void scope_30() { scope("SELECT * { { ?s ?p ?o } OPTIONAL{?s ?p2 ?o2} BIND(5 AS ?o) }"); } + @Test(expected=QueryException.class) - public void scope_34() { scope("SELECT * { { ?s ?p ?o } UNION {?s ?p2 ?o2} BIND(5 AS ?o) }") ; } - + public void scope_34() { scope("SELECT * { { ?s ?p ?o } UNION {?s ?p2 ?o2} BIND(5 AS ?o) }"); } + @Test - public void scope_35() { scope("SELECT * { ?s1 ?p1 ?z { ?s ?p ?z } UNION { BIND(5 AS ?z) } }") ; } - + public void scope_35() { scope("SELECT * { ?s1 ?p1 ?z { ?s ?p ?z } UNION { BIND(5 AS ?z) } }"); } + // Subqueries - + @Test(expected=QueryException.class) - public void scope_50() { scope("SELECT * { SELECT (?o+1 AS ?o) { ?s ?p ?o }}") ; } - + public void scope_50() { scope("SELECT * { SELECT (?o+1 AS ?o) { ?s ?p ?o }}"); } + @Test - public void scope_51() - { - scope("SELECT ?y { " + - "{ { SELECT (?x AS ?y) { ?s ?p ?x } } } UNION { { SELECT (?x AS ?y) { ?s ?p ?x } } }" + - "}") ; + public void scope_51() { + scope("SELECT ?y { " + "{ { SELECT (?x AS ?y) { ?s ?p ?x } } } UNION { { SELECT (?x AS ?y) { ?s ?p ?x } } }" + "}"); } - - @Test(expected=QueryException.class) - public void scope_52() - { - scope("SELECT ?y { " + - "{ { SELECT (?o+1 AS ?x) (?o+1 AS ?x) { ?s ?p ?o } } UNION { ?s ?p ?x } }" + - "}") ; + + @Test(expected = QueryException.class) + public void scope_52() { + scope("SELECT ?y { " + "{ { SELECT (?o+1 AS ?x) (?o+1 AS ?x) { ?s ?p ?o } } UNION { ?s ?p ?x } }" + "}"); } - - @Test(expected=QueryException.class) - public void scope_63() - { + + @Test(expected = QueryException.class) + public void scope_63() { // Check nested things get checked. - scope("SELECT * { { ?s ?p ?o } UNION { ?s ?p ?o1 BIND(5 AS ?o1) } }") ; + scope("SELECT * { { ?s ?p ?o } UNION { ?s ?p ?o1 BIND(5 AS ?o1) } }"); } - - @Test(expected=QueryException.class) - public void scope_64() - { + + @Test(expected = QueryException.class) + public void scope_64() { // Check nested things get checked. - scope("SELECT * { { { ?s ?p ?o1 BIND(5 AS ?o1) } } }") ; + scope("SELECT * { { { ?s ?p ?o1 BIND(5 AS ?o1) } } }"); } - - @Test(expected=QueryException.class) - public void scope_65() - { - scope("SELECT ( (?x+1) AS ?x ) {}") ; + + @Test(expected = QueryException.class) + public void scope_65() { + scope("SELECT ( (?x+1) AS ?x ) {}"); } + @Test(expected = QueryException.class) + public void scope_66() { + scope("SELECT ( (?x+1) AS ?y) (2 AS ?x) {}"); + } - @Test(expected=QueryException.class) - public void scope_66() - { - scope("SELECT ( (?x+1) AS ?y) (2 AS ?x) {}") ; + // GH-3164 + @Test public void scope_70() { + String qsVarScope = """ + SELECT ?s (MIN(?v) as ?min) WHERE { ?s <value> ?v } + GROUP BY ?s + VALUES ?min { 2 5 } + """; + scope(qsVarScope); + } + + @Test public void scope_71() { + scope("SELECT (MIN(?v) as ?min) WHERE {} VALUES ?min { 2 5 }"); } }
