Package: org.codehaus.groovy.classgen

## [Java] Class AnnotationVisitor

- 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 and description
    `AnnotationVisitor(SourceUnit source, ErrorCollector errorCollector)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected void` | `addError(String msg)`
    `` | `protected void` | `addError(String msg, ASTNode node)`
    `` | `public void` | `checkCircularReference(ClassNode searchClass, ClassNode attrType, Expression startExp)`
    `` | `public void` | `checkReturnType(ClassNode attrType, ASTNode node)`
    `` | `public void` | `setReportClass(ClassNode node)`
    `` | `public AnnotationNode` | `visit(AnnotationNode node)`
    `` | `protected void` | `visitAnnotationExpression(String attrName, AnnotationConstantExpression valueExpr, ClassNode attrType)`
    `` | `protected void` | `visitConstantExpression(String attrName, ConstantExpression valueExpr, ClassNode attrType)`
    `` | `protected void` | `visitEnumExpression(String attrName, PropertyExpression valueExpr, ClassNode attrType)`
    `` | `protected void` | `visitExpression(String attrName, Expression valueExpr, ClassNode attrType)`
    `` | `protected void` | `visitListExpression(String attrName, ListExpression listExpr, ClassNode elementType)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### public AnnotationVisitor(SourceUnit source, ErrorCollector errorCollector)

  - ### Method Detail

    - #### protected void addError(String msg)

    - #### protected void addError(String msg, ASTNode node)

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

    - #### public void checkReturnType(ClassNode attrType, ASTNode node)

    - #### public void setReportClass(ClassNode node)

    - #### public AnnotationNode visit(AnnotationNode node)

    - #### protected void visitAnnotationExpression(String attrName, AnnotationConstantExpression valueExpr, ClassNode attrType)

    - #### protected void visitConstantExpression(String attrName, ConstantExpression valueExpr, ClassNode attrType)

    - #### protected void visitEnumExpression(String attrName, PropertyExpression valueExpr, ClassNode attrType)

    - #### protected void visitExpression(String attrName, Expression valueExpr, ClassNode attrType)

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