# Package org.codehaus.groovy.transform

Interface Summary
ASTTransformation: This class is instantiated and invoked when an AST transformation is activated.
BuilderASTTransformation.BuilderStrategy
LogASTTransformation.LoggingStrategy: A LoggingStrategy defines how to wire a new logger instance into an existing class.

Class Summary
AbstractASTTransformation
AbstractASTTransformUtil: Deprecated use org.codehaus.groovy.ast.tools.GeneralUtils
AbstractInterruptibleASTTransformation: Base class for AST Transformations which will automatically throw an `InterruptedException` when some conditions are met.
AnnotationCollectorTransform: This class is the base for any annotation alias processor.
AnnotationCollectorTransform.ClassChanger: Class used by `CompilationUnit` to transform the alias class into what is needed by the compiler.
ASTTransformationCollectorCodeVisitor: This visitor walks the AST tree and collects references to Annotations that are annotated themselves by `GroovyASTTransformation`.
ASTTransformationVisitor: This class handles the invocation of the ASTAnnotationTransformation when it is encountered by a tree walk.
AutoCloneASTTransformation: Handles generation of code for the @AutoClone annotation.
BaseScriptASTTransformation: Handles transformation for the @BaseScript annotation.
BuilderASTTransformation: Handles generation of code for the `Builder` annotation.
BuilderASTTransformation.AbstractBuilderStrategy
BuilderASTTransformation.AbstractBuilderStrategy.PropertyInfo
CanonicalASTTransformation: Handles generation of code for the @Canonical annotation.
CategoryASTTransformation: Handles generation of code for the @Category annotation.
CompileDynamicProcessor
DelegateASTTransformation: Handles generation of code for the `@Delegate` annotation
EqualsAndHashCodeASTTransformation
ExternalizeMethodsASTTransformation: Handles generation of code for the @ExternalizeMethods annotation.
ExternalizeVerifierASTTransformation
FieldASTTransformation: Handles transformation for the @Field annotation.
ImmutableASTTransformation: Handles generation of code for the @Immutable annotation.
IndexedPropertyASTTransformation: Handles generation of code for the `@`IndexedProperty annotation.
InheritConstructorsASTTransformation: Handles generation of code for the `@`InheritConstructors annotation.
LazyASTTransformation: Handles generation of code for the @Lazy annotation
LogASTTransformation: This class provides an AST Transformation to add a log field to a class.
LogASTTransformation.AbstractLoggingStrategy
MemoizedASTTransformation: Handles generation of code for the `Memoized` annotation.
NewifyASTTransformation: Handles generation of code for the `@Newify` AST transform.
NotYetImplementedASTTransformation: Handles generation of code for the `@NotYetImplemented` annotation.
PackageScopeASTTransformation: Handles transformation for the @PackageScope annotation.

ReadWriteLockASTTransformation

Handles generation of code for the `@`WithReadLock and `@`WithWriteLock annotation.
This transformation adds an instance of ReentrantReadWriteLock to the class.
Any method annotated with `@`WithReadLock will obtain a read lock and release it in a finally block.
Any method annotated with `@`WithWriteLock will obtain a write lock and release it in a finally block.
For more information see `WithReadLock` and `WithWriteLock`

SingletonASTTransformation: Handles generation of code for the @Singleton annotation
SortableASTTransformation: Injects a set of Comparators and sort methods.
SourceURIASTTransformation: Handles transformation for the @SourceURI annotation.
StaticTypesTransformation: Handles the implementation of the `TypeChecked` transformation.
SynchronizedASTTransformation: Handles generation of code for the `@Synchronized` annotation.
ToStringASTTransformation: Handles generation of code for the @ToString annotation.
TupleConstructorASTTransformation: Handles generation of code for the @TupleConstructor annotation.

Annotation Types Summary
GroovyASTTransformation: This is an annotation on a class, currently just `ASTTransformation`.
GroovyASTTransformationClass: This is an annotation on some item that indicates that an associated transform classes should be executed.