org.codehaus.groovy.ast

## Class AnnotationNode

- java.lang.Object
- - org.codehaus.groovy.ast.ASTNode
  - - org.codehaus.groovy.ast.AnnotationNode

    public class AnnotationNode
    extends ASTNode

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

Version:
  $Revision: 16963 $
Author:
  James Strachan, Alex Popescu

### Field Summary

Fields
`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)`

### Method Summary

Methods
`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)`

### Methods inherited from class org.codehaus.groovy.ast.ASTNode

`copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, getText, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition, visit`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### TYPE_TARGET

    public static final int TYPE_TARGET

See Also:
  Constant Field Values

#### CONSTRUCTOR_TARGET

    public static final int CONSTRUCTOR_TARGET

See Also:
  Constant Field Values

#### METHOD_TARGET

    public static final int METHOD_TARGET

See Also:
  Constant Field Values

#### FIELD_TARGET

    public static final int FIELD_TARGET

See Also:
  Constant Field Values

#### PARAMETER_TARGET

    public static final int PARAMETER_TARGET

See Also:
  Constant Field Values

#### LOCAL_VARIABLE_TARGET

    public static final int LOCAL_VARIABLE_TARGET

See Also:
  Constant Field Values

#### ANNOTATION_TARGET

    public static final int ANNOTATION_TARGET

See Also:
  Constant Field Values

#### PACKAGE_TARGET

    public static final int PACKAGE_TARGET

See Also:
  Constant Field Values

### Constructor Detail

#### AnnotationNode

    public AnnotationNode(ClassNode classNode)

### Method Detail

#### getClassNode

    public ClassNode getClassNode()

#### getMembers

    public Map<String,Expression> getMembers()

#### getMember

    public Expression getMember(String name)

#### addMember

    public void addMember(String name,
                 Expression value)

#### setMember

    public void setMember(String name,
                 Expression value)

#### isBuiltIn

    public boolean isBuiltIn()

#### hasRuntimeRetention

    public boolean hasRuntimeRetention()

Flag corresponding to `RetentionPolicy`.

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

#### setRuntimeRetention

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

#### hasSourceRetention

    public boolean hasSourceRetention()

Flag corresponding to `RetentionPolicy.SOURCE`.

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

#### setSourceRetention

    public void setSourceRetention(boolean flag)

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

#### hasClassRetention

    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

#### setClassRetention

    public void setClassRetention(boolean flag)

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

#### setAllowedTargets

    public void setAllowedTargets(int bitmap)

#### isTargetAllowed

    public boolean isTargetAllowed(int target)

#### targetToName

    public static String targetToName(int target)