org.codehaus.groovy.classgen
Class AnnotationVisitor

An Annotation visitor responsible with: - reading annotation metadata (

:
Retention, @Target, attribute types)
- verify that an AnnotationNode conforms to annotation meta - enhancing an AnnotationNode AST to reflect real annotation meta
author:
Alex Popescu

Field Summary
 AnnotationNode annotation
           
 ErrorCollector errorCollector
           
 ClassNode reportClass
           
 SourceUnit source
           
 
Constructor Summary
AnnotationVisitor(SourceUnit source, ErrorCollector errorCollector)
           
 
Method Summary
void addError(String msg)
          
void addError(String msg, ASTNode expr)
          
void checkReturnType(ClassNode attrType, ASTNode node)
          
void checkcircularReference(ClassNode searchClass, ClassNode attrType, Expression startExp)
          
ClassNode getAttributeType(AnnotationNode node, String attrName)
          
ConstantExpression getConstantExpression(Expression exp)
          
boolean isValidAnnotationClass(ClassNode node)
          
void setReportClass(ClassNode cn)
          
AnnotationNode visit(AnnotationNode node)
          
void visitAnnotationExpression(String attrName, AnnotationConstantExpression expression, ClassNode attrType)
          
void visitConstantExpression(String attrName, ConstantExpression constExpr, ClassNode attrType)
          
void visitEnumExpression(String attrName, PropertyExpression propExpr, ClassNode attrType)
          
void visitExpression(String attrName, Expression attrExp, ClassNode attrType)
          
void visitListExpression(String attrName, ListExpression listExpr, ClassNode elementType)
          
 

Constructor Detail

AnnotationVisitor

public AnnotationVisitor(SourceUnit source, ErrorCollector errorCollector)


Method Detail

addError

void addError(String msg)


addError

void addError(String msg, ASTNode expr)


checkReturnType

public void checkReturnType(ClassNode attrType, ASTNode node)


checkcircularReference

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


getAttributeType

ClassNode getAttributeType(AnnotationNode node, String attrName)


getConstantExpression

ConstantExpression getConstantExpression(Expression exp)


isValidAnnotationClass

boolean isValidAnnotationClass(ClassNode node)


setReportClass

public void setReportClass(ClassNode cn)


visit

public AnnotationNode visit(AnnotationNode node)


visitAnnotationExpression

void visitAnnotationExpression(String attrName, AnnotationConstantExpression expression, ClassNode attrType)
param:
attrName
param:
expression
param:
attrType


visitConstantExpression

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


visitEnumExpression

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


visitExpression

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


visitListExpression

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