[Java] Class TraitASTTransformation

  • org.codehaus.groovy.transform.trait.TraitASTTransformation
All Implemented Interfaces and Traits:
CompilationUnitAware
@GroovyASTTransformation(phase = CompilePhase.SEMANTIC_ANALYSIS)
public class TraitASTTransformation
extends AbstractASTTransformation

Handles generation of code for the traits (trait keyword is equivalent to using the

Trait:
annotation). A class annotated with
Trait:
will generate, instead:
  • an interface with the same name
  • a utility inner class that will be used by the compiler to implement the trait
  • potentially a utility inner class to assist with implementing trait fields
Authors:
Cedric Champeau

Field Summary

Fields
Modifiers Name Description
static String DO_DYNAMIC
static String POST_TYPECHECKING_REPLACEMENT
Inherited fields
Fields inherited from class Fields
class AbstractASTTransformation RETENTION_CLASSNODE, sourceUnit

Methods Summary

Methods
Type Params Return Type Name and description
void setCompilationUnit(CompilationUnit unit)
void visit(ASTNode[] nodes, SourceUnit source)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class AbstractASTTransformation addError, checkIncludeExclude, checkIncludeExclude, checkNotInterface, copyAnnotatedNodeAnnotations, deemedInternalName, getClassList, getMemberClassValue, getMemberClassValue, getMemberIntValue, getMemberList, getMemberStringValue, getMemberStringValue, getMemberValue, hasAnnotation, init, memberHasValue, nonGeneric, shouldSkip, shouldSkipOnDescriptor, tokenize
class Object wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll

Field Detail

public static final String DO_DYNAMIC

public static final String POST_TYPECHECKING_REPLACEMENT

Method Detail

public void setCompilationUnit(CompilationUnit unit)

public void visit(ASTNode[] nodes, SourceUnit source)

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.4.21/html/gapi/org/codehaus/groovy/transform/trait/TraitASTTransformation.html