| Interface | Description | 
|---|---|
| CompilationUnitAware | This interface is for AST transformations which must be aware of the compilation unit where they are applied. | 
| 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
  TypeCheckedin general, but where only one or more methods are "dynamic". | 
| 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 | 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()andhashCode()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  WithWriteLockto support read and write synchronization on a method. | 
| WithWriteLock | This annotation is used in conjunction with  WithReadLockto support read and write synchronization on a method. |