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

Author:
  James Strachan, Alex Popescu

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ANNOTATION_TARGET`
`static final int`
`CONSTRUCTOR_TARGET`
`static final int`
`FIELD_TARGET`
`static final int`
`LOCAL_VARIABLE_TARGET`
`static final int`
`METHOD_TARGET`
`static final int`
`PACKAGE_TARGET`
`static final int`
`PARAMETER_TARGET`
`static final int`
`TYPE_TARGET`

## Constructor Summary

Constructors
Constructor
Description
`AnnotationNode(ClassNode classNode)`

## Method Summary

Modifier and Type
Method
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)`

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

`copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, getNodeMetaData, getText, putNodeMetaData, 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 Details

### 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 Details

### AnnotationNode

public AnnotationNode(ClassNode classNode)

## Method Details

### 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)