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

public Class MapConstructorASTTransformation

extends AbstractASTTransformation
implements CompilationUnitAware
Class Inheritance
All Implemented Interfaces
groovy.transform.CompilationUnitAware
Annotations
@GroovyASTTransformation
phase:CANONICALIZATION
Imports
groovy.lang.GroovyClassLoader, groovy.transform.CompilationUnitAware, .MapConstructor, groovy.transform.options.PropertyHandler, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassCodeExpressionTransformer, .ClassCodeVisitorSupport, .ClassNode, .ConstructorNode, .DynamicVariable, .Parameter, .PropertyNode, org.codehaus.groovy.ast.expr.ClosureExpression, .Expression, .MapExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.BlockStatement, .EmptyStatement, .Statement, org.codehaus.groovy.control.CompilationUnit, .CompilePhase, .SourceUnit, java.util.ArrayList, .HashSet, .LinkedHashMap, .List, .Map, .Set

Handles generation of code for the @MapConstructor annotation.

Field Summary

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

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static void
createConstructors(AbstractASTTransformation xform, AnnotationNode anno, PropertyHandler handler, ClassNode cNode, boolean includeFields, boolean includeProperties, boolean includeSuperProperties, boolean includeSuperFields, boolean noArg, boolean allNames, boolean allProperties, boolean specialNamedArgHandling, boolean includeStatic, List<String> excludes, List<String> includes, ClosureExpression pre, ClosureExpression post, SourceUnit source)

private static void
createNoArgConstructor(ClassNode cNode, int modifiers)

private static void
doAddConstructor(final ClassNode cNode, final ConstructorNode constructorNode)

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 ClassCodeExpressionTransformer
private static void
processProps(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyHandler handler, boolean allNames, List<String> excludes, List<String> includes, List<PropertyNode> superList, Parameter map, BlockStatement inner)

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

compilationUnitback to summary
private CompilationUnit compilationUnit
LHMAP_TYPEback to summary
private static final ClassNode LHMAP_TYPE
MAP_TYPEback to summary
private static final ClassNode MAP_TYPE
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

Constructor Detail

MapConstructorASTTransformationback to summary
public MapConstructorASTTransformation()

Method Detail

createConstructorsback to summary
private static void createConstructors(AbstractASTTransformation xform, AnnotationNode anno, PropertyHandler handler, ClassNode cNode, boolean includeFields, boolean includeProperties, boolean includeSuperProperties, boolean includeSuperFields, boolean noArg, boolean allNames, boolean allProperties, boolean specialNamedArgHandling, boolean includeStatic, List<String> excludes, List<String> includes, ClosureExpression pre, ClosureExpression post, SourceUnit source)
createNoArgConstructorback to summary
private static void createNoArgConstructor(ClassNode cNode, int modifiers)
doAddConstructorback to summary
private static void doAddConstructor(final ClassNode cNode, final ConstructorNode constructorNode)
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
makeMapTypedArgsTransformerback to summary
private static ClassCodeExpressionTransformer makeMapTypedArgsTransformer()
processPropsback to summary
private static void processProps(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyHandler handler, boolean allNames, List<String> excludes, List<String> includes, List<PropertyNode> superList, Parameter map, BlockStatement inner)
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.