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

public Class InheritConstructorsASTTransformation

extends AbstractASTTransformation
Class Inheritance
Annotations
@GroovyASTTransformation
phase:CANONICALIZATION
Imports
groovy.transform.InheritConstructors, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassNode, .ConstructorNode, .Parameter, org.codehaus.groovy.ast.expr.Expression, org.codehaus.groovy.ast.tools.ParameterUtils, org.codehaus.groovy.control.CompilePhase, .SourceUnit, java.util.ArrayList, .List, .Map

Handles generation of code for the @InheritConstructors annotation.

Field Summary

Modifier and TypeField and Description
private static final String
private static final ClassNode
Inherited from org.codehaus.groovy.transform.AbstractASTTransformation:
RETENTION_CLASSNODEsourceUnit

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
addConstructorUnlessAlreadyExisting(ClassNode classNode, ConstructorNode consNode, boolean copyConstructorAnnotations, boolean copyParameterAnnotations)

private List<Expression>
buildParams(Parameter[] origParams, Parameter[] params, Map<String, ClassNode> genericsSpec, boolean copyParameterAnnotations)

private static boolean
isExisting(ClassNode classNode, Parameter[] params)

private static boolean
matchingTypes(Parameter[] params, Parameter[] existingParams)

private 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:
addErrorcheckIncludeExcludecheckIncludeExcludecheckIncludeExcludeUndefinedAwarecheckIncludeExcludeUndefinedAwarecheckNotInterfacecheckPropertyListcheckPropertyListcheckPropertyListcopyAnnotatedNodeAnnotationscopyAnnotatedNodeAnnotationsdeemedInternalNamegetAnnotationNamegetClassListgetMemberClassListgetMemberClassValuegetMemberClassValuegetMemberIntValuegetMemberListgetMemberStringListgetMemberStringValuegetMemberStringValuegetMemberValuehasAnnotationinitmemberHasValuenonGenericshouldSkipshouldSkipshouldSkipOnDescriptorshouldSkipOnDescriptorUndefinedAwareshouldSkipUndefinedAwareshouldSkipUndefinedAwaretokenize

Field Detail

ANNOTATIONback to summary
private static final String ANNOTATION
INHERIT_CONSTRUCTORS_TYPEback to summary
private static final ClassNode INHERIT_CONSTRUCTORS_TYPE

Constructor Detail

InheritConstructorsASTTransformationback to summary
public InheritConstructorsASTTransformation()

Method Detail

addConstructorUnlessAlreadyExistingback to summary
private void addConstructorUnlessAlreadyExisting(ClassNode classNode, ConstructorNode consNode, boolean copyConstructorAnnotations, boolean copyParameterAnnotations)
buildParamsback to summary
private List<Expression> buildParams(Parameter[] origParams, Parameter[] params, Map<String, ClassNode> genericsSpec, boolean copyParameterAnnotations)
isExistingback to summary
private static boolean isExisting(ClassNode classNode, Parameter[] params)
matchingTypesback to summary
private static boolean matchingTypes(Parameter[] params, Parameter[] existingParams)
processClassback to summary
private void processClass(ClassNode cNode, AnnotationNode node)
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.