# Package org.codehaus.groovy.transform

package org.codehaus.groovy.transform
AST transformation framework. Base classes and utilities for implementing transformations. Includes both Java and Groovy implementations.

- Related Packages
  Package
  Description
  org.codehaus.groovy
  Groovy Language for the JVM
  org.codehaus.groovy.transform.sc
  Static compilation transformation.
  org.codehaus.groovy.transform.stc
  Static type checking transformation.
  org.codehaus.groovy.transform.tailrec
  Tail recursion optimization.
  org.codehaus.groovy.transform.trait
  Trait transformation.
- Class
  Description
  AbstractASTTransformation
  Abstract base class for AST transformations.
  AbstractInterruptibleASTTransformation
  Base class for AST Transformations which will automatically throw an `InterruptedException` when some conditions are met.
  ActiveObjectASTTransformation
  Handles the `ActiveObject` annotation, transforming `ActiveMethod`-annotated methods to route through an internal actor for serialized execution.
  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.
  ASTTransformation
  This class is instantiated and invoked when an AST transformation is activated.
  ASTTransformationCollectorCodeVisitor
  Walks the AST 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.
  AsyncTransformHelper
  Shared AST utilities for the `async`/`await`/`defer` language features.
  AutoCloneASTStubber
  Joint-compilation stubber for `AutoClone`.
  AutoCloneASTTransformation
  Handles generation of code for the @AutoClone annotation.
  AutoFinalASTTransformation
  Handles generation of code for the `AutoFinal` annotation.
  AutoImplementASTStubber
  Joint-compilation stubber for `AutoImplement`.
  AutoImplementASTTransformation
  Generates code for the `@AutoImplement` annotation.
  BaseScriptASTTransformation
  Handles transformation for the @BaseScript annotation.
  BuilderASTTransformation
  Handles generation of code for the `Builder` annotation.
  BuilderASTTransformation.AbstractBuilderStrategy
  Base class for builder generation strategies.
  BuilderASTTransformation.AbstractBuilderStrategy.PropertyInfo
  Holds information about a builder property.
  BuilderASTTransformation.BuilderStrategy
  Strategy interface for builder code generation.
  CategoryASTTransformation
  Handles generation of code for the @Category annotation.
  CompileDynamicProcessor
  DelegateASTStubber
  Joint-compilation stubber for `Delegate`.
  DelegateASTTransformation
  Handles generation of code for the `@Delegate` annotation
  EqualsAndHashCodeASTStubber
  Joint-compilation stubber for `EqualsAndHashCode`.
  EqualsAndHashCodeASTTransformation
  Handles generation of equals() and hashCode() methods via the `EqualsAndHashCode` annotation.
  ErrorCollecting
  An AST transform with the ability to report errors.
  ExternalizeMethodsASTStubber
  Joint-compilation stubber for `ExternalizeMethods`.
  ExternalizeMethodsASTTransformation
  Handles generation of code for the @ExternalizeMethods annotation.
  ExternalizeVerifierASTTransformation
  FieldASTTransformation
  Handles transformation for the @Field annotation.
  FinalASTStubber
  Joint-compilation stubber for `Final`.
  FinalASTTransformation
  Handles generation of code for the `Final` annotation.
  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.
  ImmutableASTTransformation
  Handles generation of code for the @Immutable annotation.
  IndexedPropertyASTStubber
  Joint-compilation stubber for `IndexedProperty`.
  IndexedPropertyASTTransformation
  Handles generation of code for the `@`IndexedProperty annotation.
  InheritConstructorsASTStubber
  Joint-compilation stubber for `InheritConstructors`.
  InheritConstructorsASTTransformation
  Handles generation of code for the `@`InheritConstructors annotation.
  LazyASTStubber
  Joint-compilation stubber for `Lazy`.
  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
  Base class for logging strategy implementations.
  LogASTTransformation.AbstractLoggingStrategyV2
  Base class for logging strategy implementations supporting the v2 logging API.
  LogASTTransformation.LoggingStrategy
  A LoggingStrategy defines how to wire a new logger instance into an existing class.
  LogASTTransformation.LoggingStrategyV2
  A LoggingStrategy defines how to wire a new logger instance into an existing class.
  MapConstructorASTStubber
  Joint-compilation stubber for `MapConstructor`.
  MapConstructorASTTransformation
  Handles generation of code for the @MapConstructor annotation.
  MemoizedASTTransformation
  Handles generation of code for the `Memoized` annotation.
  NamedVariantASTStubber
  Joint-compilation stubber for `NamedVariant`.
  NamedVariantASTTransformation
  Handles generation of variant methods with named parameters via the `NamedVariant` annotation.
  NewifyASTTransformation
  Handles generation of code for the `@Newify` AST transform.
  NonSealedASTTransformation
  Handles generation of code for the @Sealed annotation.
  NullCheckASTTransformation
  Handles generation of code for the @NullCheck annotation.
  OperatorRenameASTTransformation
  Handles transformation for the @OperatorRename annotation.
  PackageScopeASTTransformation
  Handles transformation for the @PackageScope annotation.
  ParallelASTTransformation
  Local AST transform for `Parallel`: rewrites annotated `for-in` loops into `collection.eachParallel { item -> body }`.
  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`
  RecordBaseASTStubber
  Joint-compilation stubber for `RecordBase`.
  RecordCompletionASTTransformation
  Handles completion of code for the @RecordType annotation.
  RecordTypeASTTransformation
  Handles generation of code for the @RecordType annotation.
  SafeRegexASTTransformation
  Handles transformation for the @SafeRegex annotation: rewrites the regex operators within the annotated scope to deadline-guarded `RegexGuard` calls.
  SealedASTTransformation
  Handles generation of code for the @Sealed annotation.
  SealedCompletionASTTransformation
  Handles sealed class permitted subclass detection.
  SingletonASTStubber
  Joint-compilation stubber for `Singleton`.
  SingletonASTTransformation
  Handles generation of code for the @Singleton annotation
  SortableASTStubber
  Adds a minimal `Comparable` surface for `Sortable` classes in an earlier phase so joint compilation can evolve independently from full Sortable codegen.
  SortableASTTransformation
  Injects a set of Comparators and sort methods.
  SourceURIASTTransformation
  Handles transformation for the @SourceURI annotation.
  StaticTypesTransformation
  Handles the implementation of the `TypeChecked` transformation.
  StubberSupport
  Utilities for GEP-21 Shape C joint-compilation stubbers.
  SynchronizedASTTransformation
  Handles generation of code for the `@Synchronized` annotation.
  ToStringASTStubber
  Joint-compilation stubber for `ToString`.
  ToStringASTTransformation
  Handles generation of code for the @ToString annotation.
  TransformWithPriority
  AST transforms may optionally implement this interface and return a priority value.
  TupleConstructorASTStubber
  Adds a placeholder tuple-style constructor surface for `TupleConstructor` classes during joint compilation.
  TupleConstructorASTTransformation
  Handles generation of code for the @TupleConstructor annotation.
  TupleConstructorASTTransformation.SelectedTupleProperties
  Result of `TupleConstructorASTTransformation.selectTupleProperties(org.codehaus.groovy.transform.AbstractASTTransformation, org.codehaus.groovy.ast.ClassNode, org.codehaus.groovy.ast.AnnotationNode)`: the super-class properties and self properties that pass the annotation's filters (includes / excludes / allNames / includeProperties / includeFields / includeSuperProperties / includeSuperFields / allProperties).