org.eclipse.wst.jsdt.core.dom

## Class AbstractTypeDeclaration

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

Direct Known Subclasses:
  TypeDeclaration

    public abstract class AbstractTypeDeclaration
    extends BodyDeclaration

Abstract subclass for type declaration AST node types. 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
`java.util.List` `bodyDeclarations()` Returns the live ordered list of body declarations of this type declaration.
`ChildListPropertyDescriptor` `getBodyDeclarationsProperty()` Returns structural property descriptor for the "bodyDeclarations" property of this node.
`SimpleName` `getName()` Returns the name of the type declared in this type declaration.
`ChildPropertyDescriptor` `getNameProperty()` Returns structural property descriptor for the "name" property of this node.
`boolean` `isLocalTypeDeclaration()` Returns whether this type declaration is a local type.
`boolean` `isMemberTypeDeclaration()` Returns whether this type declaration is a type member.
`boolean` `isPackageMemberTypeDeclaration()` Returns whether this type declaration is a package member (that is, a top-level type).
`ITypeBinding` `resolveBinding()` Resolves and returns the binding for the type declared in this type declaration.
`void` `setName(SimpleName typeName)` Sets the name of the type declared in this type declaration to the given name.

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

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

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

#### getBodyDeclarationsProperty

    public final ChildListPropertyDescriptor getBodyDeclarationsProperty()

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

Returns:
  the property descriptor

#### getNameProperty

    public final ChildPropertyDescriptor getNameProperty()

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

Returns:
  the property descriptor

#### getName

    public SimpleName getName()

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

Returns:
  the type name node

#### setName

    public void setName(SimpleName typeName)

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

Parameters:
  `typeName` - the new type name
Throws:
  `java.lang.IllegalArgumentException` - if:
  - the node belongs to a different AST
  - the node already has a parent

#### bodyDeclarations

    public java.util.List bodyDeclarations()

Returns the live ordered list of body declarations of this type declaration.

Returns:
  the live list of body declarations (element type: `BodyDeclaration`)

#### isPackageMemberTypeDeclaration

    public boolean isPackageMemberTypeDeclaration()

Returns whether this type declaration is a package member (that is, a top-level type).

Note that this is a convenience method that simply checks whether this node's parent is a javaScript unit node.

Returns:
  `true` if this type declaration is a child of a javaScript unit node, and `false` otherwise

#### isMemberTypeDeclaration

    public boolean isMemberTypeDeclaration()

Returns whether this type declaration is a type member.

Note that this is a convenience method that simply checks whether this node's parent is a type declaration node or an anonymous class declaration.

Returns:
  `true` if this type declaration is a child of a type declaration node or an anonymous class declaration node, and `false` otherwise

#### isLocalTypeDeclaration

    public boolean isLocalTypeDeclaration()

Returns whether this type declaration is a local type.

Note that this is a convenience method that simply checks whether this node's parent is a type declaration statement node.

Returns:
  `true` if this type declaration is a child of a type declaration statement node, and `false` otherwise

#### resolveBinding

    public final ITypeBinding resolveBinding()

Resolves and returns the binding for the type declared in this type 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