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

    All Methods Instance Methods Concrete Methods
    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 Detail

    - #### AnnotationVisitor

          public AnnotationVisitor​(SourceUnit source,
                                   ErrorCollector errorCollector)

  - ### Method Detail

    - #### 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)

      Parameters:
        `attrName` - the name
        `expression` - the expression
        `attrType` - the type

    - #### 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)