Package org.codehaus.groovy.classgen

# Class AnnotationVisitor

java.lang.Object
org.codehaus.groovy.classgen.AnnotationVisitor

public class AnnotationVisitor extends Object
An Annotation visitor responsible for:

- reading annotation metadata (@Retention, @Target, attribute types)
- verify that an `AnnotationNode` conforms to annotation meta
- enhancing an `AnnotationNode` AST to reflect real annotation meta

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AnnotationVisitor(SourceUnit source, ErrorCollector errorCollector)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `addError(String msg)`
  `protected void`
  `addError(String msg, ASTNode expr)`
  `void`
  `checkCircularReference(ClassNode searchClass, ClassNode attrType, Expression startExp)`
  `void`
  `checkReturnType(ClassNode attrType, ASTNode node)`
  `void`
  `setReportClass(ClassNode cn)`
  `AnnotationNode`
  `visit(AnnotationNode node)`
  `protected void`
  `visitAnnotationExpression(String attrName, AnnotationConstantExpression expression, ClassNode attrType)`
  `protected void`
  `visitConstantExpression(String attrName, ConstantExpression constExpr, ClassNode attrType)`
  `protected void`
  `visitEnumExpression(String attrName, PropertyExpression propExpr, ClassNode attrType)`
  `protected void`
  `visitExpression(String attrName, Expression attrExp, ClassNode attrType)`
  `protected void`
  `visitListExpression(String attrName, ListExpression listExpr, ClassNode elementType)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### AnnotationVisitor

    public AnnotationVisitor(SourceUnit source, ErrorCollector errorCollector)

- ## Method Details

  - ### setReportClass

    public void setReportClass(ClassNode cn)

  - ### visit

    public AnnotationNode visit(AnnotationNode node)

  - ### visitExpression

    protected void visitExpression(String attrName, Expression attrExp, ClassNode attrType)

  - ### checkReturnType

    public void checkReturnType(ClassNode attrType, ASTNode node)

  - ### visitAnnotationExpression

    protected void visitAnnotationExpression(String attrName, AnnotationConstantExpression expression, ClassNode attrType)

  - ### visitListExpression

    protected void visitListExpression(String attrName, ListExpression listExpr, ClassNode elementType)

  - ### visitConstantExpression

    protected void visitConstantExpression(String attrName, ConstantExpression constExpr, ClassNode attrType)

  - ### visitEnumExpression

    protected void visitEnumExpression(String attrName, PropertyExpression propExpr, ClassNode attrType)

  - ### addError

    protected void addError(String msg)

  - ### addError

    protected void addError(String msg, ASTNode expr)

  - ### checkCircularReference

    public void checkCircularReference(ClassNode searchClass, ClassNode attrType, Expression startExp)