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, org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor, org.codehaus.groovy.transform.ErrorCollecting

public class AnnotationClosureVisitor extends BaseVisitor implements ASTNodeMetaData
Visits interfaces & classes and looks for @Requires or @Ensures and creates Closure 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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     

    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(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.control.io.ReaderSource source)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    visitClass(org.codehaus.groovy.ast.ClassNode node)
     
    void
    visitConstructorOrMethod(org.codehaus.groovy.ast.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, 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

    visit, visit, visitEmptyExpression, visitListOfExpressions
  • Field Details

  • Constructor Details

    • AnnotationClosureVisitor

      public AnnotationClosureVisitor(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.control.io.ReaderSource source)
  • Method Details

    • visitClass

      public void visitClass(org.codehaus.groovy.ast.ClassNode node)
      Specified by:
      visitClass in interface org.codehaus.groovy.ast.GroovyClassVisitor
      Overrides:
      visitClass in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitConstructorOrMethod

      public void visitConstructorOrMethod(org.codehaus.groovy.ast.MethodNode methodNode, boolean isConstructor)
      Overrides:
      visitConstructorOrMethod in class org.codehaus.groovy.ast.ClassCodeVisitorSupport