org.codehaus.groovy.classgen
Class AnnotationVisitor

java.lang.Object
  extended by org.codehaus.groovy.classgen.AnnotationVisitor

public class AnnotationVisitor
extends java.lang.Object

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
private  AnnotationNode annotation
           
private  ErrorCollector errorCollector
           
private  ClassNode reportClass
           
private  SourceUnit source
           
 
Constructor Summary
AnnotationVisitor(SourceUnit source, ErrorCollector errorCollector)
           
 
Method Summary
protected  void addError(java.lang.String msg)
           
protected  void addError(java.lang.String msg, ASTNode expr)
           
 void checkcircularReference(ClassNode searchClass, ClassNode attrType, Expression startExp)
           
private  boolean checkIfMandatoryAnnotationValuesPassed(AnnotationNode node)
           
 void checkReturnType(ClassNode attrType, ASTNode node)
           
private  ClassNode getAttributeType(AnnotationNode node, java.lang.String attrName)
           
private  ConstantExpression getConstantExpression(Expression exp)
           
private  boolean isValidAnnotationClass(ClassNode 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
 

Field Detail

source

private SourceUnit source

errorCollector

private ErrorCollector errorCollector

annotation

private AnnotationNode annotation

reportClass

private ClassNode reportClass
Constructor Detail

AnnotationVisitor

public AnnotationVisitor(SourceUnit source,
                         ErrorCollector errorCollector)
Method Detail

setReportClass

public void setReportClass(ClassNode cn)

visit

public AnnotationNode visit(AnnotationNode node)

checkIfMandatoryAnnotationValuesPassed

private boolean checkIfMandatoryAnnotationValuesPassed(AnnotationNode node)

getAttributeType

private ClassNode getAttributeType(AnnotationNode node,
                                   java.lang.String attrName)

isValidAnnotationClass

private boolean isValidAnnotationClass(ClassNode node)

visitExpression

protected void visitExpression(java.lang.String attrName,
                               Expression attrExp,
                               ClassNode attrType)

checkReturnType

public void checkReturnType(ClassNode attrType,
                            ASTNode node)

getConstantExpression

private ConstantExpression getConstantExpression(Expression exp)

visitAnnotationExpression

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

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)


Copyright © ${year} The Codehaus. All Rights Reserved.