Top Description Fields Constructors Methods
org.codehaus.groovy.transform

public Class FieldASTTransformation

extends ClassCodeExpressionTransformer
implements ASTTransformation, Opcodes
Class Inheritance
All Implemented Interfaces
org.objectweb.asm.Opcodes, org.codehaus.groovy.transform.ASTTransformation
Annotations
@GroovyASTTransformation
phase:SEMANTIC_ANALYSIS
Imports
groovy.cli.Option, groovy.lang.Lazy, groovy.transform.Field, org.codehaus.groovy.GroovyBugError, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassCodeExpressionTransformer, .ClassHelper, .ClassNode, .ConstructorNode, .FieldNode, .MethodNode, .Parameter, .Variable, .VariableScope, org.codehaus.groovy.ast.expr.ArgumentListExpression, .ClosureExpression, .ConstructorCallExpression, .DeclarationExpression, .Expression, .TupleExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.ExpressionStatement, org.codehaus.groovy.classgen.VariableScopeVisitor, org.codehaus.groovy.control.CompilePhase, .SourceUnit, org.objectweb.asm.Opcodes, java.util.ArrayList, .Arrays, .Iterator, .List

Handles transformation for the @Field annotation.

Field Summary

Modifier and TypeField and Description
private static final ClassNode
private DeclarationExpression
private ConstructorCallExpression
private ClosureExpression
private FieldNode
private boolean
private static final ClassNode
private static final Class<T>
private static final ClassNode
private static final String
private static final ClassNode
private SourceUnit
private String

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static boolean
private void
private Expression
private void
protected SourceUnit
private boolean
private static boolean
notTransform(ClassNode annotationClassNode)

public Expression
public void
visit(ASTNode[]
The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.
nodes
,
SourceUnit
The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.
source
)

Implements org.codehaus.groovy.transform.ASTTransformation.visit.

The method is invoked when an AST Transformation is active.
public void
public void
public void
public void
Inherited from org.codehaus.groovy.ast.ClassCodeExpressionTransformer:
setSourcePositionvisitAnnotationvisitAssertStatementvisitCaseStatementvisitConstructorOrMethodvisitDoWhileLoopvisitFieldvisitForLoopvisitIfElsevisitPropertyvisitReturnStatementvisitSwitchvisitSynchronizedStatementvisitThrowStatementvisitWhileLoop

Field Detail

ASTTRANSFORMCLASS_TYPEback to summary
private static final ClassNode ASTTRANSFORMCLASS_TYPE
candidateback to summary
private DeclarationExpression candidate
currentAICback to summary
private ConstructorCallExpression currentAIC
currentClosureback to summary
private ClosureExpression currentClosure
fieldNodeback to summary
private FieldNode fieldNode
insideScriptBodyback to summary
private boolean insideScriptBody
LAZY_TYPEback to summary
private static final ClassNode LAZY_TYPE
MY_CLASSback to summary
private static final Class<T> MY_CLASS
MY_TYPEback to summary
private static final ClassNode MY_TYPE
MY_TYPE_NAMEback to summary
private static final String MY_TYPE_NAME
OPTION_TYPEback to summary
private static final ClassNode OPTION_TYPE
sourceUnitback to summary
private SourceUnit sourceUnit
variableNameback to summary
private String variableName

Constructor Detail

FieldASTTransformationback to summary
public FieldASTTransformation()

Method Detail

acceptableTransformback to summary
private static boolean acceptableTransform(AnnotationNode annotation)
adjustConstructorAndFieldsback to summary
private void adjustConstructorAndFields(int skipIndex, ClassNode type)
adjustedArgListback to summary
private Expression adjustedArgList(Expression skip, List<Expression> origArgs)
adjustToClassVarback to summary
private void adjustToClassVar(VariableExpression expr)
getSourceUnitback to summary
protected SourceUnit getSourceUnit()

Implements abstract org.codehaus.groovy.ast.ClassCodeVisitorSupport.getSourceUnit.

matchesCandidateback to summary
private boolean matchesCandidate(Expression arg)
notTransformback to summary
private static boolean notTransform(ClassNode annotationClassNode)
transformback to summary
public Expression transform(Expression expr)

Overrides org.codehaus.groovy.ast.ClassCodeExpressionTransformer.transform.

Implements org.codehaus.groovy.ast.expr.ExpressionTransformer.transform.

Doc from org.codehaus.groovy.ast.expr.ExpressionTransformer.transform.

Transforms the given expression into another expression

Annotations
@Override
visitback to summary
public void visit(ASTNode[] nodes, SourceUnit source)

Implements org.codehaus.groovy.transform.ASTTransformation.visit.

Doc from org.codehaus.groovy.transform.ASTTransformation.visit.

The method is invoked when an AST Transformation is active. For local transformations, it is invoked once each time the local annotation is encountered. For global transformations, it is invoked once for every source unit, which is typically a source file.

Parameters
nodes:ASTNode[]

The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.

source:SourceUnit

The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.

visitClosureExpressionback to summary
public void visitClosureExpression(final ClosureExpression expression)

Overrides org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression.

Implements org.codehaus.groovy.ast.GroovyCodeVisitor.visitClosureExpression.

Annotations
@Override
visitConstructorCallExpressionback to summary
public void visitConstructorCallExpression(final ConstructorCallExpression cce)

Overrides org.codehaus.groovy.ast.CodeVisitorSupport.visitConstructorCallExpression.

Implements org.codehaus.groovy.ast.GroovyCodeVisitor.visitConstructorCallExpression.

Annotations
@Override
visitExpressionStatementback to summary
public void visitExpressionStatement(ExpressionStatement es)

Overrides org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement.

Implements org.codehaus.groovy.ast.GroovyCodeVisitor.visitExpressionStatement.

Annotations
@Override
visitMethodback to summary
public void visitMethod(MethodNode node)

Overrides org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod.

Implements org.codehaus.groovy.ast.GroovyClassVisitor.visitMethod.

Doc from org.codehaus.groovy.ast.GroovyClassVisitor.visitMethod.

Visit a MethodNode.

Annotations
@Override