Package: org.codehaus.groovy.ast

## [Java] Class AnnotationNode

- org.codehaus.groovy.ast.AnnotationNode

- Represents an annotation which can be attached to interfaces, classes, methods and fields.

  Authors:
    James Strachan
    Alex Popescu

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static int` | `ANNOTATION_TARGET` |
    `static int` | `CONSTRUCTOR_TARGET` |
    `static int` | `FIELD_TARGET` |
    `static int` | `LOCAL_VARIABLE_TARGET` |
    `static int` | `METHOD_TARGET` |
    `static int` | `PACKAGE_TARGET` |
    `static int` | `PARAMETER_TARGET` |
    `static int` | `TYPE_TARGET` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `AnnotationNode (ClassNode classNode)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `void` | `addMember(String name, Expression value)`
    `` | `ClassNode` | `getClassNode()`
    `` | `Expression` | `getMember(String name)`
    `` | `Map<String, Expression>` | `getMembers()`
    `` | `boolean` | `hasClassRetention()` Flag corresponding to `RetentionPolicy.CLASS`.
    `` | `boolean` | `hasRuntimeRetention()` Flag corresponding to `RetentionPolicy`.
    `` | `boolean` | `hasSourceRetention()` Flag corresponding to `RetentionPolicy.SOURCE`.
    `` | `boolean` | `isBuiltIn()`
    `` | `boolean` | `isTargetAllowed(int target)`
    `` | `void` | `setAllowedTargets(int bitmap)`
    `` | `void` | `setClassRetention(boolean flag)` Sets the internal flag if the current annotation has `RetentionPolicy.CLASS`.
    `` | `void` | `setMember(String name, Expression value)`
    `` | `void` | `setRuntimeRetention(boolean flag)` Sets the internal flag of this annotation runtime retention policy.
    `` | `void` | `setSourceRetention(boolean flag)` Sets the internal flag if the current annotation has `RetentionPolicy.SOURCE`.
    `` | `static String` | `targetToName(int target)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class ASTNode` | `copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, getNodeMetaData, getText, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition, visit`
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### public static final int ANNOTATION_TARGET

    - #### public static final int CONSTRUCTOR_TARGET

    - #### public static final int FIELD_TARGET

    - #### public static final int LOCAL_VARIABLE_TARGET

    - #### public static final int METHOD_TARGET

    - #### public static final int PACKAGE_TARGET

    - #### public static final int PARAMETER_TARGET

    - #### public static final int TYPE_TARGET

  - ### Constructor Detail

    - #### public AnnotationNode(ClassNode classNode)

  - ### Method Detail

    - #### public void addMember(String name, Expression value)

    - #### public ClassNode getClassNode()

    - #### public Expression getMember(String name)

    - #### public Map<String, Expression> getMembers()

    - #### public boolean hasClassRetention()

      Flag corresponding to `RetentionPolicy.CLASS`.

      Returns:
        `true` if the annotation is recorded by the compiler, but not visible at runtime * `false` otherwise

    - #### public boolean hasRuntimeRetention()

      Flag corresponding to `RetentionPolicy`.

      Returns:
        `true` if the annotation should be visible at runtime, `false` otherwise

    - #### public boolean hasSourceRetention()

      Flag corresponding to `RetentionPolicy.SOURCE`.

      Returns:
        `true` if the annotation is only allowed in sources `false` otherwise

    - #### public boolean isBuiltIn()

    - #### public boolean isTargetAllowed(int target)

    - #### public void setAllowedTargets(int bitmap)

    - #### public void setClassRetention(boolean flag)

      Sets the internal flag if the current annotation has `RetentionPolicy.CLASS`.

    - #### public void setMember(String name, Expression value)

    - #### public void setRuntimeRetention(boolean flag)

      Sets the internal flag of this annotation runtime retention policy. If the current annotation has `RetentionPolicy.RUNTIME` or if `false` if the `RetentionPolicy.CLASS`.

      Parameters:
        `flag` - if `true` then current annotation is marked as having `RetentionPolicy.RUNTIME`. If `false` then the annotation has `RetentionPolicy.CLASS`.

    - #### public void setSourceRetention(boolean flag)

      Sets the internal flag if the current annotation has `RetentionPolicy.SOURCE`.

    - #### public static String targetToName(int target)