# 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.

Enum Summary
Enum | Description
--- | ---
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".

Annotation Types Summary
Annotation Type | Description
--- | ---
ASTTest | This AST transformation aims at helping in debugging other AST transformations.
AutoClone | Note: This annotation is currently experimental!
AutoExternalize | Note: This annotation is currently experimental!
Canonical | Class annotation used to assist in the creation of mutable classes.
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.
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.
Immutable | 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.
NotYetImplemented | Method annotation used to invert test case results.
PackageScope | Class, method or field annotation used for turning off Groovy's auto visibility conventions.
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.
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.
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.