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 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
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 |
source
private SourceUnit source
errorCollector
private ErrorCollector errorCollector
annotation
private AnnotationNode annotation
reportClass
private ClassNode reportClass
AnnotationVisitor
public AnnotationVisitor(SourceUnit source,
ErrorCollector errorCollector)
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.