org.codehaus.groovy.classgen

## Class AnnotationVisitor

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

    public class AnnotationVisitor
    extends java.lang.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)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `addError(java.lang.String msg)`
`protected void` `addError(java.lang.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(java.lang.String attrName, AnnotationConstantExpression expression, ClassNode attrType)`
`protected void` `visitConstantExpression(java.lang.String attrName, ConstantExpression constExpr, ClassNode attrType)`
`protected void` `visitEnumExpression(java.lang.String attrName, PropertyExpression propExpr, ClassNode attrType)`
`protected void` `visitExpression(java.lang.String attrName, Expression attrExp, ClassNode attrType)`
`protected void` `visitListExpression(java.lang.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(java.lang.String attrName,
                                   Expression attrExp,
                                   ClassNode attrType)

#### checkReturnType

    public void checkReturnType(ClassNode attrType,
                                ASTNode node)

#### visitAnnotationExpression

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

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

#### visitListExpression

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

#### visitConstantExpression

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

#### visitEnumExpression

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

#### addError

    protected void addError(java.lang.String msg)

#### addError

    protected void addError(java.lang.String msg,
                            ASTNode expr)

#### checkCircularReference

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