org.codehaus.groovy.transform
Class ASTTransformationCollectorCodeVisitor

java.lang.Object
  extended by org.codehaus.groovy.ast.CodeVisitorSupport
      extended by org.codehaus.groovy.ast.ClassCodeVisitorSupport
          extended by org.codehaus.groovy.transform.ASTTransformationCollectorCodeVisitor
All Implemented Interfaces:
GroovyClassVisitor, GroovyCodeVisitor

public class ASTTransformationCollectorCodeVisitor
extends ClassCodeVisitorSupport

This visitor walks the AST tree and collects references to Annotations that are annotated themselves by GroovyASTTransformation. Each such annotation is added.

This visitor is only intended to be executed once, during the SEMANTIC_ANALYSIS phase of compilation.

Author:
Danno Ferrin (shemnon), Roshan Dawrani (roshandawrani)

Constructor Summary
ASTTransformationCollectorCodeVisitor(SourceUnit source, GroovyClassLoader transformLoader)
           
 
Method Summary
protected  SourceUnit getSourceUnit()
           
 void visitAnnotations(AnnotatedNode node)
          If the annotation is annotated with GroovyASTTransformation the annotation is added to stageVisitors at the appropriate processor visitor.
 void visitClass(ClassNode klassNode)
           
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitMethod, visitProperty, visitReturnStatement, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitDeclarationExpression, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitRegexExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ASTTransformationCollectorCodeVisitor

public ASTTransformationCollectorCodeVisitor(SourceUnit source,
                                             GroovyClassLoader transformLoader)
Method Detail

getSourceUnit

protected SourceUnit getSourceUnit()
Specified by:
getSourceUnit in class ClassCodeVisitorSupport

visitClass

public void visitClass(ClassNode klassNode)
Specified by:
visitClass in interface GroovyClassVisitor
Overrides:
visitClass in class ClassCodeVisitorSupport

visitAnnotations

public void visitAnnotations(AnnotatedNode node)
If the annotation is annotated with GroovyASTTransformation the annotation is added to stageVisitors at the appropriate processor visitor.

Overrides:
visitAnnotations in class ClassCodeVisitorSupport
Parameters:
node - the node to process

Copyright © 2003-2010 The Codehaus. All rights reserved.