Package org.apache.groovy.ginq.dsl
Class GinqAstBuilder
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.apache.groovy.ginq.dsl.GinqAstBuilder
- All Implemented Interfaces:
SyntaxErrorReportable,GroovyCodeVisitor
Build the AST for GINQ
- Since:
- 4.0.0
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionGinqAstBuilder(SourceUnit sourceUnit) Creates a builder for the supplied source unit. -
Method Summary
Modifier and TypeMethodDescriptionBuilds a GINQ AST from the supplied AST node.Returns the source unit used for syntax reporting.voidvisitArgumentlistExpression(ArgumentListExpression expression) Visits argument lists and replaces nestedselectexpressions with built GINQ AST nodes.voidvisitBinaryExpression(BinaryExpression expression) Visits binary expressions to wire nested GINQ expressions into filters.voidvisitCastExpression(CastExpression expression) Visits cast expressions and substitutes nested GINQ expressions when needed.voidvisitDeclarationExpression(DeclarationExpression expression) Visits declaration expressions and rejects assignments inside clause keywords.voidVisits method-call expressions while assembling GINQ clauses.voidvisitPropertyExpression(PropertyExpression expression) Visits property expressions and reports malformed aliases inselect.voidvisitVariableExpression(VariableExpression expression) Visits variable expressions and validates GINQ keywords.Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCatchStatement, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDoWhileLoop, visitEmptyStatement, visitExpressionStatement, visitFieldExpression, visitForLoop, visitGStringExpression, visitIfElse, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitWhileLoopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visit, visit, visitEmptyExpression, visitListOfExpressionsMethods inherited from interface org.apache.groovy.ginq.dsl.SyntaxErrorReportable
collectSyntaxError
-
Field Details
-
ROOT_GINQ_EXPRESSION
Metadata key storing the root GINQ expression.- See Also:
-
GINQ_SELECT_DISTINCT
Metadata key markingselect distinct.- See Also:
-
-
Constructor Details
-
GinqAstBuilder
Creates a builder for the supplied source unit.- Parameters:
sourceUnit- the source unit being processed
-
-
Method Details
-
buildAST
Builds a GINQ AST from the supplied AST node.- Parameters:
astNode- the node containing GINQ code- Returns:
- the built GINQ expression
-
visitMethodCallExpression
Visits method-call expressions while assembling GINQ clauses.- Specified by:
visitMethodCallExpressionin interfaceGroovyCodeVisitor- Overrides:
visitMethodCallExpressionin classCodeVisitorSupport- Parameters:
call- the method call to visit
-
visitBinaryExpression
Visits binary expressions to wire nested GINQ expressions into filters.- Specified by:
visitBinaryExpressionin interfaceGroovyCodeVisitor- Overrides:
visitBinaryExpressionin classCodeVisitorSupport- Parameters:
expression- the expression to visit
-
visitVariableExpression
Visits variable expressions and validates GINQ keywords.- Specified by:
visitVariableExpressionin interfaceGroovyCodeVisitor- Overrides:
visitVariableExpressionin classCodeVisitorSupport- Parameters:
expression- the expression to visit
-
visitPropertyExpression
Visits property expressions and reports malformed aliases inselect.- Specified by:
visitPropertyExpressionin interfaceGroovyCodeVisitor- Overrides:
visitPropertyExpressionin classCodeVisitorSupport- Parameters:
expression- the expression to visit
-
visitDeclarationExpression
Visits declaration expressions and rejects assignments inside clause keywords.- Specified by:
visitDeclarationExpressionin interfaceGroovyCodeVisitor- Overrides:
visitDeclarationExpressionin classCodeVisitorSupport- Parameters:
expression- the expression to visit
-
visitCastExpression
Visits cast expressions and substitutes nested GINQ expressions when needed.- Specified by:
visitCastExpressionin interfaceGroovyCodeVisitor- Overrides:
visitCastExpressionin classCodeVisitorSupport- Parameters:
expression- the expression to visit
-
visitArgumentlistExpression
Visits argument lists and replaces nestedselectexpressions with built GINQ AST nodes.- Specified by:
visitArgumentlistExpressionin interfaceGroovyCodeVisitor- Overrides:
visitArgumentlistExpressionin classCodeVisitorSupport- Parameters:
expression- the expression to visit
-
getSourceUnit
Returns the source unit used for syntax reporting.- Specified by:
getSourceUnitin interfaceSyntaxErrorReportable- Returns:
- the current source unit
-