Package org.eclipse.jdt.core.dom

## Class AnnotationTypeMemberDeclaration

- java.lang.Object
- - org.eclipse.jdt.core.dom.ASTNode
  - - org.eclipse.jdt.core.dom.BodyDeclaration
    - - org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration

    public class AnnotationTypeMemberDeclaration
    extends BodyDeclaration

Annotation type member declaration AST node type (added in JLS3 API).

     AnnotationTypeMemberDeclaration:
       [ Javadoc ] { ExtendedModifier }
           Type Identifier ( ) [ default Expression ] ;

Note that annotation type member declarations are only meaningful as elements of `AbstractTypeDeclaration.bodyDeclarations()`.

When a Javadoc comment is present, the source range begins with the first character of the "/**" comment delimiter. When there is no Javadoc comment, the source range begins with the first character of the first modifier keyword (if modifiers), or the first character of the member type (no modifiers). The source range extends through the last character of the ";" token.

Since:
  3.1
Restriction:
  This class is not intended to be instantiated by clients.

### Field Summary

Fields
`static ChildPropertyDescriptor` `DEFAULT_PROPERTY` The "default" structural property of this node type (child type: `Expression`).
`static ChildPropertyDescriptor` `JAVADOC_PROPERTY` The "javadoc" structural property of this node type (child type: `Javadoc`).
`static ChildListPropertyDescriptor` `MODIFIERS2_PROPERTY` The "modifiers" structural property of this node type (element type: `IExtendedModifier`).
`static ChildPropertyDescriptor` `NAME_PROPERTY` The "name" structural property of this node type (child type: `SimpleName`).
`static ChildPropertyDescriptor` `TYPE_PROPERTY` The "type" structural property of this node type (child type: `Type`).

### Fields inherited from class org.eclipse.jdt.core.dom.ASTNode

`ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`Expression` `getDefault()` Returns the default value of this annotation type member, or `null` if there is none.
`SimpleName` `getName()` Returns the name of the annotation type member declared in this declaration.
`Type` `getType()` Returns the type of the annotation type member declared in this declaration.
`static List` `propertyDescriptors​(int apiLevel)` Returns a list of structural property descriptors for this node type.
`IMethodBinding` `resolveBinding()` Resolves and returns the binding for the annotation type member declared in this declaration.
`void` `setDefault​(Expression defaultValue)` Sets or clears the default value of this annotation type member.
`void` `setName​(SimpleName memberName)` Sets the name of the annotation type member declared in this declaration to the given name.
`void` `setType​(Type type)` Sets the type of the annotation type member declared in this declaration to the given type.

### Methods inherited from class org.eclipse.jdt.core.dom.BodyDeclaration

`getJavadoc, getJavadocProperty, getModifiers, getModifiersProperty, modifiers, setJavadoc, setModifiers`

### Methods inherited from class org.eclipse.jdt.core.dom.ASTNode

`accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### JAVADOC_PROPERTY

    public static final ChildPropertyDescriptor JAVADOC_PROPERTY

The "javadoc" structural property of this node type (child type: `Javadoc`).

#### MODIFIERS2_PROPERTY

    public static final ChildListPropertyDescriptor MODIFIERS2_PROPERTY

The "modifiers" structural property of this node type (element type: `IExtendedModifier`).

#### TYPE_PROPERTY

    public static final ChildPropertyDescriptor TYPE_PROPERTY

The "type" structural property of this node type (child type: `Type`).

#### NAME_PROPERTY

    public static final ChildPropertyDescriptor NAME_PROPERTY

The "name" structural property of this node type (child type: `SimpleName`).

#### DEFAULT_PROPERTY

    public static final ChildPropertyDescriptor DEFAULT_PROPERTY

The "default" structural property of this node type (child type: `Expression`).

### Method Detail

#### propertyDescriptors

    public static List propertyDescriptors​(int apiLevel)

Returns a list of structural property descriptors for this node type. Clients must not modify the result.

Parameters:
  `apiLevel` - the API level; one of the `AST.JLS*` constants
Returns:
  a list of property descriptors (element type: `StructuralPropertyDescriptor`)

#### getType

    public Type getType()

Returns the type of the annotation type member declared in this declaration.

Returns:
  the type of the member

#### setType

    public void setType​(Type type)

Sets the type of the annotation type member declared in this declaration to the given type.

Parameters:
  `type` - the new member type
Throws:
  `IllegalArgumentException` - if:
  - the node belongs to a different AST
  - the node already has a parent

#### getName

    public SimpleName getName()

Returns the name of the annotation type member declared in this declaration.

Returns:
  the member name node

#### setName

    public void setName​(SimpleName memberName)

Sets the name of the annotation type member declared in this declaration to the given name.

Parameters:
  `memberName` - the new member name
Throws:
  `IllegalArgumentException` - if:
  - the node belongs to a different AST
  - the node already has a parent

#### getDefault

    public Expression getDefault()

Returns the default value of this annotation type member, or `null` if there is none.

Returns:
  the expression node, or `null` if there is none

#### setDefault

    public void setDefault​(Expression defaultValue)

Sets or clears the default value of this annotation type member.

Parameters:
  `defaultValue` - the expression node, or `null` if there is none
Throws:
  `IllegalArgumentException` - if:
  - the node belongs to a different AST
  - the node already has a parent
  - a cycle in would be created

#### resolveBinding

    public IMethodBinding resolveBinding()

Resolves and returns the binding for the annotation type member declared in this declaration.

Note that bindings are generally unavailable unless requested when the AST is being built.

Returns:
  the binding, or `null` if the binding cannot be resolved