Package org.eclipse.jdt.core.dom
Class TypeDeclarationStatement
- java.lang.Object
-
- org.eclipse.jdt.core.dom.ASTNode
-
- org.eclipse.jdt.core.dom.Statement
-
- org.eclipse.jdt.core.dom.TypeDeclarationStatement
-
public class TypeDeclarationStatement extends Statement
Local type declaration statement AST node type.This kind of node is used to convert a type declaration node into a statement node by wrapping it.
TypeDeclarationStatement: TypeDeclaration EnumDeclaration
Although allowed at the AST, not all arrangements of AST nodes are meaningful; in particular, only class and enum declarations are meaningful in the context of a block.- Since:
- 2.0
- Restriction:
- This class is not intended to be instantiated by clients.
-
-
Field Summary
Fields Modifier and Type Field Description static ChildPropertyDescriptor
DECLARATION_PROPERTY
The "declaration" structural property of this node type (child type:AbstractTypeDeclaration
) (added in JLS3 API).static ChildPropertyDescriptor
TYPE_DECLARATION_PROPERTY
Deprecated.In the JLS3 API, this property is replaced byDECLARATION_PROPERTY
.-
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, RECORD_DECLARATION, 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, TEXT_BLOCK, 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, YIELD_STATEMENT
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description AbstractTypeDeclaration
getDeclaration()
Returns the abstract type declaration of this local type declaration statement (added in JLS3 API).TypeDeclaration
getTypeDeclaration()
Deprecated.In the JLS3 API, this method is replaced bygetDeclaration()
, which returnsAbstractTypeDeclaration
instead ofTypeDeclaration
.static List
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.ITypeBinding
resolveBinding()
Resolves and returns the binding for the class or interface declared in this type declaration statement.void
setDeclaration(AbstractTypeDeclaration decl)
Sets the abstract type declaration of this local type declaration statement (added in JLS3 API).void
setTypeDeclaration(TypeDeclaration decl)
Deprecated.In the JLS3 API, this method is replaced bysetDeclaration(AbstractTypeDeclaration)
which takesAbstractTypeDeclaration
instead ofTypeDeclaration
.-
Methods inherited from class org.eclipse.jdt.core.dom.Statement
getLeadingComment, setLeadingComment
-
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
-
-
-
-
Field Detail
-
TYPE_DECLARATION_PROPERTY
public static final ChildPropertyDescriptor TYPE_DECLARATION_PROPERTY
Deprecated.In the JLS3 API, this property is replaced byDECLARATION_PROPERTY
.The "typeDeclaration" structural property of this node type (child type:TypeDeclaration
) (JLS2 API only).- Since:
- 3.0
-
DECLARATION_PROPERTY
public static final ChildPropertyDescriptor DECLARATION_PROPERTY
The "declaration" structural property of this node type (child type:AbstractTypeDeclaration
) (added in JLS3 API).- Since:
- 3.1
-
-
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 theAST.JLS*
constants- Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor
) - Since:
- 3.0
-
getDeclaration
public AbstractTypeDeclaration getDeclaration()
Returns the abstract type declaration of this local type declaration statement (added in JLS3 API).- Returns:
- the type declaration node
- Since:
- 3.1
-
setDeclaration
public void setDeclaration(AbstractTypeDeclaration decl)
Sets the abstract type declaration of this local type declaration statement (added in JLS3 API).- Parameters:
decl
- the type declaration node- Throws:
IllegalArgumentException
- if:- the node belongs to a different AST
- the node already has a parent
- a cycle in would be created
- Since:
- 3.1
-
getTypeDeclaration
public TypeDeclaration getTypeDeclaration()
Deprecated.In the JLS3 API, this method is replaced bygetDeclaration()
, which returnsAbstractTypeDeclaration
instead ofTypeDeclaration
.Returns the type declaration of this local type declaration statement (JLS2 API only).- Returns:
- the type declaration node
- Throws:
UnsupportedOperationException
- if this operation is used in an AST later than JLS2
-
setTypeDeclaration
public void setTypeDeclaration(TypeDeclaration decl)
Deprecated.In the JLS3 API, this method is replaced bysetDeclaration(AbstractTypeDeclaration)
which takesAbstractTypeDeclaration
instead ofTypeDeclaration
.Sets the type declaration of this local type declaration statement (JLS2 API only).- Parameters:
decl
- the type declaration node- Throws:
IllegalArgumentException
- if:- the node belongs to a different AST
- the node already has a parent
- a cycle in would be created
UnsupportedOperationException
- if this operation is used in an AST later than JLS2
-
resolveBinding
public ITypeBinding resolveBinding()
Resolves and returns the binding for the class or interface declared in this type declaration statement.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
-
-