| Interface | Description | 
|---|---|
| CompilationUnitAware | 
 This interface is for AST transformations which must be aware of the compilation unit where they are applied. 
 | 
| Class | Description | 
|---|---|
| Undefined | 
 Java doesn't allow you to have null as an attribute value. 
 | 
| Undefined.CLASS | 
| 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 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. | 
| BaseScript | 
 Variable annotation used for changing the base script class of the current script. 
 | 
| 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. | 
| 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. 
 | 
| 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. 
 | 
| Memoized | 
 Method annotation that creates a cache for the results of the execution of the annotated method. 
 | 
| NotYetImplemented | 
 Method annotation used to invert test case results. 
 | 
| PackageScope | 
 Annotation used for turning off Groovy's auto visibility conventions. 
 | 
| 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 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. 
 | 
| 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. |