diff --git a/src/main/antlr/SparqlParser.g4 b/src/main/antlr/SparqlParser.g4 index 662ddf2c8..a249ba814 100644 --- a/src/main/antlr/SparqlParser.g4 +++ b/src/main/antlr/SparqlParser.g4 @@ -45,16 +45,17 @@ options { tokenVocab = SparqlLexer; } -queryUnit - : query EOF +query + : queryUnit EOF + | updateUnit EOF ; -query +queryUnit : prologue (selectQuery | constructQuery | describeQuery | askQuery) valuesClause ; updateUnit - : update EOF + : update ; prologue diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilder.java b/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilder.java index 7bbd57d25..6aa94b697 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilder.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilder.java @@ -13,6 +13,7 @@ import org.antlr.v4.runtime.tree.TerminalNode; import java.util.*; +import java.util.stream.Collectors; /** * Build a minimal SPARQL AST for: @@ -81,7 +82,7 @@ public final class SparqlAstBuilder { * i.e. the depth before the SERVICE body's {@link #enterGroup()} is invoked. * After {@link #exitGroup()} pops the service body the stack returns to this * depth, which is used as the signal to wrap the group in a - * {@link fr.inria.corese.core.next.query.impl.sparql.ast.ServiceAst}. + * {@link ServiceAst}. * @param endpoint the remote service endpoint (IRI or variable) * @param silent whether the {@code SILENT} keyword was present */ @@ -208,6 +209,21 @@ private static final class SelectFrame { */ private ConstructTemplateAst constructTemplate; + /** + * Flag for UPDATE queries to be silent or not + */ + private boolean silentFlag = false; + + /** + * List of IRIs used in an TO clause in a UPDATE query + */ + private Set sourceGraphSet = new HashSet<>(); + + /** + * List of IRIs used in an TO clause in a UPDATE query + */ + private Set targetGraphSet = new HashSet<>(); + /** * Used for BIND scope checks (variable must not already be visible in the same group). */ @@ -217,6 +233,7 @@ private static final class SelectFrame { * Effective base URI after prologue (parser options, then possibly {@code BASE}). */ private String baseUri; + /** * Prefix declarations in source order (including redeclarations). */ @@ -371,7 +388,7 @@ public void setProjectionVariables(List variableNames, List expr expressionBoundNames.stream() .map(s -> s == null ? "" : (s.startsWith("?") || s.startsWith("$") ? s.substring(1).trim() : s.trim())) .filter(s -> !s.isBlank()) - .collect(java.util.stream.Collectors.toUnmodifiableSet()); + .collect(Collectors.toUnmodifiableSet()); ProjectionAst newProjection = vars.isEmpty() ? ProjectionAsts.selectAll() @@ -664,7 +681,7 @@ public void exitMinus() { * Enter SERVICE scope. Records the current group stack size, the endpoint term and the * {@code SILENT} flag so that when {@link #exitGroup()} is called and the stack returns to * that size, the closed group is wrapped in a - * {@link fr.inria.corese.core.next.query.impl.sparql.ast.ServiceAst}. + * {@link ServiceAst}. * * @param endpoint the remote endpoint (IRI or variable) * @param silent {@code true} when the {@code SILENT} keyword was present @@ -675,7 +692,7 @@ public void enterService(TermAst endpoint, boolean silent) { /** * Exit SERVICE scope. No-op: the service body was already wrapped in - * {@link fr.inria.corese.core.next.query.impl.sparql.ast.ServiceAst} in {@link #exitGroup()}. + * {@link ServiceAst} in {@link #exitGroup()}. */ public void exitService() { } @@ -718,19 +735,27 @@ public GroupGraphPatternAst popCapturedExistsPattern() { public QueryAst getResult() { if (selectQueryResult != null) return selectQueryResult; - if (whereClause == null) { - throw new IllegalStateException("No WHERE clause: did you call exitGroup() for the top-level GroupGraphPattern?"); + // Interrogation query + if (this.queryType == ASTConstants.QUERY_TYPE.ASK || this.queryType == ASTConstants.QUERY_TYPE.CONSTRUCT || this.queryType == ASTConstants.QUERY_TYPE.DESCRIBE || this.queryType == ASTConstants.QUERY_TYPE.SELECT ) { + if (whereClause == null) { + throw new IllegalStateException("No WHERE clause: did you call exitGroup() for the top-level GroupGraphPattern?"); + } + DatasetClauseAst datasetClauseAst = new DatasetClauseAst(datasetDefaultGraphs, datasetNamedGraphs); + QueryPrologueAst prologueAst = new QueryPrologueAst(List.copyOf(prefixDeclarations), new IriAst(baseUri)); + ValuesAst valuesClause = new ValuesAst(this.values); + return switch (this.queryType) { + case ASK -> buildAskQueryAst(datasetClauseAst, prologueAst, valuesClause); + case CONSTRUCT -> buildConstructQueryAst(datasetClauseAst, prologueAst,valuesClause); + case DESCRIBE -> buildDescribeQueryAst(datasetClauseAst, prologueAst, valuesClause); + case SELECT -> buildSelectQueryAst(datasetClauseAst, prologueAst, valuesClause); + default -> throw new QueryEvaluationException("Could not determine the type of query during parsing"); + }; + } else { // Update query + return switch (this.queryType) { + case LOAD -> buildLoadQueryAst(); + default -> throw new QueryEvaluationException("Could not determine the type of query during parsing"); + }; } - DatasetClauseAst datasetClauseAst = new DatasetClauseAst(datasetDefaultGraphs, datasetNamedGraphs); - QueryPrologueAst prologueAst = new QueryPrologueAst(List.copyOf(prefixDeclarations), new IriAst(baseUri)); - ValuesAst valuesClause = new ValuesAst(this.values); - return switch (this.queryType) { - case ASK -> buildAskQueryAst(datasetClauseAst, prologueAst, valuesClause); - case CONSTRUCT -> buildConstructQueryAst(datasetClauseAst, prologueAst, valuesClause); - case DESCRIBE -> buildDescribeQueryAst(datasetClauseAst, prologueAst, valuesClause); - case SELECT -> buildSelectQueryAst(datasetClauseAst, prologueAst, valuesClause); - case UNDEFINED -> throw new QueryEvaluationException("Could not determine the type of query during parsing"); - }; } // --- Internal helpers --- @@ -759,6 +784,38 @@ private void ensureNoOpenBgp() { } } + /** + * Build the AST for LOAD queries + * @return a {@link LoadQueryAst} + */ + private LoadQueryAst buildLoadQueryAst() { + return new LoadQueryAst(sourceGraphSet, targetGraphSet, silentFlag); + } + + /** + * Add a source graph IRI for an UPDATE query (FROM clause) + * @param iri + */ + public void addSourceGraphIri(IriAst iri) { + this.sourceGraphSet.add(iri); + } + + /** + * Add a target graph IRI for an UPDATE query (TO clause) + * @param iri + */ + public void addTargetGraphIri(IriAst iri) { + this.targetGraphSet.add(iri); + } + + /** + * Set the Silent flag of an UPDATE query. + * @param silent + */ + public void setSilentFlag(boolean silent) { + this.silentFlag = silent; + } + /** * Builds the AST for ASK queries. */ @@ -935,6 +992,16 @@ public void enterDescribeQuery() { queryType = ASTConstants.QUERY_TYPE.DESCRIBE; } + /** + * Signals the start of a LOAD query desclaration + */ + public void enterLoadQuery() { + queryType = ASTConstants.QUERY_TYPE.LOAD; + this.sourceGraphSet.clear(); + this.targetGraphSet.clear(); + this.silentFlag = false; + } + /** * Called when the parser exits a {@code DESCRIBE} query. No-op. */ @@ -1139,12 +1206,12 @@ public AggregateAst createAggregate( // ---- term helpers ---- - public TermAst termFromVerb(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.VerbContext ctx) { + public TermAst termFromVerb(SparqlParser.VerbContext ctx) { if (ctx.A() != null) return this.iri("a"); return termFromVarOrIriRef(ctx.varOrIri()); } - public TermAst termFromVarOrTerm(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.VarOrTermContext ctx) { + public TermAst termFromVarOrTerm(SparqlParser.VarOrTermContext ctx) { if (ctx.var_() != null) return termFromVar(ctx.var_()); return termFromGraphTerm(ctx.graphTerm()); } @@ -1156,7 +1223,7 @@ public TermAst termFromVarOrIriRef(SparqlParser.VarOrIriContext ctx) { return termFromIriRef(ctx.iriRef()); } - public TermAst termFromGraphTerm(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.GraphTermContext ctx) { + public TermAst termFromGraphTerm(SparqlParser.GraphTermContext ctx) { if (ctx.iriRef() != null) { return termFromIriRef(ctx.iriRef()); } @@ -1178,7 +1245,15 @@ public TermAst termFromGraphTerm(fr.inria.corese.core.next.impl.parser.antlr.Spa return this.iri(ctx.getText()); } - public List termListFromObjectList(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.ObjectListContext ctx) { + public TermAst termFromGraphRef(SparqlParser.GraphRefContext ctx) { + if (ctx.iriRef() != null) { + return termFromIriRef(ctx.iriRef()); + } else { + throw new QueryEvaluationException("Expecting an IRIRef in the Graph clause"); + } + } + + public List termListFromObjectList(SparqlParser.ObjectListContext ctx) { List out = new ArrayList<>(); for (var obj : ctx.object_()) { out.add(termFromObject(obj)); @@ -1186,12 +1261,12 @@ public List termListFromObjectList(fr.inria.corese.core.next.impl.parse return out; } - public TermAst termFromObject(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.Object_Context ctx) { + public TermAst termFromObject(SparqlParser.Object_Context ctx) { // object_ : graphNode return termFromGraphNode(ctx.graphNode()); } - public TermAst termFromGraphNode(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.GraphNodeContext ctx) { + public TermAst termFromGraphNode(SparqlParser.GraphNodeContext ctx) { if (ctx.varOrTerm() != null) return termFromVarOrTerm(ctx.varOrTerm()); if (ctx.triplesNode() != null) { // MVP: pas encore supporté ( [ ... ] ou ( ... ) ) @@ -1201,7 +1276,7 @@ public TermAst termFromGraphNode(fr.inria.corese.core.next.impl.parser.antlr.Spa return this.iri(ctx.getText()); } - public TermAst termFromRdfLiteral(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.RdfLiteralContext ctx) { + public TermAst termFromRdfLiteral(SparqlParser.RdfLiteralContext ctx) { // rdfLiteral : string_ ( LANGTAG | '^^' iriRef )? String lexical = ctx.string_().getText(); @@ -1217,7 +1292,7 @@ public TermAst termFromRdfLiteral(fr.inria.corese.core.next.impl.parser.antlr.Sp return this.literal(lexical, lang, datatype); } - public TermAst termFromPrimary(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.PrimaryExpressionContext ctx) { + public TermAst termFromPrimary(SparqlParser.PrimaryExpressionContext ctx) { if (ctx.brackettedExpression() != null) { return termFromBrackettedExpression(ctx.brackettedExpression()); } else if (ctx.builtInCall() != null) { @@ -1237,11 +1312,11 @@ public TermAst termFromPrimary(fr.inria.corese.core.next.impl.parser.antlr.Sparq } } - public TermAst termFromVar(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.Var_Context ctx) { + public TermAst termFromVar(SparqlParser.Var_Context ctx) { return this.var(ctx.getText()); } - public TermAst termFromBooleanLiteral(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.BooleanLiteralContext ctx) { + public TermAst termFromBooleanLiteral(SparqlParser.BooleanLiteralContext ctx) { if (ctx.FALSE() != null) { return new LiteralAst("false", null, XSD.xsdBoolean.getIRI().stringValue()); } else if (ctx.TRUE() != null) { @@ -1251,7 +1326,7 @@ public TermAst termFromBooleanLiteral(fr.inria.corese.core.next.impl.parser.antl } } - public TermAst termFromIriRefOrFunction(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.IriRefOrFunctionContext ctx) { + public TermAst termFromIriRefOrFunction(SparqlParser.IriRefOrFunctionContext ctx) { if (ctx.iriRef() != null && ctx.argList() == null) { return termFromIriRef(ctx.iriRef()); } else if (ctx.iriRef() != null && ctx.argList() != null) { @@ -1263,15 +1338,15 @@ public TermAst termFromIriRefOrFunction(fr.inria.corese.core.next.impl.parser.an } } - public List termListFromArgList(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.ArgListContext ctx) { + public List termListFromArgList(SparqlParser.ArgListContext ctx) { return ctx.expression().stream().map(this::termFromExpression).toList(); } - public TermAst termFromIriRef(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.IriRefContext ctx) { + public TermAst termFromIriRef(SparqlParser.IriRefContext ctx) { return this.iri(ctx.getText()); } - public TermAst termFromNumericLiteral(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.NumericLiteralContext ctx) { + public TermAst termFromNumericLiteral(SparqlParser.NumericLiteralContext ctx) { if (ctx.numericLiteralUnsigned() != null) { return termFromNumericLiteralUnsigned(ctx.numericLiteralUnsigned()); } else if (ctx.numericLiteralPositive() != null) { @@ -1283,7 +1358,7 @@ public TermAst termFromNumericLiteral(fr.inria.corese.core.next.impl.parser.antl } } - public TermAst termFromNumericLiteralNegative(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.NumericLiteralNegativeContext ctx) { + public TermAst termFromNumericLiteralNegative(SparqlParser.NumericLiteralNegativeContext ctx) { if (ctx.INTEGER_NEGATIVE() != null) { return this.literal(ctx.getText(), null, XSD.xsdNegativeInteger.getIRI().stringValue()); } else if (ctx.DECIMAL_NEGATIVE() != null) { @@ -1295,7 +1370,7 @@ public TermAst termFromNumericLiteralNegative(fr.inria.corese.core.next.impl.par } } - public TermAst termFromNumericLiteralPositive(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.NumericLiteralPositiveContext ctx) { + public TermAst termFromNumericLiteralPositive(SparqlParser.NumericLiteralPositiveContext ctx) { if (ctx.INTEGER_POSITIVE() != null) { return this.literal(ctx.getText(), null, XSD.xsdPositiveInteger.getIRI().stringValue()); } else if (ctx.DECIMAL_POSITIVE() != null) { @@ -1307,7 +1382,7 @@ public TermAst termFromNumericLiteralPositive(fr.inria.corese.core.next.impl.par } } - public TermAst termFromNumericLiteralUnsigned(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.NumericLiteralUnsignedContext ctx) { + public TermAst termFromNumericLiteralUnsigned(SparqlParser.NumericLiteralUnsignedContext ctx) { if (ctx.INTEGER() != null) { return this.literal(ctx.getText(), null, XSD.xsdUnsignedInt.getIRI().stringValue()); } else if (ctx.DECIMAL() != null) { @@ -1319,7 +1394,7 @@ public TermAst termFromNumericLiteralUnsigned(fr.inria.corese.core.next.impl.par } } - public TermAst termFromBlankNode(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.BlankNodeContext ctx) { + public TermAst termFromBlankNode(SparqlParser.BlankNodeContext ctx) { return this.iri(ctx.getText()); } @@ -1353,7 +1428,7 @@ public TermAst termFromGroupCondition(SparqlParser.GroupConditionContext ctx) { throw new QueryEvaluationException("Unsupported group condition: " + ctx.getText()); } - public TermAst termFromConstraint(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.ConstraintContext ctx) { + public TermAst termFromConstraint(SparqlParser.ConstraintContext ctx) { if (ctx.builtInCall() != null) { return termFromBuiltInCall(ctx.builtInCall()); } else if (ctx.functionCall() != null) { @@ -1367,11 +1442,10 @@ public TermAst termFromConstraint(fr.inria.corese.core.next.impl.parser.antlr.Sp } } - public TermAst termFromBuiltInCall(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.BuiltInCallContext ctx) { + public TermAst termFromBuiltInCall(SparqlParser.BuiltInCallContext ctx) { if (ctx.aggregate() != null) { return termFromAggregate(ctx.aggregate()); } - if (ctx.existsFunc() != null) { GroupGraphPatternAst existsPattern = popCapturedExistsPattern(); if (existsPattern == null) { @@ -1505,7 +1579,7 @@ public TermAst termFromBuiltInCall(fr.inria.corese.core.next.impl.parser.antlr.S } } - public TermAst termFromExpression(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.ExpressionContext ctx) { + public TermAst termFromExpression(SparqlParser.ExpressionContext ctx) { if (ctx.conditionalOrExpression() != null) { return this.termFromConditionalOr(ctx.conditionalOrExpression()); } else { @@ -1513,7 +1587,7 @@ public TermAst termFromExpression(fr.inria.corese.core.next.impl.parser.antlr.Sp } } - public TermAst termFromConditionalOr(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.ConditionalOrExpressionContext ctx) { + public TermAst termFromConditionalOr(SparqlParser.ConditionalOrExpressionContext ctx) { if (ctx.conditionalAndExpression() != null && !ctx.conditionalAndExpression().isEmpty()) { if (ctx.conditionalAndExpression().size() > 1) { List args = ctx.conditionalAndExpression().stream().map(this::termFromConditionalAnd).toList(); @@ -1526,7 +1600,7 @@ public TermAst termFromConditionalOr(fr.inria.corese.core.next.impl.parser.antlr } } - public TermAst termFromConditionalAnd(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.ConditionalAndExpressionContext ctx) { + public TermAst termFromConditionalAnd(SparqlParser.ConditionalAndExpressionContext ctx) { if (ctx.valueLogical() != null && !ctx.valueLogical().isEmpty()) { if (ctx.valueLogical().size() > 1) { List args = ctx.valueLogical().stream().map(this::termFromValueLogical).toList(); @@ -1539,7 +1613,7 @@ public TermAst termFromConditionalAnd(fr.inria.corese.core.next.impl.parser.antl } } - public TermAst termFromValueLogical(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.ValueLogicalContext ctx) { + public TermAst termFromValueLogical(SparqlParser.ValueLogicalContext ctx) { if (ctx.relationalExpression() != null) { return this.termFromRelational(ctx.relationalExpression()); } else { @@ -1547,7 +1621,7 @@ public TermAst termFromValueLogical(fr.inria.corese.core.next.impl.parser.antlr. } } - public TermAst termFromRelational(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.RelationalExpressionContext ctx) { + public TermAst termFromRelational(SparqlParser.RelationalExpressionContext ctx) { if (ctx.numericExpression() == null || ctx.numericExpression().isEmpty()) { throw new QueryEvaluationException("No numeric termFromExpression found"); } @@ -1601,7 +1675,7 @@ public List termFromExpressionList(SparqlParser.ExpressionListContext c return List.of(); } - public TermAst termFromNumeric(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.NumericExpressionContext ctx) { + public TermAst termFromNumeric(SparqlParser.NumericExpressionContext ctx) { if (ctx.additiveExpression() != null) { return this.termFromAdditive(ctx.additiveExpression()); } else { @@ -1609,7 +1683,7 @@ public TermAst termFromNumeric(fr.inria.corese.core.next.impl.parser.antlr.Sparq } } - public TermAst termFromAdditive(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.AdditiveExpressionContext ctx) { + public TermAst termFromAdditive(SparqlParser.AdditiveExpressionContext ctx) { if (ctx.multiplicativeExpression() != null && !ctx.multiplicativeExpression().isEmpty()) { if (ctx.multiplicativeExpression().size() > 1 || !ctx.numericLiteralNegative().isEmpty() @@ -1628,11 +1702,11 @@ public TermAst termFromAdditive(fr.inria.corese.core.next.impl.parser.antlr.Spar } } else { TermAst rightHand = switch (child) { - case fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.MultiplicativeExpressionContext multiplicativeExpressionContext -> + case SparqlParser.MultiplicativeExpressionContext multiplicativeExpressionContext -> termFromMultiplicative(multiplicativeExpressionContext); - case fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.NumericLiteralPositiveContext numericLiteralPositiveContext -> + case SparqlParser.NumericLiteralPositiveContext numericLiteralPositiveContext -> (ExprAst) termFromNumericLiteralPositive(numericLiteralPositiveContext); - case fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.NumericLiteralNegativeContext numericLiteralNegativeContext -> + case SparqlParser.NumericLiteralNegativeContext numericLiteralNegativeContext -> (ExprAst) termFromNumericLiteralNegative(numericLiteralNegativeContext); case null, default -> throw new QueryEvaluationException( @@ -1654,7 +1728,7 @@ public TermAst termFromAdditive(fr.inria.corese.core.next.impl.parser.antlr.Spar } } - public TermAst termFromMultiplicative(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.MultiplicativeExpressionContext ctx) { + public TermAst termFromMultiplicative(SparqlParser.MultiplicativeExpressionContext ctx) { if (ctx.unaryExpression() != null && !ctx.unaryExpression().isEmpty()) { if (ctx.unaryExpression().size() > 1) { TermAst head = termFromUnary(ctx.unaryExpression().getFirst()); @@ -1690,7 +1764,7 @@ public TermAst termFromMultiplicative(fr.inria.corese.core.next.impl.parser.antl } } - public TermAst termFromUnary(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.UnaryExpressionContext ctx) { + public TermAst termFromUnary(SparqlParser.UnaryExpressionContext ctx) { ASTConstants.Constraint op = null; if (ctx.PLUS() != null) { op = ASTConstants.OPERATOR.PLUS; @@ -1706,7 +1780,7 @@ public TermAst termFromUnary(fr.inria.corese.core.next.impl.parser.antlr.SparqlP } } - public TermAst termFromBrackettedExpression(fr.inria.corese.core.next.impl.parser.antlr.SparqlParser.BrackettedExpressionContext ctx) { + public TermAst termFromBrackettedExpression(SparqlParser.BrackettedExpressionContext ctx) { return termFromExpression(ctx.expression()); } diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlListener.java b/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlListener.java index 05089e43e..3d3c05d60 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlListener.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlListener.java @@ -69,6 +69,16 @@ public void exitConstructTemplate(SparqlParser.ConstructTemplateContext ctx) { for (var d : delegates) d.exitConstructTemplate(ctx); } + @Override + public void enterLoad(SparqlParser.LoadContext ctx) { + for (var d : delegates) d.enterLoad(ctx); + } + + @Override + public void exitLoad(SparqlParser.LoadContext ctx) { + for (var d : delegates) d.exitLoad(ctx); + } + @Override public void enterWhereClause(SparqlParser.WhereClauseContext ctx) { for (var d : delegates) d.enterWhereClause(ctx); diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlQueryAnalyzer.java b/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlQueryAnalyzer.java index 3c5caf766..d76f37639 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlQueryAnalyzer.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/parser/SparqlQueryAnalyzer.java @@ -127,7 +127,8 @@ private QueryAst buildAst(ParseTree tree, SparqlParserOptions options) { new PrologueFeature(builder), new BindFeature(builder), new ServiceFeature(builder), - new ValuesFeature(builder) + new ValuesFeature(builder), + new LoadQueryFeature(builder) )); ParseTreeWalker walker = new ParseTreeWalker(); diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/parser/listener/LoadQueryFeature.java b/src/main/java/fr/inria/corese/core/next/query/impl/parser/listener/LoadQueryFeature.java new file mode 100644 index 000000000..4c3404401 --- /dev/null +++ b/src/main/java/fr/inria/corese/core/next/query/impl/parser/listener/LoadQueryFeature.java @@ -0,0 +1,23 @@ +package fr.inria.corese.core.next.query.impl.parser.listener; + +import fr.inria.corese.core.next.impl.parser.antlr.SparqlParser; +import fr.inria.corese.core.next.query.impl.parser.SparqlAstBuilder; +import fr.inria.corese.core.next.query.impl.sparql.ast.IriAst; + +public class LoadQueryFeature extends AbstractSparqlFeature { + + public LoadQueryFeature(SparqlAstBuilder builder) { + super(builder); + } + + public void exitLoad(SparqlParser.LoadContext ctx) { + this.builder().enterLoadQuery(); + this.builder().setSilentFlag(ctx.SILENT() != null); + if(ctx.iriRef() != null) { + this.builder().addSourceGraphIri((IriAst) this.builder().termFromIriRef(ctx.iriRef())); + } + if(ctx.graphRef() != null) { + this.builder().addTargetGraphIri((IriAst) this.builder().termFromGraphRef(ctx.graphRef())); + } + } +} diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/rule/OrderByScopeValidationRule.java b/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/rule/OrderByScopeValidationRule.java index 8f5e07d83..970483fb5 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/rule/OrderByScopeValidationRule.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/rule/OrderByScopeValidationRule.java @@ -2,16 +2,7 @@ import fr.inria.corese.core.next.query.api.validation.QueryDiagnostic; import fr.inria.corese.core.next.query.impl.parser.semantic.support.VariableScopeAnalyzer; -import fr.inria.corese.core.next.query.impl.sparql.ast.AskQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.ConstructQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.DescribeQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.GroupGraphPatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.OrderConditionAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.ProjectionAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SolutionModifierAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import java.util.ArrayList; import java.util.LinkedHashSet; @@ -45,6 +36,7 @@ public List validate(QueryAst queryAst) { describeQueryAst.solutionModifier()); // TODO: handle ASK solution modifiers with SPARQL 1.1 support. case AskQueryAst ignored -> List.of(); + case LoadQueryAst ignored -> List.of(); }; } diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/support/VariableScopeAnalyzer.java b/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/support/VariableScopeAnalyzer.java index 7c0b8bdba..756761589 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/support/VariableScopeAnalyzer.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/parser/semantic/support/VariableScopeAnalyzer.java @@ -5,10 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; +import java.util.*; /** * Collects visible and referenced variables from the next SPARQL AST. @@ -26,8 +23,13 @@ public final class VariableScopeAnalyzer { * @return the set of visible variable names, without {@code ?} or {@code $} in the patterns used for the resolution of the query */ public Set collectVisibleVariables(QueryAst query) { - Set visibleVariables = collectVisibleVariables(query.whereClause()); - visibleVariables.addAll(collectVisibleVariables(query.valuesClause())); + Set visibleVariables = new TreeSet<>(); + if(query instanceof WhereClauseQueryAst whereClauseQueryAst) { + visibleVariables.addAll(collectVisibleVariables(whereClauseQueryAst.whereClause())); + } + if(query instanceof SparqlQueryAst sparqlQueryAst) { + visibleVariables.addAll(collectVisibleVariables(sparqlQueryAst.valuesClause())); + } return visibleVariables; } diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ASTConstants.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ASTConstants.java index 6ffdd395d..d1ce74179 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ASTConstants.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ASTConstants.java @@ -11,6 +11,8 @@ public enum QUERY_TYPE { DESCRIBE, SELECT, + LOAD, + UNDEFINED } diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/AskQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/AskQueryAst.java index d9a26a801..24aaea2a4 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/AskQueryAst.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/AskQueryAst.java @@ -16,7 +16,7 @@ * } */ public record AskQueryAst(DatasetClauseAst datasetClause, GroupGraphPatternAst whereClause, - SolutionModifierAst solutionModifier, QueryPrologueAst prologue, ValuesAst valuesClause) implements QueryAst { + SolutionModifierAst solutionModifier, QueryPrologueAst prologue, ValuesAst valuesClause) implements SparqlQueryAst { public AskQueryAst(DatasetClauseAst datasetClause, GroupGraphPatternAst whereClause) { this(datasetClause, whereClause, null, null, null); diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ConstructQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ConstructQueryAst.java index 86b9a6730..3a2345d38 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ConstructQueryAst.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/ConstructQueryAst.java @@ -37,7 +37,7 @@ public record ConstructQueryAst( SolutionModifierAst solutionModifier, QueryPrologueAst prologue, ValuesAst valuesClause - ) implements QueryAst { + ) implements SparqlQueryAst { public ConstructQueryAst { if (constructTemplate == null) { constructTemplate = new ConstructTemplateAst(List.of()); diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/DescribeQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/DescribeQueryAst.java index 8389f3ae4..334b50536 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/DescribeQueryAst.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/DescribeQueryAst.java @@ -28,7 +28,7 @@ public record DescribeQueryAst( SolutionModifierAst solutionModifier, QueryPrologueAst prologue, ValuesAst valuesClause -) implements QueryAst { +) implements SparqlQueryAst { public DescribeQueryAst { described = described != null ? List.copyOf(described) : List.of(); if (whereClause == null) { diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/LoadQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/LoadQueryAst.java new file mode 100644 index 000000000..b7f84faf1 --- /dev/null +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/LoadQueryAst.java @@ -0,0 +1,25 @@ +package fr.inria.corese.core.next.query.impl.sparql.ast; + +import java.util.HashSet; +import java.util.Set; + +/** + * Represents the LOAD queries as defined in the SPARQL 1.1 recommendation. + * @param fromClause From clause, set of graphs IRIs + * @param toClause To clause. Set of Graph IRIs + * @param silent Determine if the resolution of the query must be resolved silently or not. + */ +public record LoadQueryAst(Set fromClause, Set toClause, boolean silent) implements UpdateQueryAst { + public LoadQueryAst { + if(fromClause == null) { + fromClause = new HashSet<>(); + } + if(toClause == null) { + toClause = new HashSet<>(); + } + } + + public LoadQueryAst(Set fromClause, Set toClause) { + this(fromClause, toClause, false); + } +} diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/PrologueQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/PrologueQueryAst.java new file mode 100644 index 000000000..0fd34d107 --- /dev/null +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/PrologueQueryAst.java @@ -0,0 +1,8 @@ +package fr.inria.corese.core.next.query.impl.sparql.ast; + +/** + * Represents queries that can be prefixed with a prologue declaration (i.e. Select, Insert, etc.) + */ +public sealed interface PrologueQueryAst permits SparqlQueryAst { + QueryPrologueAst prologue(); +} diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/QueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/QueryAst.java index cae32d94f..82b384af5 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/QueryAst.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/QueryAst.java @@ -1,12 +1,4 @@ package fr.inria.corese.core.next.query.impl.sparql.ast; -/** - * Minimal SPARQL query AST (SELECT, ASK, CONSTRUCT, DESCRIBE). - * Holds the WHERE clause as a group graph pattern; query-specific projection/template can be added later. - */ -public sealed interface QueryAst permits AskQueryAst, ConstructQueryAst, DescribeQueryAst, SelectQueryAst { - DatasetClauseAst datasetClause(); - GroupGraphPatternAst whereClause(); - QueryPrologueAst prologue(); - ValuesAst valuesClause(); -} \ No newline at end of file +public sealed interface QueryAst permits SparqlQueryAst, UpdateQueryAst { +} diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/SelectQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/SelectQueryAst.java index 1d9de7f52..f1f92d103 100644 --- a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/SelectQueryAst.java +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/SelectQueryAst.java @@ -9,7 +9,7 @@ * {@link #prologue()} captures PREFIX/BASE for SELECT; * for {@link QueryAst} compatibility. */ -public record SelectQueryAst(ProjectionAst projection, DatasetClauseAst datasetClause, GroupGraphPatternAst whereClause, SolutionModifierAst solutionModifier, QueryPrologueAst prologue, ValuesAst valuesClause) implements QueryAst { +public record SelectQueryAst(ProjectionAst projection, DatasetClauseAst datasetClause, GroupGraphPatternAst whereClause, SolutionModifierAst solutionModifier, QueryPrologueAst prologue, ValuesAst valuesClause) implements SparqlQueryAst { /** Constructor with default projection SELECT *. */ public SelectQueryAst(GroupGraphPatternAst whereClause) { diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/SparqlQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/SparqlQueryAst.java new file mode 100644 index 000000000..b016a21ef --- /dev/null +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/SparqlQueryAst.java @@ -0,0 +1,10 @@ +package fr.inria.corese.core.next.query.impl.sparql.ast; + +/** + * Minimal SPARQL query AST (SELECT, ASK, CONSTRUCT, DESCRIBE). + * Holds the WHERE clause as a group graph pattern; query-specific projection/template can be added later. + */ +public sealed interface SparqlQueryAst extends QueryAst, PrologueQueryAst, WhereClauseQueryAst permits AskQueryAst, ConstructQueryAst, DescribeQueryAst, SelectQueryAst { + DatasetClauseAst datasetClause(); + ValuesAst valuesClause(); +} \ No newline at end of file diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/UpdateQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/UpdateQueryAst.java new file mode 100644 index 000000000..74b656b3f --- /dev/null +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/UpdateQueryAst.java @@ -0,0 +1,7 @@ +package fr.inria.corese.core.next.query.impl.sparql.ast; + +/** + * Root interface for all queries related to the SPARQL Update queries listed in SPARQL 1.1 Update. + */ +public sealed interface UpdateQueryAst extends QueryAst permits LoadQueryAst { +} diff --git a/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/WhereClauseQueryAst.java b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/WhereClauseQueryAst.java new file mode 100644 index 000000000..acf2f7f86 --- /dev/null +++ b/src/main/java/fr/inria/corese/core/next/query/impl/sparql/ast/WhereClauseQueryAst.java @@ -0,0 +1,8 @@ +package fr.inria.corese.core.next.query.impl.sparql.ast; + +/** + * Represents the AST elements of a query that has a WHERE clause (SELECT, CONSTRUCT, INSERT, DELETE, etc.) + */ +public sealed interface WhereClauseQueryAst permits SparqlQueryAst { + GroupGraphPatternAst whereClause(); +} diff --git a/src/test/java/fr/inria/corese/core/next/query/api/sparql/ast/SparqlAstTest.java b/src/test/java/fr/inria/corese/core/next/query/api/sparql/ast/SparqlAstTest.java index 4eb2342c1..558083c50 100644 --- a/src/test/java/fr/inria/corese/core/next/query/api/sparql/ast/SparqlAstTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/api/sparql/ast/SparqlAstTest.java @@ -385,7 +385,7 @@ void whereClauseAccessor() { GroupGraphPatternAst where = new GroupGraphPatternAst(List.of( new BgpAst(List.of(new TriplePatternAst( new VarAst("s"), new VarAst("p"), new VarAst("o")))))); - QueryAst q = new SelectQueryAst(where); + SparqlQueryAst q = new SelectQueryAst(where); assertSame(where, q.whereClause()); } @@ -426,7 +426,7 @@ void whereClauseAccessor() { GroupGraphPatternAst where = new GroupGraphPatternAst(List.of( new BgpAst(List.of(new TriplePatternAst( new VarAst("s"), new VarAst("p"), new VarAst("o")))))); - QueryAst q = new AskQueryAst(DatasetClauseAst.none(), where); + SparqlQueryAst q = new AskQueryAst(DatasetClauseAst.none(), where); assertSame(where, q.whereClause()); } @@ -503,7 +503,7 @@ void queryAstWithNestedStructures() { BgpAst bgp = new BgpAst(List.of( new TriplePatternAst(new VarAst("s"), new IriAst("a"), new VarAst("o")))); GroupGraphPatternAst where = new GroupGraphPatternAst(List.of(bgp)); - QueryAst q = new SelectQueryAst(where); + SparqlQueryAst q = new SelectQueryAst(where); assertEquals(1, q.whereClause().patterns().size()); assertEquals(1, ((BgpAst) q.whereClause().patterns().get(0)).triples().size()); } diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderTest.java index e8420573d..9a91749f1 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderTest.java @@ -36,7 +36,7 @@ void shouldBuildEmptyWhereGroupWhenNoTriples() { b.exitGroup(); b.exitSelectQuery(); - QueryAst ast = b.getResult(); + SparqlQueryAst ast = (SparqlQueryAst) b.getResult(); assertNotNull(ast); assertNotNull(ast.whereClause()); assertEquals(0, ast.whereClause().patterns().size()); @@ -81,7 +81,7 @@ void shouldBuildSingleBgpWithMultipleTriples() { b.exitGroup(); b.exitSelectQuery(); - QueryAst ast = b.getResult(); + SparqlQueryAst ast = (SparqlQueryAst) b.getResult(); BgpAst bgp = singleBgp(ast); assertEquals(2, bgp.triples().size()); @@ -141,7 +141,7 @@ void shouldAllowMultipleBgpsInSameGroup() { b.exitGroup(); b.exitSelectQuery(); - QueryAst ast = b.getResult(); + SparqlQueryAst ast = (SparqlQueryAst) b.getResult(); GroupGraphPatternAst where = ast.whereClause(); assertEquals(2, where.patterns().size()); @@ -166,7 +166,7 @@ void shouldNotAddEmptyBgpToGroup() { b.exitGroup(); b.exitSelectQuery(); - QueryAst ast = b.getResult(); + SparqlQueryAst ast = (SparqlQueryAst) b.getResult(); assertEquals(0, ast.whereClause().patterns().size(), "Empty TriplesBlock should not create a BGP pattern"); } @@ -191,7 +191,7 @@ void shouldBuildLiteralTerms() { b.exitGroup(); b.exitSelectQuery(); - BgpAst bgp = singleBgp(b.getResult()); + BgpAst bgp = singleBgp((SparqlQueryAst) b.getResult()); assertEquals(2, bgp.triples().size()); LiteralAst l1 = (LiteralAst) bgp.triples().get(0).object(); @@ -305,7 +305,7 @@ void groupGraphPatternAstShouldDefensivelyCopyPatternsList() { // ---------- Helpers ---------- - private static BgpAst singleBgp(QueryAst ast) { + private static BgpAst singleBgp(SparqlQueryAst ast) { GroupGraphPatternAst where = ast.whereClause(); assertEquals(1, where.patterns().size(), "Expected exactly 1 pattern in WHERE"); assertInstanceOf(BgpAst.class, where.patterns().getFirst(), "Expected first pattern to be a BGP"); diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderUnionTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderUnionTest.java index 760a4bda6..0f32e9f26 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderUnionTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlAstBuilderUnionTest.java @@ -44,7 +44,7 @@ private GroupGraphPatternAst buildTwoEmptyBranchUnion() { builder.exitUnion(); builder.exitGroup(); // } builder.exitSelectQuery(); - return Objects.requireNonNull(builder.getResult()).whereClause(); + return Objects.requireNonNull((SelectQueryAst)builder.getResult()).whereClause(); } /** diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlListenerTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlListenerTest.java index 46c413163..d2dc4c223 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlListenerTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlListenerTest.java @@ -2,11 +2,8 @@ import fr.inria.corese.core.next.impl.parser.antlr.SparqlLexer; import fr.inria.corese.core.next.query.impl.parser.listener.SelectQueryFeature; -import fr.inria.corese.core.next.query.impl.sparql.ast.BgpAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.parser.listener.BgpFeature; -import fr.inria.corese.core.next.query.impl.sparql.ast.TriplePatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTreeWalker; @@ -61,7 +58,7 @@ void withSingleBgpDelegateWalkProducesAst() { fr.inria.corese.core.next.impl.parser.antlr.SparqlParser antlrParser = createAntlrParser("SELECT * WHERE { ?s ?p ?o }"); new ParseTreeWalker().walk(listener, antlrParser.query()); - QueryAst ast = builder.getResult(); + SparqlQueryAst ast = (SparqlQueryAst) builder.getResult(); assertNotNull(ast); assertNotNull(ast.whereClause()); assertEquals(1, ast.whereClause().patterns().size()); diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAggregateTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAggregateTest.java index f9a2a9a15..18e5eddcf 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAggregateTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAggregateTest.java @@ -1,14 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.impl.parser.semantic.support.VariableScopeAnalyzer; -import fr.inria.corese.core.next.query.impl.sparql.ast.AggregateAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.AggregateFunction; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.OrderConditionAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.GreaterThanAst; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -25,7 +18,7 @@ @DisplayName("SPARQL 1.1 — Parser and AST : aggregates") class SparqlParserAggregateTest extends AbstractSparqlParserFeatureTest { - private static AggregateAst lastBindAggregate(QueryAst ast) { + private static AggregateAst lastBindAggregate(WhereClauseQueryAst ast) { BindAst bind = assertInstanceOf(BindAst.class, ast.whereClause().patterns().getLast()); return assertInstanceOf(AggregateAst.class, bind.expression()); } @@ -54,7 +47,7 @@ void shouldParseCountInSelectProjection() { void shouldParseCountWithVariableArgument() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(COUNT(?s) AS ?c) @@ -74,7 +67,7 @@ void shouldParseCountWithVariableArgument() { void shouldParseCountStar() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(COUNT(*) AS ?c) @@ -93,7 +86,7 @@ void shouldParseCountStar() { void shouldParseCountDistinct() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(COUNT(DISTINCT ?s) AS ?c) @@ -111,7 +104,7 @@ void shouldParseCountDistinct() { void shouldParseSum() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?x . BIND(SUM(?x) AS ?sum) @@ -130,7 +123,7 @@ void shouldParseSum() { void shouldParseAvgDistinct() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?x . BIND(AVG(DISTINCT ?x) AS ?avg) @@ -148,17 +141,17 @@ void shouldParseAvgDistinct() { void shouldParseMinMaxSample() { SparqlParser parser = newParserDefault(); - QueryAst minQ = parser.parse(""" + SparqlQueryAst minQ = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?x . BIND(MIN(?x) AS ?m) } """); assertEquals(AggregateFunction.MIN, lastBindAggregate(minQ).function()); - QueryAst maxQ = parser.parse(""" + SparqlQueryAst maxQ = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?x . BIND(MAX(?x) AS ?m) } """); assertEquals(AggregateFunction.MAX, lastBindAggregate(maxQ).function()); - QueryAst sampleQ = parser.parse(""" + SparqlQueryAst sampleQ = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?x . BIND(SAMPLE(?x) AS ?m) } """); assertEquals(AggregateFunction.SAMPLE, lastBindAggregate(sampleQ).function()); @@ -169,7 +162,7 @@ void shouldParseMinMaxSample() { void shouldParseGroupConcatWithoutSeparator() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(GROUP_CONCAT(?o) AS ?g) @@ -188,7 +181,7 @@ void shouldParseGroupConcatWithoutSeparator() { void shouldParseGroupConcatWithSeparator() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(GROUP_CONCAT(?o ; SEPARATOR = "|") AS ?g) @@ -205,7 +198,7 @@ void shouldParseGroupConcatWithSeparator() { void shouldParseAggregateInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(COUNT(*) > 0) @@ -225,7 +218,7 @@ void shouldParseAggregateInFilterComparison() { void shouldParseAggregateInOrderBy() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT ?s WHERE { ?s ?p ?val } @@ -245,7 +238,7 @@ ORDER BY AVG(?val) void shouldCollectVariablesReferencedInsideAggregate() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?price . BIND(AVG(?price) AS ?a) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAskQueryTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAskQueryTest.java index c6375e9f4..6197f7419 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAskQueryTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserAskQueryTest.java @@ -15,7 +15,7 @@ public class SparqlParserAskQueryTest extends AbstractSparqlParserFeatureTest { public void shouldParseBasicAskQueryTest() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" ASK WHERE { ?s ?p ?o . } @@ -50,7 +50,7 @@ public void shouldParseBasicAskQueryTest() { public void shouldParseShortAskQueryTest() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" ASK { ?p ?o . } @@ -221,7 +221,7 @@ public void fromGraphs() { ?o . } """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -245,7 +245,7 @@ public void fromMultipleGraphs() { ?o . } """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -269,7 +269,7 @@ public void fromNamedGraphs() { ?o . } """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().namedGraphs()); @@ -293,7 +293,7 @@ public void fromMultipleNamedGraphs() { ?o . } """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -319,7 +319,7 @@ public void fromMultipleMixedGraphs() { ?o . } """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -375,7 +375,7 @@ public void shortformWithLimit() { ?s ?p ?o . } LIMIT 10 """; - QueryAst queryAst = parser.parse(query); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(query); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertInstanceOf(AskQueryAst.class, queryAst); diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBgpTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBgpTest.java index b298b8f45..31855f628 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBgpTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBgpTest.java @@ -7,17 +7,10 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import org.junit.jupiter.api.Test; import fr.inria.corese.core.next.query.api.exception.QuerySyntaxException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BgpAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.GroupGraphPatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.IriAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.PatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.TriplePatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; /** * Test if we parse the Basic Graph Pattern (BGP) @@ -28,7 +21,7 @@ class SparqlParserBgpTest extends AbstractSparqlParserFeatureTest { void shouldParseSingleTriplePatternInBgp() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . } @@ -61,7 +54,7 @@ void shouldParseSingleTriplePatternInBgp() { void shouldParsePropertyListSemicolonAndCommaIntoMultipleTriples() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX foaf: SELECT * WHERE { ?s a foaf:Person ; @@ -101,7 +94,7 @@ void shouldParsePropertyListSemicolonAndCommaIntoMultipleTriples() { void shouldParseRdfLiteralWithLanguageTag() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s "salut"@fr . } @@ -123,7 +116,7 @@ void shouldParseRdfLiteralWithLanguageTag() { void shouldParseRdfLiteralWithDatatype() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX xsd: SELECT * WHERE { ?s "12"^^xsd:integer . @@ -145,7 +138,7 @@ void shouldParseRdfLiteralWithDatatype() { void shouldParsePrefixedNameWithDigitOnlyLocalPart() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX ex: SELECT * WHERE { ?s ex:1 ?o . @@ -163,7 +156,7 @@ void shouldParsePrefixedNameWithDigitOnlyLocalPart() { void shouldParsePrefixedNameWithHyphenInLocalPart() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX ex: SELECT * WHERE { ?s ex:abc-def ?o . @@ -181,7 +174,7 @@ void shouldParsePrefixedNameWithHyphenInLocalPart() { void shouldParsePrefixedNameWithEscapedReservedCharacterInLocalPart() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX ns: SELECT * WHERE { ?s ns:id\\=123 ?o . @@ -199,7 +192,7 @@ void shouldParsePrefixedNameWithEscapedReservedCharacterInLocalPart() { void shouldParsePrefixedNameWithDefaultPrefix() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX : SELECT * WHERE { ?s :foo ?o . @@ -238,7 +231,7 @@ void failFastFalseCollectErrorsTrueShouldThrowQuerySyntaxExceptionWithCollectedE @Test void shouldParseEmptyWhereGroup() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse("SELECT * WHERE { }"); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse("SELECT * WHERE { }"); assertNotNull(ast.whereClause()); // selon ton builder: TriplesBlock absent => pas de BgpAst, donc patterns vide diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBindTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBindTest.java index 4b0f98260..93156e8fb 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBindTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBindTest.java @@ -17,7 +17,7 @@ class SparqlParserBindTest extends AbstractSparqlParserFeatureTest { void shouldParseBindWithVariable() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(?s AS ?x) @@ -42,7 +42,7 @@ void shouldParseBindWithVariable() { void shouldParseBindWithConcat() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(CONCAT(?a, ?b) AS ?c) @@ -71,7 +71,7 @@ void shouldParseBindWithConcat() { void shouldParseBindWithArithmetic() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(?x + 1 AS ?y) @@ -95,7 +95,7 @@ void shouldParseBindWithArithmetic() { void shouldParseBindWithSubtractWithoutWhitespace() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT ?price WHERE { ?x ?p ?discount . BIND(?p*(1-?discount) AS ?price) @@ -130,7 +130,7 @@ void shouldParseBindWithSubtractWithoutWhitespace() { void shouldParseBindWithStringLiteral() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND("hello" AS ?label) @@ -155,7 +155,7 @@ void shouldParseBindWithStringLiteral() { void shouldParseBindWithIri() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND( AS ?type) @@ -180,7 +180,7 @@ void shouldParseBindWithIri() { void shouldParseMultipleBinds() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(?s AS ?x) @@ -206,7 +206,7 @@ void shouldParseMultipleBinds() { void shouldParseBindInsideOptional() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . OPTIONAL { BIND(?s AS ?x) } diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBnodeTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBnodeTest.java index ab9c2928f..0c41ea9f1 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBnodeTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserBnodeTest.java @@ -1,11 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.BnodeAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.IsBlankAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +22,7 @@ class SparqlParserBnodeTest extends AbstractSparqlParserFeatureTest { void shouldParseBnodeWithoutLabelInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(BNODE() AS ?b) @@ -45,7 +41,7 @@ void shouldParseBnodeWithoutLabelInBind() { void shouldParseBnodeWithLabelInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(BNODE(?label) AS ?b) @@ -64,7 +60,7 @@ void shouldParseBnodeWithLabelInBind() { void shouldParseNestedBnodeInIsBlankFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(isBlank(BNODE(?label))) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserCoalesceTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserCoalesceTest.java index adbbe123e..d549bc052 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserCoalesceTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserCoalesceTest.java @@ -6,16 +6,11 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.CoalesceAst; @DisplayName("SPARQL 1.1 - Parser and AST : COALESCE") @@ -26,7 +21,7 @@ class SparqlParserCoalesceTest extends AbstractSparqlParserFeatureTest { void shouldParseCoalesceWithThreeArgs() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(COALESCE(?s, ?p, ?o)) @@ -52,7 +47,7 @@ void shouldParseCoalesceWithThreeArgs() { void shouldParseCoalesceInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(COALESCE(?s, "default") AS ?result) @@ -75,7 +70,7 @@ void shouldParseCoalesceInBind() { void shouldParseCoalesceWithOneArg() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(COALESCE(?s)) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserConcatTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserConcatTest.java index 49030632b..9ba8c6b1b 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserConcatTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserConcatTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.ConcatAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserConcatTest extends AbstractSparqlParserFeatureTest { void shouldParseConcatInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?given, ?family . BIND(CONCAT(?given, " ", ?family) AS ?label) @@ -48,7 +43,7 @@ void shouldParseConcatInBind() { void shouldParseConcatWithLiteralArguments() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(CONCAT("foo", "bar") AS ?label) @@ -68,7 +63,7 @@ void shouldParseConcatWithLiteralArguments() { void shouldParseConcatInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(CONCAT(?a, ?b) = "ab") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserContainsTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserContainsTest.java index 993055485..593e82b4f 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserContainsTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserContainsTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.ContainsAst; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -25,7 +20,7 @@ class SparqlParserContainsTest extends AbstractSparqlParserFeatureTest { void shouldParseContainsInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(CONTAINS(?label, "core")) @@ -44,7 +39,7 @@ void shouldParseContainsInFilter() { void shouldParseContainsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(CONTAINS(?label, "core") AS ?hasCore) @@ -64,7 +59,7 @@ void shouldParseContainsInBind() { void shouldParseContainsWithLiteralArguments() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(CONTAINS("foobar", "bar") AS ?hasBar) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDateTimeFunctionsTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDateTimeFunctionsTest.java index a64132933..f41707429 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDateTimeFunctionsTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDateTimeFunctionsTest.java @@ -1,10 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.DayAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.HoursAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.MinutesAst; @@ -37,7 +34,7 @@ class SparqlParserDateTimeFunctionsTest extends AbstractSparqlParserFeatureTest void shouldParseNowInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(NOW() AS ?now) @@ -75,7 +72,7 @@ void shouldParseOrderByNow() { void shouldParseYearInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?date . BIND(YEAR(?date) AS ?y) @@ -127,7 +124,7 @@ void shouldRejectOrderByYearWhenVariableNotVisibleInWhere() { void shouldParseMonthInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?date . BIND(MONTH(?date) AS ?m) @@ -148,7 +145,7 @@ void shouldParseMonthInBind() { void shouldParseDayInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?date . BIND(DAY(?date) AS ?d) @@ -169,7 +166,7 @@ void shouldParseDayInBind() { void shouldParseHoursInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?dt . BIND(HOURS(?dt) AS ?h) @@ -190,7 +187,7 @@ void shouldParseHoursInBind() { void shouldParseMinutesInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?dt . BIND(MINUTES(?dt) AS ?min) @@ -211,7 +208,7 @@ void shouldParseMinutesInBind() { void shouldParseSecondsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?dt . BIND(SECONDS(?dt) AS ?sec) @@ -232,7 +229,7 @@ void shouldParseSecondsInBind() { void shouldParseTimezoneInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?dt . BIND(TIMEZONE(?dt) AS ?tz) @@ -253,7 +250,7 @@ void shouldParseTimezoneInBind() { void shouldParseTzInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?dt . BIND(TZ(?dt) AS ?tzStr) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDescribeTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDescribeTest.java index 373e4be0a..4cc2e48e5 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDescribeTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserDescribeTest.java @@ -148,7 +148,7 @@ void fromGraphs() { ?o . } """; - QueryAst queryAst = queryParser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) queryParser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -172,7 +172,7 @@ void fromMultipleGraphs() { ?o . } """; - QueryAst queryAst = queryParser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) queryParser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -196,7 +196,7 @@ void fromNamedGraphs() { ?o . } """; - QueryAst queryAst = queryParser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) queryParser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().namedGraphs()); @@ -220,7 +220,7 @@ void fromMultipleNamedGraphs() { ?o . } """; - QueryAst queryAst = queryParser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) queryParser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -246,7 +246,7 @@ void fromMultipleMixedGraphs() { ?o . } """; - QueryAst queryAst = queryParser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) queryParser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserEncodeForUriTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserEncodeForUriTest.java index 93dbb2bae..976d977bd 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserEncodeForUriTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserEncodeForUriTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EncodeForUriAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserEncodeForUriTest extends AbstractSparqlParserFeatureTest { void shouldParseEncodeForUriInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(ENCODE_FOR_URI(?label) AS ?encoded) @@ -45,7 +40,7 @@ void shouldParseEncodeForUriInBind() { void shouldParseEncodeForUriWithLiteralArgument() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(ENCODE_FOR_URI("Los Angeles") AS ?encoded) @@ -65,7 +60,7 @@ void shouldParseEncodeForUriWithLiteralArgument() { void shouldParseEncodeForUriInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(ENCODE_FOR_URI(?label) = "abc") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserFilterTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserFilterTest.java index c4d5ac08e..bfb7d0496 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserFilterTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserFilterTest.java @@ -1,5 +1,6 @@ package fr.inria.corese.core.next.query.impl.parser; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.*; import org.junit.jupiter.api.Test; @@ -7,13 +8,6 @@ import static org.junit.jupiter.api.Assertions.*; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.GroupGraphPatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.IriAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.PatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.AddAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.AndAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.BinaryRegexAst; @@ -48,7 +42,7 @@ class SparqlParserFilterTest extends AbstractSparqlParserFeatureTest { void shouldParseTrueFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(true) @@ -76,7 +70,7 @@ void shouldParseTrueFilter() { void shouldParseAndFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s && true) @@ -108,7 +102,7 @@ void shouldParseAndFilter() { void shouldParseOrFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT ?s WHERE { ?s ?p ?o . FILTER(?s || true) @@ -140,7 +134,7 @@ void shouldParseOrFilter() { void shouldParseNotFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(! ?s) @@ -170,7 +164,7 @@ void shouldParseNotFilter() { void shouldParseBoundFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(Bound( ?s)) @@ -200,7 +194,7 @@ void shouldParseBoundFilter() { void shouldParseIsIriFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(isIri( ?s)) @@ -230,7 +224,7 @@ void shouldParseIsIriFilter() { void shouldParseIsUriFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(isUri( ?s)) @@ -260,7 +254,7 @@ void shouldParseIsUriFilter() { void shouldParseIsBlankFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(isBlank( ?s)) @@ -290,7 +284,7 @@ void shouldParseIsBlankFilter() { void shouldParseIsLiteralFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(isLiteral( ?s)) @@ -320,7 +314,7 @@ void shouldParseIsLiteralFilter() { void shouldParseStrEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(str(?s) = "test") @@ -354,7 +348,7 @@ void shouldParseStrEqualsFilter() { void shouldParseLangEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(lang(?s) = "test") @@ -388,7 +382,7 @@ void shouldParseLangEqualsFilter() { void shouldParseDatatypeEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(datatype(?s) = "test") @@ -422,7 +416,7 @@ void shouldParseDatatypeEqualsFilter() { void shouldParseEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s = ) @@ -454,7 +448,7 @@ void shouldParseEqualsFilter() { void shouldParseDifferentFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s != ) @@ -486,7 +480,7 @@ void shouldParseDifferentFilter() { void shouldParseLowerFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s < ) @@ -518,7 +512,7 @@ void shouldParseLowerFilter() { void shouldParseLowerOrEqualFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s <= ) @@ -550,7 +544,7 @@ void shouldParseLowerOrEqualFilter() { void shouldParseGreaterFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s > ) @@ -582,7 +576,7 @@ void shouldParseGreaterFilter() { void shouldParseGreaterOrEqualFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s >= ) @@ -614,7 +608,7 @@ void shouldParseGreaterOrEqualFilter() { void shouldParseDivideEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s / 2 = "test") @@ -650,7 +644,7 @@ void shouldParseDivideEqualsFilter() { void shouldParseTimesEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s * 2 = "test") @@ -686,7 +680,7 @@ void shouldParseTimesEqualsFilter() { void shouldParseAddsEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s + 2 = "test") @@ -722,7 +716,7 @@ void shouldParseAddsEqualsFilter() { void shouldParseSubstractEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s - 2 = "test") @@ -758,7 +752,7 @@ void shouldParseSubstractEqualsFilter() { void shouldParseSameTermFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(sameTerm(?s, )) @@ -791,7 +785,7 @@ void shouldParseSameTermFilter() { void shouldParseLangMatchesFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(langMatches(?s, "test")) @@ -823,7 +817,7 @@ void shouldParseLangMatchesFilter() { void shouldParseBinaryRegexFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(REGEX(?s, "test")) @@ -854,7 +848,7 @@ void shouldParseBinaryRegexFilter() { void shouldParseTrinaryRegexFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(REGEX(?s, "test", "i")) @@ -888,7 +882,7 @@ void shouldParseTrinaryRegexFilter() { void shouldParseFunCallFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER((?s, "test")) @@ -924,7 +918,7 @@ void shouldParseFunCallFilter() { void shouldParseAddsUnaryMinusEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s + - 2 = "test") @@ -962,7 +956,7 @@ void shouldParseAddsUnaryMinusEqualsFilter() { void shouldParseAddSubChainEqualsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s * 2 + ?o - 5 = "test") @@ -1014,7 +1008,7 @@ void shouldParseAddSubChainEqualsFilter() { void shouldParseSubtractWithoutWhitespaceInsideParenthesizedMultiplyExpression() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?x ?p ?discount . ?x ?pricePredicate ?price . @@ -1045,7 +1039,7 @@ void shouldParseSubtractWithoutWhitespaceInsideParenthesizedMultiplyExpression() void shouldParseUnaryPlusFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(+ ?s) @@ -1075,7 +1069,7 @@ void shouldParseUnaryPlusFilter() { void shouldParseUnaryMinusFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(- ?s) @@ -1104,7 +1098,7 @@ void shouldParseUnaryMinusFilter() { void shouldParseChainedOrFilterLeftAssociatively() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?a || ?b || ?c) @@ -1130,7 +1124,7 @@ void shouldParseChainedOrFilterLeftAssociatively() { void shouldParseChainedAndFilterLeftAssociatively() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?a && ?b && ?c) @@ -1156,7 +1150,7 @@ void shouldParseChainedAndFilterLeftAssociatively() { void shouldParseSignedNegativeLiteralInAdditiveExpression() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s - -2 = "test") @@ -1179,7 +1173,7 @@ void shouldParseSignedNegativeLiteralInAdditiveExpression() { void shouldParseSignedPositiveLiteralInAdditiveExpression() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s + +2 = "test") @@ -1202,7 +1196,7 @@ void shouldParseSignedPositiveLiteralInAdditiveExpression() { void shouldParseMixedMultiplyThenDivideLeftAssociatively() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s * 2 / 3 = "test") @@ -1229,7 +1223,7 @@ void shouldParseMixedMultiplyThenDivideLeftAssociatively() { void shouldParseMixedDivideThenMultiplyLeftAssociatively() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(?s / 2 * 3 = "test") @@ -1256,7 +1250,7 @@ void shouldParseMixedDivideThenMultiplyLeftAssociatively() { void shouldParseExistsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER EXISTS { ?s ex:email ?e } @@ -1282,7 +1276,7 @@ void shouldParseExistsFilter() { void shouldParseNotExistsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER NOT EXISTS { ?s ex:email ?e } @@ -1308,7 +1302,7 @@ void shouldParseNotExistsFilter() { void shouldParseNotOverExistsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(!EXISTS { ?s ex:email ?e }) @@ -1331,7 +1325,7 @@ void shouldParseNotOverExistsFilter() { void shouldParseNotOverNotExistsFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(!NOT EXISTS { ?s ex:email ?e }) @@ -1354,7 +1348,7 @@ void shouldParseNotOverNotExistsFilter() { void shouldParseExistsWithMultipleTriples() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER EXISTS { @@ -1376,7 +1370,7 @@ void shouldParseExistsWithMultipleTriples() { void shouldParseNotExistsEmpty() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER NOT EXISTS { } @@ -1395,7 +1389,7 @@ void shouldParseNotExistsEmpty() { @Test void shouldParseAndBetweenTwoExistsFilters() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX ex: SELECT * WHERE { @@ -1419,7 +1413,7 @@ void shouldParseAndBetweenTwoExistsFilters() { @Test void shouldParseOrBetweenExistsAndNotExistsFilters() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX ex: SELECT * WHERE { diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserHashFunctionsTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserHashFunctionsTest.java index 89b19b90c..4249436eb 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserHashFunctionsTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserHashFunctionsTest.java @@ -6,14 +6,11 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.Md5Ast; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.Sha1Ast; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.Sha256Ast; @@ -28,7 +25,7 @@ class SparqlParserHashFunctionsTest extends AbstractSparqlParserFeatureTest { void shouldParseMd5InBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(MD5(?label) AS ?hash) @@ -47,7 +44,7 @@ void shouldParseMd5InBind() { void shouldParseSha1InBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(SHA1(?label) AS ?hash) @@ -66,7 +63,7 @@ void shouldParseSha1InBind() { void shouldParseSha256InBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(SHA256(?label) AS ?hash) @@ -85,7 +82,7 @@ void shouldParseSha256InBind() { void shouldParseSha384InBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(SHA384(?label) AS ?hash) @@ -104,7 +101,7 @@ void shouldParseSha384InBind() { void shouldParseSha512InBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(SHA512(?label) AS ?hash) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIfTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIfTest.java index b53c1bfbb..455eaf85c 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIfTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIfTest.java @@ -16,7 +16,7 @@ class SparqlParserIfTest extends AbstractSparqlParserFeatureTest { void shouldParseIfInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(IF(?s > 0, true, false)) @@ -38,7 +38,7 @@ void shouldParseIfInFilter() { void shouldParseIfInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(IF(?s > 0, ?s, ?o) AS ?result) @@ -60,7 +60,7 @@ void shouldParseIfInBind() { void shouldParseIfWithBoundCondition() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(IF(BOUND(?o), ?o, "default") AS ?val) @@ -82,7 +82,7 @@ void shouldParseIfWithBoundCondition() { void shouldParseNestedIf() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(IF(?s, IF(?p, ?p, ?o), ?o) AS ?r) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserInTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserInTest.java index 5d70015ae..0a9c27854 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserInTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserInTest.java @@ -1,11 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.InAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.NotInAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +22,7 @@ class SparqlParserInTest extends AbstractSparqlParserFeatureTest { void shouldParseInWithLiterals() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?x . FILTER(?x IN (1, 2, 3)) @@ -48,7 +44,7 @@ void shouldParseInWithLiterals() { void shouldParseInEmptyList() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(2 IN ()) @@ -67,7 +63,7 @@ void shouldParseInEmptyList() { void shouldParseNotIn() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?x . FILTER(?x NOT IN (1, 2)) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIriTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIriTest.java index 7887ff285..5944a9724 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIriTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserIriTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.IriAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.IriFunctionAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserIriTest extends AbstractSparqlParserFeatureTest { void shouldParseIriInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?lex . BIND(IRI(?lex) AS ?iri) @@ -45,7 +40,7 @@ void shouldParseIriInBind() { void shouldParseUriAliasInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?lex . BIND(URI(?lex) AS ?iri) @@ -64,7 +59,7 @@ void shouldParseUriAliasInBind() { void shouldParseIriInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?lex . FILTER(IRI(?lex) = ) @@ -84,7 +79,7 @@ void shouldParseIriInFilterComparison() { void shouldParseOrderByIri() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT ?lex WHERE { ?s ?p ?lex . } ORDER BY IRI(?lex) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLangMatchesTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLangMatchesTest.java index 4adc23050..cdb6c77f6 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLangMatchesTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLangMatchesTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.BooleanExpressionAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.LangMatchesAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserLangMatchesTest extends AbstractSparqlParserFeatureTest { void shouldParseLangMatchesInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(LANGMATCHES(LANG(?o), "fr") AS ?match) @@ -45,7 +40,7 @@ void shouldParseLangMatchesInBind() { void shouldParseLangMatchesInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?title . FILTER(LANGMATCHES(LANG(?title), "fr")) @@ -63,7 +58,7 @@ void shouldParseLangMatchesInFilter() { void shouldParseLangMatchesWithWildcardRange() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?title . FILTER(LANGMATCHES(LANG(?title), "*")) @@ -82,7 +77,7 @@ void shouldParseLangMatchesWithWildcardRange() { void shouldParseLangMatchesWithVariableArguments() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(LANGMATCHES(?lang, "fr")) @@ -101,7 +96,7 @@ void shouldParseLangMatchesWithVariableArguments() { void shouldParseOrderByLangMatches() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT ?title WHERE { ?s ?title . } ORDER BY LANGMATCHES(LANG(?title), "fr") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLcaseTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLcaseTest.java index c08459844..2c7c522f4 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLcaseTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLcaseTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.LcaseAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserLcaseTest extends AbstractSparqlParserFeatureTest { void shouldParseLcaseInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(LCASE(?label) AS ?lower) @@ -45,7 +40,7 @@ void shouldParseLcaseInBind() { void shouldParseLcaseWithLiteralArgument() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(LCASE("CORESE") AS ?lower) @@ -65,7 +60,7 @@ void shouldParseLcaseWithLiteralArgument() { void shouldParseLcaseInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(LCASE(?label) = "core") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLoadQueryTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLoadQueryTest.java new file mode 100644 index 000000000..06b8d122d --- /dev/null +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserLoadQueryTest.java @@ -0,0 +1,84 @@ +package fr.inria.corese.core.next.query.impl.parser; + +import fr.inria.corese.core.next.query.api.io.parser.QueryParser; +import fr.inria.corese.core.next.query.impl.sparql.ast.IriAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.LoadQueryAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class SparqlParserLoadQueryTest extends AbstractSparqlParserFeatureTest{ + + @Test + public void simpleQueryTest() { + QueryParser parser = newParserDefault(); + String query = """ + LOAD + """; + + QueryAst queryAst = parser.parse(query); + assertInstanceOf(LoadQueryAst.class, queryAst); + LoadQueryAst loadQueryAst = (LoadQueryAst) queryAst; + assertEquals(1, loadQueryAst.fromClause().size()); + IriAst graphIri = (IriAst) loadQueryAst.fromClause().toArray()[0]; + assertEquals("", graphIri.raw()); + assertEquals(0, loadQueryAst.toClause().size()); + assertFalse(loadQueryAst.silent()); + } + + @Test + public void simpleSilentQueryTest() { + QueryParser parser = newParserDefault(); + String query = """ + LOAD SILENT + """; + + QueryAst queryAst = parser.parse(query); + assertInstanceOf(LoadQueryAst.class, queryAst); + LoadQueryAst loadQueryAst = (LoadQueryAst) queryAst; + assertEquals(1, loadQueryAst.fromClause().size()); + IriAst graphIri = (IriAst) loadQueryAst.fromClause().toArray()[0]; + assertEquals("", graphIri.raw()); + assertEquals(0, loadQueryAst.toClause().size()); + assertTrue(loadQueryAst.silent()); + } + + @Test + public void fullQueryTest() { + QueryParser parser = newParserDefault(); + String query = """ + LOAD INTO GRAPH + """; + + QueryAst queryAst = parser.parse(query); + assertInstanceOf(LoadQueryAst.class, queryAst); + LoadQueryAst loadQueryAst = (LoadQueryAst) queryAst; + assertEquals(1, loadQueryAst.fromClause().size()); + IriAst graphIri = (IriAst) loadQueryAst.fromClause().toArray()[0]; + assertEquals("", graphIri.raw()); + assertEquals(1, loadQueryAst.toClause().size()); + IriAst targetGraphIri = (IriAst) loadQueryAst.toClause().toArray()[0]; + assertEquals("", targetGraphIri.raw()); + assertFalse(loadQueryAst.silent()); + } + + @Test + public void fullSilentQueryTest() { + QueryParser parser = newParserDefault(); + String query = """ + LOAD SILENT INTO GRAPH + """; + + QueryAst queryAst = parser.parse(query); + assertInstanceOf(LoadQueryAst.class, queryAst); + LoadQueryAst loadQueryAst = (LoadQueryAst) queryAst; + assertEquals(1, loadQueryAst.fromClause().size()); + IriAst graphIri = (IriAst) loadQueryAst.fromClause().toArray()[0]; + assertEquals("", graphIri.raw()); + assertEquals(1, loadQueryAst.toClause().size()); + IriAst targetGraphIri = (IriAst) loadQueryAst.toClause().toArray()[0]; + assertEquals("", targetGraphIri.raw()); + assertTrue(loadQueryAst.silent()); + } +} diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserMinusTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserMinusTest.java index c7905ed9b..936d1a4ae 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserMinusTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserMinusTest.java @@ -2,12 +2,7 @@ import fr.inria.corese.core.next.query.api.exception.QueryValidationException; import fr.inria.corese.core.next.query.impl.parser.semantic.support.VariableScopeAnalyzer; -import fr.inria.corese.core.next.query.impl.sparql.ast.BgpAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.GroupGraphPatternAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.MinusAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -51,7 +46,7 @@ void shouldParseSelectWithMinusPattern() { void shouldNotExposeMinusVariablesToFollowingBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . MINUS { ?s ?q ?hidden . } diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserNumericFunctionsTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserNumericFunctionsTest.java index 05a586b07..02715cd93 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserNumericFunctionsTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserNumericFunctionsTest.java @@ -1,11 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.AbsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.CeilAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.FloorAst; @@ -28,7 +24,7 @@ class SparqlParserNumericFunctionsTest extends AbstractSparqlParserFeatureTest { void shouldParseAbsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(ABS(?x) AS ?abs) @@ -47,7 +43,7 @@ void shouldParseAbsInBind() { void shouldParseRoundInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(ROUND(?x)) @@ -65,7 +61,7 @@ void shouldParseRoundInFilter() { void shouldParseCeilInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(CEIL(?x)) @@ -83,7 +79,7 @@ void shouldParseCeilInFilter() { void shouldParseFloorInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(FLOOR(?x)) @@ -101,7 +97,7 @@ void shouldParseFloorInFilter() { void shouldParseRandInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(RAND() AS ?rand) @@ -119,7 +115,7 @@ void shouldParseRandInBind() { void shouldParseRandInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(RAND()) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserPrologueTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserPrologueTest.java index 97f59b355..f86f6f305 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserPrologueTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserPrologueTest.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import fr.inria.corese.core.next.query.impl.sparql.ast.SparqlQueryAst; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -27,7 +28,7 @@ void askWithBase() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(query); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(query); assertEquals("http://ns.inria.fr/test/", ast.prologue().baseIri().raw()); } @@ -46,7 +47,7 @@ void constructWithBase() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(query); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(query); assertEquals("http://ns.inria.fr/test/", ast.prologue().baseIri().raw()); } @@ -62,7 +63,7 @@ void describeWithBase() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(query); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(query); assertEquals("http://ns.inria.fr/test/", ast.prologue().baseIri().raw()); } diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserRegexTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserRegexTest.java index 81159437d..e49a497ab 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserRegexTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserRegexTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.BinaryRegexAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.TrinaryRegexAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserRegexTest extends AbstractSparqlParserFeatureTest { void shouldParseBinaryRegexInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(REGEX(?label, "test")) @@ -45,7 +40,7 @@ void shouldParseBinaryRegexInFilter() { void shouldParseBinaryRegexInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(REGEX(?label, "test") AS ?matches) @@ -65,7 +60,7 @@ void shouldParseBinaryRegexInBind() { void shouldParseTrinaryRegexInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(REGEX(?label, "test", "i")) @@ -85,7 +80,7 @@ void shouldParseTrinaryRegexInFilter() { void shouldParseTrinaryRegexInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(REGEX(?label, "^hello", "i") AS ?matches) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserReplaceTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserReplaceTest.java index efce818b0..8dcbe54bb 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserReplaceTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserReplaceTest.java @@ -1,11 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.ReplaceAst; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -25,7 +21,7 @@ class SparqlParserReplaceTest extends AbstractSparqlParserFeatureTest { void shouldParseReplaceWithoutFlagsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(REPLACE(?label, "core", "CORE") AS ?normalized) @@ -48,7 +44,7 @@ void shouldParseReplaceWithoutFlagsInBind() { void shouldParseReplaceWithFlagsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(REPLACE(?label, "core", "CORE", "i") AS ?normalized) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSelectQueryTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSelectQueryTest.java index 019e290dd..4add38d33 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSelectQueryTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSelectQueryTest.java @@ -948,7 +948,7 @@ public void fromGraphs() { ?o . } LIMIT 10 """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -972,7 +972,7 @@ public void fromMultipleGraphs() { ?o . } LIMIT 10 """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -996,7 +996,7 @@ public void fromNamedGraphs() { ?o . } LIMIT 10 """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().namedGraphs()); @@ -1020,7 +1020,7 @@ public void fromMultipleNamedGraphs() { ?o . } LIMIT 10 """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); @@ -1046,7 +1046,7 @@ public void fromMultipleMixedGraphs() { ?o . } LIMIT 10 """; - QueryAst queryAst = parser.parse(commentedQuery); + SparqlQueryAst queryAst = (SparqlQueryAst) parser.parse(commentedQuery); assertNotNull(queryAst); assertNotNull(queryAst.datasetClause()); assertNotNull(queryAst.datasetClause().graphs()); diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserServiceTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserServiceTest.java index 71c722625..12de0c450 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserServiceTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserServiceTest.java @@ -24,7 +24,7 @@ class BasicServiceIri { void shouldParseServiceWithIriEndpoint() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { SERVICE { @@ -52,7 +52,7 @@ void shouldParseServiceWithIriEndpoint() { void serviceBodyShouldContainBgp() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { SERVICE { @@ -83,7 +83,7 @@ class ServiceSilent { void shouldParseSilentService() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { SERVICE SILENT { @@ -105,7 +105,7 @@ void shouldParseSilentService() { void shouldParseNonSilentService() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { SERVICE { @@ -128,7 +128,7 @@ class ServiceVariable { void shouldParseServiceWithVariableEndpoint() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?endpoint a . @@ -158,7 +158,7 @@ class ServiceMixed { void bgpBeforeAndAfterService() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s a . @@ -181,7 +181,7 @@ void bgpBeforeAndAfterService() { void serviceAndOptional() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { SERVICE { @@ -202,7 +202,7 @@ void serviceAndOptional() { void nestedServiceInsideOptional() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s a . @@ -234,7 +234,7 @@ class ServiceMultipleTriples { void multipleTriplesSameBgp() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { SERVICE { @@ -255,7 +255,7 @@ void multipleTriplesSameBgp() { void serviceBodyWithFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { SERVICE { diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrAfterTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrAfterTest.java index 01a3a342c..3f629afa6 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrAfterTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrAfterTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrAfterAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserStrAfterTest extends AbstractSparqlParserFeatureTest { void shouldParseStrAfterInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRAFTER(?label, "core") AS ?suffix) @@ -46,7 +41,7 @@ void shouldParseStrAfterInBind() { void shouldParseStrAfterWithLiteralArguments() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRAFTER("foobar", "foo") AS ?suffix) @@ -66,7 +61,7 @@ void shouldParseStrAfterWithLiteralArguments() { void shouldParseStrAfterInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(STRAFTER(?label, "core") = "suffix") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrBeforeTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrBeforeTest.java index 737f35d10..3fe83c496 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrBeforeTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrBeforeTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrBeforeAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserStrBeforeTest extends AbstractSparqlParserFeatureTest { void shouldParseStrBeforeInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRBEFORE(?label, "core") AS ?prefix) @@ -46,7 +41,7 @@ void shouldParseStrBeforeInBind() { void shouldParseStrBeforeWithLiteralArguments() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRBEFORE("foobar", "bar") AS ?prefix) @@ -66,7 +61,7 @@ void shouldParseStrBeforeWithLiteralArguments() { void shouldParseStrBeforeInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(STRBEFORE(?label, "core") = "pre") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrDtTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrDtTest.java index 33d95f04b..a91be4f00 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrDtTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrDtTest.java @@ -1,13 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.IriAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrDtAst; import org.junit.jupiter.api.DisplayName; @@ -27,7 +21,7 @@ class SparqlParserStrDtTest extends AbstractSparqlParserFeatureTest { void shouldParseStrDtInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX xsd: SELECT * WHERE { ?s ?p ?label . @@ -48,7 +42,7 @@ void shouldParseStrDtInBind() { void shouldParseStrDtWithLiteralArgument() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX xsd: SELECT * WHERE { ?s ?p ?label . @@ -69,7 +63,7 @@ void shouldParseStrDtWithLiteralArgument() { void shouldParseStrDtInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" PREFIX xsd: SELECT * WHERE { ?s ?p ?label . diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrEndsTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrEndsTest.java index 67ac44146..f0dbf4fcd 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrEndsTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrEndsTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrEndsAst; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -25,7 +20,7 @@ class SparqlParserStrEndsTest extends AbstractSparqlParserFeatureTest { void shouldParseStrEndsInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(STRENDS(?label, "core")) @@ -44,7 +39,7 @@ void shouldParseStrEndsInFilter() { void shouldParseStrEndsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRENDS(?label, "core") AS ?endsWithCore) @@ -64,7 +59,7 @@ void shouldParseStrEndsInBind() { void shouldParseStrEndsWithLiteralArguments() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRENDS("foobar", "bar") AS ?endsWithBar) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLangTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLangTest.java index 87bcfff75..0ceebdc3e 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLangTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLangTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrLangAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserStrLangTest extends AbstractSparqlParserFeatureTest { void shouldParseStrLangInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRLANG(?label, "en") AS ?tagged) @@ -46,7 +41,7 @@ void shouldParseStrLangInBind() { void shouldParseStrLangWithLiteralArgument() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRLANG("chat", "fr") AS ?tagged) @@ -66,7 +61,7 @@ void shouldParseStrLangWithLiteralArgument() { void shouldParseStrLangInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(STRLANG("chat", "fr") = "chat"@fr) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLenTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLenTest.java index 073c6c7a7..c5859f5a7 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLenTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrLenTest.java @@ -1,10 +1,6 @@ package fr.inria.corese.core.next.query.impl.parser; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrLenAst; import org.junit.jupiter.api.DisplayName; @@ -22,7 +18,7 @@ class SparqlParserStrLenTest extends AbstractSparqlParserFeatureTest { void shouldParseStrLen() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(STRLEN(?s) AS ?len) @@ -41,7 +37,7 @@ void shouldParseStrLen() { void shouldParseStrLenInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(STRLEN(?s) = 2) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrStartsTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrStartsTest.java index 93fa49c19..9c96eec2b 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrStartsTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrStartsTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrStartsAst; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -25,7 +20,7 @@ class SparqlParserStrStartsTest extends AbstractSparqlParserFeatureTest { void shouldParseStrStartsInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(STRSTARTS(?label, "core")) @@ -44,7 +39,7 @@ void shouldParseStrStartsInFilter() { void shouldParseStrStartsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRSTARTS(?label, "core") AS ?startsWithCore) @@ -64,7 +59,7 @@ void shouldParseStrStartsInBind() { void shouldParseStrStartsWithLiteralArguments() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(STRSTARTS("foobar", "foo") AS ?startsWithFoo) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrUuidTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrUuidTest.java index 0c6e5cdb6..0e1ed610d 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrUuidTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserStrUuidTest.java @@ -1,10 +1,6 @@ package fr.inria.corese.core.next.query.impl.parser; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.StrUuidAst; @@ -24,7 +20,7 @@ class SparqlParserStrUuidTest extends AbstractSparqlParserFeatureTest { void shouldParseStrUuid() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(STRUUID() AS ?id) @@ -42,7 +38,7 @@ void shouldParseStrUuid() { void shouldParseStrUuidInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(STRUUID() = STR(?s)) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSubstrTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSubstrTest.java index 07f879e7e..82e23c2d3 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSubstrTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserSubstrTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.SubstrAst; import org.junit.jupiter.api.DisplayName; @@ -27,7 +22,7 @@ class SparqlParserSubstrTest extends AbstractSparqlParserFeatureTest { void shouldParseSubstrWithTwoArgumentsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(SUBSTR(?label, 2) AS ?slice) @@ -48,7 +43,7 @@ void shouldParseSubstrWithTwoArgumentsInBind() { void shouldParseSubstrWithThreeArgumentsInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(SUBSTR("foobar", 4, 3) AS ?slice) @@ -69,7 +64,7 @@ void shouldParseSubstrWithThreeArgumentsInBind() { void shouldParseSubstrInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(SUBSTR(?label, 2, 3) = "ore") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserTest.java index ae64ff0fc..da3f4611b 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserTest.java @@ -14,6 +14,7 @@ import java.io.StringReader; import java.nio.charset.StandardCharsets; +import fr.inria.corese.core.next.query.impl.sparql.ast.SparqlQueryAst; import org.junit.jupiter.api.Test; import org.antlr.v4.runtime.misc.ParseCancellationException; @@ -39,8 +40,8 @@ class SparqlParserTest { void parseStringReturnsSameResultAsParseReader() { SparqlParser parser = new SparqlParser(new SparqlParserOptions.Builder().build()); - QueryAst fromString = parser.parse(VALID_SELECT_QUERY); - QueryAst fromReader = parser.parse(new StringReader(VALID_SELECT_QUERY)); + SparqlQueryAst fromString = (SparqlQueryAst) parser.parse(VALID_SELECT_QUERY); + SparqlQueryAst fromReader = (SparqlQueryAst) parser.parse(new StringReader(VALID_SELECT_QUERY)); assertNotNull(fromString); assertNotNull(fromReader); @@ -55,7 +56,7 @@ void parseInputStreamUsesUtf8() { SparqlParser parser = new SparqlParser(new SparqlParserOptions.Builder().build()); byte[] bytes = VALID_SELECT_QUERY.getBytes(StandardCharsets.UTF_8); - QueryAst ast = parser.parse(new ByteArrayInputStream(bytes)); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(new ByteArrayInputStream(bytes)); assertNotNull(ast); assertNotNull(ast.whereClause()); @@ -136,7 +137,7 @@ void parseCancellationUsesCollectedDiagnosticsWhenAvailable() { void parserWithNullConfigParseStillWorks() { SparqlParser parser = new SparqlParser((QueryOptions) null); - QueryAst ast = parser.parse(VALID_SELECT_QUERY); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(VALID_SELECT_QUERY); assertNotNull(ast); assertNotNull(ast.whereClause()); diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUcaseTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUcaseTest.java index d7495b541..bae52dc24 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUcaseTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUcaseTest.java @@ -1,12 +1,7 @@ package fr.inria.corese.core.next.query.impl.parser; import fr.inria.corese.core.next.query.api.exception.QueryValidationException; -import fr.inria.corese.core.next.query.impl.sparql.ast.BindAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.FilterAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.LiteralAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.QueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.SelectQueryAst; -import fr.inria.corese.core.next.query.impl.sparql.ast.VarAst; +import fr.inria.corese.core.next.query.impl.sparql.ast.*; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.EqualsAst; import fr.inria.corese.core.next.query.impl.sparql.ast.constraint.UcaseAst; import org.junit.jupiter.api.DisplayName; @@ -26,7 +21,7 @@ class SparqlParserUcaseTest extends AbstractSparqlParserFeatureTest { void shouldParseUcaseInBind() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(UCASE(?label) AS ?upper) @@ -45,7 +40,7 @@ void shouldParseUcaseInBind() { void shouldParseUcaseWithLiteralArgument() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . BIND(UCASE("corese") AS ?upper) @@ -65,7 +60,7 @@ void shouldParseUcaseWithLiteralArgument() { void shouldParseUcaseInFilterComparison() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?label . FILTER(UCASE(?label) = "CORE") diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUuidTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUuidTest.java index 5565b5921..22d93f0f7 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUuidTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserUuidTest.java @@ -19,7 +19,7 @@ class SparqlParserUuidTest extends AbstractSparqlParserFeatureTest { void shouldParseUuid() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . BIND(UUID() AS ?id) @@ -37,7 +37,7 @@ void shouldParseUuid() { void shouldParseUuidInFilter() { SparqlParser parser = newParserDefault(); - QueryAst ast = parser.parse(""" + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(""" SELECT * WHERE { ?s ?p ?o . FILTER(UUID() = ?s) diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserValuesTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserValuesTest.java index d158cafc4..d61b237dc 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserValuesTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/parser/SparqlParserValuesTest.java @@ -20,7 +20,7 @@ public void inlineSyntaxTest() { VALUES ?var { "test" } } """; - QueryAst ast = parser.parse(inlineValueTest); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(inlineValueTest); assertNotNull(ast); ValuesAst valuesAst = ast.valuesClause(); assertNotNull(valuesAst); @@ -45,7 +45,7 @@ public void fullSyntaxTest() { VALUES (?var1 ?var2) { ("test1" ) ("test2" ) } } """; - QueryAst ast = parser.parse(inlineValueTest); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(inlineValueTest); assertNotNull(ast); ValuesAst valuesAst = ast.valuesClause(); assertNotNull(valuesAst); @@ -87,7 +87,7 @@ public void multipleValuesTest() { } VALUES (?var2 ?var3) { ("test2" ) } """; - QueryAst ast = parser.parse(inlineValueTest); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(inlineValueTest); assertNotNull(ast); ValuesAst valuesAst = ast.valuesClause(); assertNotNull(valuesAst); @@ -123,7 +123,7 @@ public void nilValueSyntaxTest() { VALUES ?var { "test" UNDEF } } """; - QueryAst ast = parser.parse(inlineValueTest); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(inlineValueTest); assertNotNull(ast); ValuesAst valuesAst = ast.valuesClause(); assertNotNull(valuesAst); @@ -147,7 +147,7 @@ public void nilVarNilValueSyntaxTest() { VALUES () { () } } """; - QueryAst ast = parser.parse(inlineValueTest); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(inlineValueTest); assertNotNull(ast); ValuesAst valuesAst = ast.valuesClause(); assertNotNull(valuesAst); @@ -163,7 +163,7 @@ public void nilVarSomeValueSyntaxExceptionTest() { VALUES () { ( "test" ) } } """; - QueryAst ast = parser.parse(inlineValueTest); + SparqlQueryAst ast = (SparqlQueryAst) parser.parse(inlineValueTest); assertNotNull(ast); ValuesAst valuesAst = ast.valuesClause(); assertNotNull(valuesAst); diff --git a/src/test/java/fr/inria/corese/core/next/query/impl/sparql/ast/SparqlAstTest.java b/src/test/java/fr/inria/corese/core/next/query/impl/sparql/ast/SparqlAstTest.java index 4cdfa6e91..1ad842327 100644 --- a/src/test/java/fr/inria/corese/core/next/query/impl/sparql/ast/SparqlAstTest.java +++ b/src/test/java/fr/inria/corese/core/next/query/impl/sparql/ast/SparqlAstTest.java @@ -385,7 +385,7 @@ void whereClauseAccessor() { GroupGraphPatternAst where = new GroupGraphPatternAst(List.of( new BgpAst(List.of(new TriplePatternAst( new VarAst("s"), new VarAst("p"), new VarAst("o")))))); - QueryAst q = new SelectQueryAst(where); + SparqlQueryAst q = new SelectQueryAst(where); assertSame(where, q.whereClause()); } @@ -462,7 +462,7 @@ void queryAstWithNestedStructures() { BgpAst bgp = new BgpAst(List.of( new TriplePatternAst(new VarAst("s"), new IriAst("a"), new VarAst("o")))); GroupGraphPatternAst where = new GroupGraphPatternAst(List.of(bgp)); - QueryAst q = new SelectQueryAst(where); + SparqlQueryAst q = new SelectQueryAst(where); assertEquals(1, q.whereClause().patterns().size()); assertEquals(1, ((BgpAst) q.whereClause().patterns().get(0)).triples().size()); }