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)

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)