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

public Class TupleConstructorASTTransformation

extends AbstractASTTransformation
implements CompilationUnitAware
Class Inheritance
All Implemented Interfaces
groovy.transform.CompilationUnitAware
Annotations
@GroovyASTTransformation
phase:CANONICALIZATION
Imports
groovy.lang.GroovyClassLoader, groovy.transform.CompilationUnitAware, .MapConstructor, .TupleConstructor, groovy.transform.options.PropertyHandler, org.apache.groovy.ast.tools.AnnotatedNodeUtils, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassHelper, .ClassNode, .ConstructorNode, .FieldNode, .Parameter, .PropertyNode, org.codehaus.groovy.ast.expr.ClosureExpression, .ConstantExpression, .Expression, .MethodCallExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.BlockStatement, .EmptyStatement, .ExpressionStatement, .Statement, org.codehaus.groovy.classgen.VariableScopeVisitor, org.codehaus.groovy.control.CompilationUnit, .CompilePhase, .SourceUnit, java.lang.annotation.Annotation, java.util.ArrayList, .Comparator, .HashMap, .HashSet, .LinkedHashMap, .List, .Map, .Set

Handles generation of code for the @TupleConstructor annotation.

Field Summary

Modifier and TypeField and Description
private static final ClassNode
private CompilationUnit
private static final ClassNode
private static final Class<? extends Annotation>
pack-priv static final Class<T>
pack-priv static final ClassNode
pack-priv static final String
private static final Map<Class<?>, Expression>
Inherited from org.codehaus.groovy.transform.AbstractASTTransformation:
RETENTION_CLASSNODEsourceUnit

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static void
addSpecialMapConstructors(int modifiers, ClassNode cNode, String message, boolean addNoArg)

private static void
createConstructor(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, boolean includeFields, boolean includeProperties, boolean includeSuperFields, boolean includeSuperProperties, List<String> excludes, final List<String> includes, boolean allNames, boolean allProperties, SourceUnit sourceUnit, PropertyHandler handler, ClosureExpression pre, ClosureExpression post)

private static Parameter
createParam(FieldNode fNode, String name, boolean defaults, AbstractASTTransformation xform, boolean makeImmutable)

public String
getAnnotationName()

Overrides org.codehaus.groovy.transform.AbstractASTTransformation.getAnnotationName.

If the transform is associated with a single annotation, returns a name suitable for displaying in error messages.
private static BlockStatement
private static BlockStatement
private static Expression
public void
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.
Inherited from org.codehaus.groovy.transform.AbstractASTTransformation:
addErrorcheckIncludeExcludecheckIncludeExcludecheckIncludeExcludeUndefinedAwarecheckIncludeExcludeUndefinedAwarecheckNotInterfacecheckPropertyListcheckPropertyListcheckPropertyListcopyAnnotatedNodeAnnotationscopyAnnotatedNodeAnnotationsdeemedInternalNamegetClassListgetMemberClassListgetMemberClassValuegetMemberClassValuegetMemberIntValuegetMemberListgetMemberStringListgetMemberStringValuegetMemberStringValuegetMemberValuehasAnnotationinitmemberHasValuenonGenericshouldSkipshouldSkipshouldSkipOnDescriptorshouldSkipOnDescriptorUndefinedAwareshouldSkipUndefinedAwareshouldSkipUndefinedAwaretokenize

Field Detail

CHECK_METHOD_TYPEback to summary
private static final ClassNode CHECK_METHOD_TYPE
compilationUnitback to summary
private CompilationUnit compilationUnit
LHMAP_TYPEback to summary
private static final ClassNode LHMAP_TYPE
MAP_CONSTRUCTOR_CLASSback to summary
private static final Class<? extends Annotation> MAP_CONSTRUCTOR_CLASS
MY_CLASSback to summary
pack-priv static final Class<T> MY_CLASS
MY_TYPEback to summary
pack-priv static final ClassNode MY_TYPE
MY_TYPE_NAMEback to summary
pack-priv static final String MY_TYPE_NAME
primitivesInitialValuesback to summary
private static final Map<Class<?>, Expression> primitivesInitialValues

Constructor Detail

TupleConstructorASTTransformationback to summary
public TupleConstructorASTTransformation()

Method Detail

addSpecialMapConstructorsback to summary
public static void addSpecialMapConstructors(int modifiers, ClassNode cNode, String message, boolean addNoArg)
createConstructorback to summary
private static void createConstructor(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, boolean includeFields, boolean includeProperties, boolean includeSuperFields, boolean includeSuperProperties, List<String> excludes, final List<String> includes, boolean allNames, boolean allProperties, SourceUnit sourceUnit, PropertyHandler handler, ClosureExpression pre, ClosureExpression post)
createParamback to summary
private static Parameter createParam(FieldNode fNode, String name, boolean defaults, AbstractASTTransformation xform, boolean makeImmutable)
getAnnotationNameback to summary
public String getAnnotationName()

Overrides org.codehaus.groovy.transform.AbstractASTTransformation.getAnnotationName.

Doc from org.codehaus.groovy.transform.AbstractASTTransformation.getAnnotationName.

If the transform is associated with a single annotation, returns a name suitable for displaying in error messages.

Returns:String

The simple name of the annotation including the "@" or null if no such name is defined

Annotations
@Override
illegalArgumentBlockback to summary
private static BlockStatement illegalArgumentBlock(String message)
processArgsBlockback to summary
private static BlockStatement processArgsBlock(ClassNode cNode, VariableExpression namedArgs)
providedOrDefaultInitialValueback to summary
private static Expression providedOrDefaultInitialValue(FieldNode fNode)
setCompilationUnitback to summary
public void setCompilationUnit(CompilationUnit unit)

Implements groovy.transform.CompilationUnitAware.setCompilationUnit.

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.