| Annotation Type | 
                        Description | 
                    
                            | 
                                
                                    ASTTest
                                
                             | 
                            This AST transformation aims at helping in debugging other AST transformations.  | 
                        
                            | 
                                
                                    AnnotationCollector
                                
                             | 
                            The AnnotationCollector can be used to define aliases for groups of 
 annotations.  | 
                        
                            | 
                                
                                    AutoClone
                                
                             | 
                            Class annotation used to assist in the creation of Cloneable classes.
  | 
                        
                            | 
                                
                                    AutoExternalize
                                
                             | 
                            Class annotation used to assist in the creation of Externalizable 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. | 
                        
                            | 
                                
                                    CompileDynamic
                                
                             | 
                            An annotation which is just a shortcut for @CompileStatic(TypeCheckingMode.SKIP).
  | 
                        
                            | 
                                
                                    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. | 
                        
                            | 
                                
                                    ConditionalInterrupt
                                
                             | 
                            Allows "interrupt-safe" executions of scripts by adding a custom check for interruption
 into loops (for, while, ...) and at the start of closures and methods. | 
                        
                            | 
                                
                                    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. | 
                        
                            | 
                                
                                    TailRecursive
                                
                             | 
                            Method annotation used to transform methods with tail recursive calls into iterative methods automagically
 since the JVM cannot do this itself.  | 
                        
                            | 
                                
                                    ThreadInterrupt
                                
                             | 
                            Allows "interrupt-safe" executions of scripts by adding Thread.currentThread().isInterrupted()
 checks into loops (for, while) and at the start of closures and methods. | 
                        
                            | 
                                
                                    TimedInterrupt
                                
                             | 
                            Allows safe timed executions of scripts by adding elapsed time checks into loops (for, while)
 and at the start of closures and methods and throwing an exception if a timeout occurs. | 
                        
                            | 
                                
                                    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. |