Class AnnotationClosureVisitor
- java.lang.Object
-
- org.codehaus.groovy.ast.CodeVisitorSupport
-
- org.codehaus.groovy.ast.ClassCodeVisitorSupport
-
- org.apache.groovy.contracts.ast.visitor.BaseVisitor
-
- org.apache.groovy.contracts.ast.visitor.AnnotationClosureVisitor
-
- All Implemented Interfaces:
ASTNodeMetaData
,GroovyClassVisitor
,GroovyCodeVisitor
,ErrorCollecting
public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMetaData
Visits interfaces & classes and looks for @Requires or @Ensures and createsClosure
classes for the annotation closures.The annotation closure classes are used later on to check interface contract pre- and post-conditions in implementation classes.
- See Also:
Requires
,Ensures
,BaseVisitor
-
-
Field Summary
Fields Modifier and Type Field Description static String
META_DATA_ORIGINAL_TRY_CATCH_BLOCK
static String
META_DATA_USE_EXECUTION_TRACKER
-
Fields inherited from class org.apache.groovy.contracts.ast.visitor.BaseVisitor
CLOSURE_ATTRIBUTE_NAME, GCONTRACTS_ENABLED_VAR, source, sourceUnit
-
Fields inherited from interface org.apache.groovy.contracts.ast.visitor.ASTNodeMetaData
CLOSURE_REPLACED, PROCESSED
-
-
Constructor Summary
Constructors Constructor Description AnnotationClosureVisitor(SourceUnit sourceUnit, ReaderSource source)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
visitClass(ClassNode node)
Visit a ClassNode.void
visitConstructorOrMethod(MethodNode methodNode, boolean isConstructor)
-
Methods inherited from class org.apache.groovy.contracts.ast.visitor.BaseVisitor
getSourceUnit
-
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotation, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop
-
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, 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, visitVariableExpression
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visitEmptyExpression, visitListOfExpressions
-
-
-
-
Field Detail
-
META_DATA_USE_EXECUTION_TRACKER
public static final String META_DATA_USE_EXECUTION_TRACKER
- See Also:
- Constant Field Values
-
META_DATA_ORIGINAL_TRY_CATCH_BLOCK
public static final String META_DATA_ORIGINAL_TRY_CATCH_BLOCK
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AnnotationClosureVisitor
public AnnotationClosureVisitor(SourceUnit sourceUnit, ReaderSource source)
-
-
Method Detail
-
visitClass
public void visitClass(ClassNode node)
Description copied from interface:GroovyClassVisitor
Visit a ClassNode.- Specified by:
visitClass
in interfaceGroovyClassVisitor
- Overrides:
visitClass
in classClassCodeVisitorSupport
-
visitConstructorOrMethod
public void visitConstructorOrMethod(MethodNode methodNode, boolean isConstructor)
- Overrides:
visitConstructorOrMethod
in classClassCodeVisitorSupport
-
-