Package org.eclipse.jdt.core.dom

# Class AbstractTypeDeclaration

java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.BodyDeclaration
org.eclipse.jdt.core.dom.AbstractTypeDeclaration

Direct Known Subclasses:
  `AnnotationTypeDeclaration`, `EnumDeclaration`, `ImplicitTypeDeclaration`, `RecordDeclaration`, `TypeDeclaration`

public abstract class AbstractTypeDeclaration extends BodyDeclaration
Abstract subclass for type declaration, enum declaration, and annotation type declaration AST node types.

     AbstractTypeDeclaration:
                    TypeDeclaration
                    EnumDeclaration
                    AnnotationTypeDeclaration

Since:
  3.0

## Field Summary

### 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, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, 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, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, 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_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT`

## Method Summary

Modifier and Type
Method
Description
`List`
`bodyDeclarations()`
Returns the live ordered list of body declarations of this type declaration.
`final ChildListPropertyDescriptor`
`getBodyDeclarationsProperty()`
Returns structural property descriptor for the "bodyDeclarations" property of this node (element type: `BodyDeclaration`).
`SimpleName`
`getName()`
Returns the name of the type declared in this type declaration.
`final ChildPropertyDescriptor`
`getNameProperty()`
Returns structural property descriptor for the "name" property of this node (child type: `SimpleName`).
`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).
`final 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.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`

## Method Details

### getBodyDeclarationsProperty

public final ChildListPropertyDescriptor getBodyDeclarationsProperty()
Returns structural property descriptor for the "bodyDeclarations" property of this node (element type: `BodyDeclaration`).

Returns:
  the property descriptor
Since:
  3.1

### getNameProperty

public final ChildPropertyDescriptor getNameProperty()
Returns structural property descriptor for the "name" property of this node (child type: `SimpleName`).

Returns:
  the property descriptor
Since:
  3.1

### getName

public SimpleName getName()
Returns the name of the type declared in this type declaration.

Returns:
  the type name node
Since:
  2.0 (originally declared on `TypeDeclaration`)

### 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:
  `IllegalArgumentException` - if:
  - the node belongs to a different AST
  - the node already has a parent
Since:
  2.0 (originally declared on `TypeDeclaration`)

### bodyDeclarations

public List bodyDeclarations()
Returns the live ordered list of body declarations of this type declaration.

Returns:
  the live list of body declarations (element type: `BodyDeclaration`)
Since:
  2.0 (originally declared on `TypeDeclaration`)

### 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 compilation unit node.

Returns:
  `true` if this type declaration is a child of a compilation unit node, and `false` otherwise
Since:
  2.0 (originally declared on `TypeDeclaration`)

### 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
Since:
  2.0 (originally declared on `TypeDeclaration`)

### 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
Since:
  2.0 (originally declared on `TypeDeclaration`)

### 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
Since:
  3.1 Declared in 3.0 on the individual subclasses.