Class BaseVisitor
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.apache.groovy.contracts.ast.visitor.BaseVisitor
- All Implemented Interfaces:
GroovyClassVisitor,GroovyCodeVisitor,ErrorCollecting
- Direct Known Subclasses:
AnnotationClosureVisitor,AnnotationContractParameterVisitor,AnnotationProcessorVisitor,ContractElementVisitor,DomainModelInjectionVisitor,DynamicSetterInjectionVisitor,LifecycleAfterTransformationVisitor,LifecycleBeforeTransformationVisitor
Base class for ClassCodeVisitorSupport descendants. This class is used in groovy-contracts
as root class for all code visitors directly used by global AST transformations.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringLocal variable name used by generated code to guard contract execution.protected final SourceUnitSource unit currently being visited. -
Constructor Summary
ConstructorsConstructorDescriptionBaseVisitor(SourceUnit sourceUnit, ReaderSource source) Creates a visitor bound to the supplied source unit. -
Method Summary
Modifier and TypeMethodDescriptionstatic BooleanExpressionasConditionExecution(AnnotationNode annotation) Creates a boolean expression that invokes the generated closure backing the supplied annotation.protected static ClosureExpressiongetOriginalCondition(AnnotationNode annotation) Returns the original closure expression stored on the annotation, if it has not yet been replaced.protected static ExpressiongetReplacedCondition(AnnotationNode annotation) Returns the rewritten annotation value once the original closure has been replaced.protected SourceUnitReturns the source unit associated with this visitor.protected static voidreplaceCondition(AnnotationNode node, Expression expr) Replaces the annotation value with the generated expression used by later transformation phases.Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotation, visitAnnotations, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitClosureExpression, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitStatementAnnotations, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoopMethods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpressionMethods 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, visitListOfExpressions
-
Field Details
-
GCONTRACTS_ENABLED_VAR
Local variable name used by generated code to guard contract execution.- See Also:
-
sourceUnit
Source unit currently being visited.
-
-
Constructor Details
-
BaseVisitor
Creates a visitor bound to the supplied source unit.- Parameters:
sourceUnit- the source unit currently being transformedsource- the reader source backing the source unit
-
-
Method Details
-
getSourceUnit
Returns the source unit associated with this visitor.- Specified by:
getSourceUnitin classClassCodeVisitorSupport- Returns:
- the current source unit
-
asConditionExecution
Creates a boolean expression that invokes the generated closure backing the supplied annotation.- Parameters:
annotation- the contract annotation whose closure should be executed- Returns:
- a boolean expression that evaluates the generated closure
-
getOriginalCondition
Returns the original closure expression stored on the annotation, if it has not yet been replaced.- Parameters:
annotation- the annotation to inspect- Returns:
- the original closure expression, or
nullif it has already been rewritten
-
getReplacedCondition
Returns the rewritten annotation value once the original closure has been replaced.- Parameters:
annotation- the annotation to inspect- Returns:
- the replacement expression, or
nullwhile the original closure is still present
-
replaceCondition
Replaces the annotation value with the generated expression used by later transformation phases.- Parameters:
node- the annotation to updateexpr- the replacement expression
-