Package org.codehaus.groovy.transform

# Class ASTTransformationCollectorCodeVisitor

java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
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), Jochen Theodorou (blackdrag)

## Constructor Summary

Constructors
Constructor
Description
`ASTTransformationCollectorCodeVisitor(SourceUnit source, GroovyClassLoader transformLoader)`

## Method Summary

Modifier and Type
Method
Description
`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)`
Visit a ClassNode.

### Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport

`addError, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, 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, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, 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 Details

### ASTTransformationCollectorCodeVisitor

public ASTTransformationCollectorCodeVisitor(SourceUnit source, GroovyClassLoader transformLoader)

## Method Details

### getSourceUnit

protected SourceUnit getSourceUnit()

Specified by:
  `getSourceUnit` in class `ClassCodeVisitorSupport`

### visitClass

public void visitClass(ClassNode klassNode)
Description copied from interface: `GroovyClassVisitor`
Visit a ClassNode.

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