org.eclipse.wst.jsdt.core.dom

## Class BodyDeclaration

- java.lang.Object
- - org.eclipse.wst.jsdt.core.dom.ASTNode
  - - org.eclipse.wst.jsdt.core.dom.ProgramElement
    - - org.eclipse.wst.jsdt.core.dom.BodyDeclaration

Direct Known Subclasses:
  AbstractTypeDeclaration, FieldDeclaration, FunctionDeclaration, Initializer

    public abstract class BodyDeclaration
    extends ProgramElement

Abstract base class of all AST nodes that represent body declarations that may appear in the body of some kind of class or interface declaration, including anonymous class declarations.

     BodyDeclaration:
                    ClassDeclaration
                    InterfaceDeclaration
                    FunctionDeclaration
                    ConstructorDeclaration
                    FieldDeclaration
                    Initializer

All types of body declarations carry modifiers, although they differ in which modifiers are allowed. Most types of body declarations can carry a doc comment; Initializer is the only ones that does not. The source range for body declarations always includes the doc comment if present.

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Field Summary

### Fields inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode

`ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_NAME, ARRAY_TYPE, ARROW_FUNCTION_EXPRESSION, ASSIGNMENT, ASSIGNMENT_NAME, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DEBUGGER_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPORT_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_OF_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, FUNCTION_DECLARATION_STATEMENT, FUNCTION_EXPRESSION, FUNCTION_INVOCATION, FUNCTION_REF, FUNCTION_REF_PARAMETER, IF_STATEMENT, IMPORT_DECLARATION, INFERRED_TYPE, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVASCRIPT_UNIT, JSDOC, LABELED_STATEMENT, LINE_COMMENT, LIST_EXPRESSION, MALFORMED, MEMBER_REF, META_PROPERTY, MODIFIER, MODULE_SPECIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, OBJECT_NAME, ORIGINAL, PACKAGE_DECLARATION, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, REST_ELEMENT_NAME, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, SPREAD_ELEMENT, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEMPLATE_ELEMENT, TEMPLATE_LITERAL, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_EXPRESSION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WITH_STATEMENT, YIELD_EXPRESSION`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`JSdoc` `getJavadoc()` Returns the doc comment node.
`ChildPropertyDescriptor` `getJavadocProperty()` Returns structural property descriptor for the "jsdoc" property of this node.
`int` `getModifiers()` Returns the modifiers explicitly specified on this declaration.
`ChildListPropertyDescriptor` `getModifiersProperty()` Returns structural property descriptor for the "modifiers" property of this node.
`java.util.List` `modifiers()` Returns the live ordered list of modifiers of this declaration .
`void` `setJavadoc(JSdoc docComment)` Sets or clears the doc comment node.
`void` `setModifiers(int modifiers)` Deprecated. Rhis method is replaced by `modifiers()` which contains a list of a `Modifier` nodes.

### Methods inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode

`accept, copySubtree, copySubtrees, delete, equals, getAST, getBodyChild, 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`

### Method Detail

#### getModifiersProperty

    public final ChildListPropertyDescriptor getModifiersProperty()

Returns structural property descriptor for the "modifiers" property of this node.

Returns:
  the property descriptor

#### getJavadocProperty

    public final ChildPropertyDescriptor getJavadocProperty()

Returns structural property descriptor for the "jsdoc" property of this node.

Returns:
  the property descriptor

#### getJavadoc

    public JSdoc getJavadoc()

Returns the doc comment node.

Returns:
  the doc comment node, or `null` if none

#### setJavadoc

    public void setJavadoc(JSdoc docComment)

Sets or clears the doc comment node.

Parameters:
  `docComment` - the doc comment node, or `null` if none
Throws:
  `java.lang.IllegalArgumentException` - if the doc comment string is invalid

#### getModifiers

    public int getModifiers()

Returns the modifiers explicitly specified on this declaration.

Returns:
  the bit-wise or of `Modifier` constants
See Also:
  `Modifier`

#### setModifiers

    public void setModifiers(int modifiers)

Deprecated. Rhis method is replaced by `modifiers()` which contains a list of a `Modifier` nodes.
Sets the modifiers explicitly specified on this declaration (JLS2 API only).

Parameters:
  `modifiers` - the given modifiers (bit-wise or of `Modifier` constants)
See Also:
  `Modifier`

#### modifiers

    public java.util.List modifiers()

Returns the live ordered list of modifiers of this declaration .

Returns:
  the live list of modifiers (element type: `IExtendedModifier`)