# Package groovy.transform

- Interface Summary
  Interface | Description
  --- | ---
  CompilationUnitAware | This interface is for AST transformations which must be aware of the compilation unit where they are applied.

- Class Summary
  Class | Description
  --- | ---
  Undefined | Java doesn't allow you to have null as an attribute value.
  Undefined.CLASS |

- Enum Summary
  Enum | Description
  --- | ---
  AnnotationCollectorMode |
  AutoCloneStyle | Intended style to use for cloning when using the `@`AutoClone annotation.
  PackageScopeTarget | Intended target when `@`PackageScope is placed at the class level.
  TypeCheckingMode | This enumeration can be used whenever it is preferred to annotate a class as `TypeChecked` in general, but where only one or more methods are "dynamic".

- Exception Summary
  Exception | Description
  --- | ---
  Undefined.EXCEPTION |

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  AnnotationCollector | The AnnotationCollector can be used to define aliases for groups of annotations.
  ASTTest | This AST transformation aims at helping in debugging other AST transformations.
  AutoClone | Class annotation used to assist in the creation of `Cloneable` classes.
  AutoFinal | Annotation to automatically add the final qualifier to method, constructor, and closure parameters.
  AutoImplement | Class annotation used to provide default dummy methods for a class extending an abstract super class or implementing one or more interfaces.
  BaseScript | Variable annotation used for changing the base script class of the current script.
  CompileStatic | This will let the Groovy compiler use compile time checks in the style of Java then perform static compilation, thus bypassing the Groovy meta object protocol.
  EqualsAndHashCode | Class annotation used to assist in creating appropriate `equals()` and `hashCode()` methods.
  ExternalizeMethods | Class annotation used to assist in the creation of `Externalizable` classes.
  ExternalizeVerifier | Class annotation used to assist in the creation of `Externalizable` classes.
  Field | Variable annotation used for changing the scope of a variable within a script from being within the run method of the script to being at the class level for the script.
  Generated | The Generated annotation is used to mark members that have been generated.
  ImmutableBase | Class annotation used to assist in the creation of immutable classes.
  ImmutableOptions | Class annotation used to assist in the creation of immutable classes.
  IndexedProperty | Field annotation used with properties to provide an indexed getter and setter for the property.
  InheritConstructors | Class annotation to make constructors from a super class available in a sub class.
  Internal | The Internal annotation is used to mark members that are internal.
  KnownImmutable | Class annotation used as a marker for immutable classes.
  MapConstructor | Class annotation used to assist in the creation of map constructors in classes.
  Memoized | Method annotation that creates a cache for the results of the execution of the annotated method.
  NamedDelegate | Marker interface used to indicate that the property names of the annotated parameter represent valid key names when using named arguments and that the property types are applicable for type checking purposes.
  NamedParam | Marker interface used to indicate that the name of the annotated parameter (or specified optional name) is a valid key name when using named arguments and that the parameter type is applicable for type checking purposes.
  NamedParams | Collector annotation for `NamedParam`.
  NamedVariant | Allows construction of a named-arg equivalent method or constructor.
  NotYetImplemented | Method annotation used to invert test case results.
  PackageScope | Annotation used for turning off Groovy's auto visibility conventions.
  PropertyOptions | Marker annotation used to indicate that special property handling code will be generated for this class.
  SelfType | This annotation can be added on a trait to declare the list of types that a class implementing that trait is supposed to extend.
  Sortable | A class annotation used to make a class Comparable by (potentially) multiple Comparators.
  SourceURI | Variable annotation used for getting the URI of the current script.
  Synchronized | Method annotation to make a method call synchronized for concurrency handling with some useful baked-in conventions.
  ToString | Class annotation used to assist in the creation of `toString()` methods in classes.
  Trait | Used to mark a class as being a trait.
  TupleConstructor | Class annotation used to assist in the creation of tuple constructors in classes.
  TypeChecked | This will let the Groovy compiler use compile time checks in the style of Java.
  TypeChecked.TypeCheckingInfo | This annotation is added by @TypeChecked on methods which have type checking turned on.
  VisibilityOptions | Marker annotation used in the context of AST transformations to provide a custom visibility.
  WithReadLock | This annotation is used in conjunction with `WithWriteLock` to support read and write synchronization on a method.
  WithWriteLock | This annotation is used in conjunction with `WithReadLock` to support read and write synchronization on a method.