public class TypeDeclarationStatement extends Statement
This kind of node is used to convert a type declaration node into a statement node by wrapping it.
For JLS2:TypeDeclarationStatement: TypeDeclarationFor JLS3, the kinds of type declarations grew to include enum declarations:
TypeDeclarationStatement: TypeDeclaration EnumDeclarationAlthough 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.
Note: This Class only applies to ECMAScript 4 which is not yet supported
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.Modifier and Type | Field and Description |
---|---|
static ChildPropertyDescriptor |
DECLARATION_PROPERTY
The "declaration" structural property of this node type (added in JLS3 API).
|
static ChildPropertyDescriptor |
TYPE_DECLARATION_PROPERTY
The "typeDeclaration" structural property of this node type (JLS2 API only).
|
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
Modifier and Type | Method and 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 by
getDeclaration() , which returns AbstractTypeDeclaration
instead of TypeDeclaration . |
static java.util.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 by
setDeclaration(AbstractTypeDeclaration) which takes
AbstractTypeDeclaration instead of
TypeDeclaration . |
getLeadingComment, setLeadingComment
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
public static final ChildPropertyDescriptor TYPE_DECLARATION_PROPERTY
public static final ChildPropertyDescriptor DECLARATION_PROPERTY
public static java.util.List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public AbstractTypeDeclaration getDeclaration()
public void setDeclaration(AbstractTypeDeclaration decl)
decl
- the type declaration nodejava.lang.IllegalArgumentException
- if:
public TypeDeclaration getTypeDeclaration()
getDeclaration()
, which returns AbstractTypeDeclaration
instead of TypeDeclaration
.java.lang.UnsupportedOperationException
- if this operation is used in
an AST later than JLS2public void setTypeDeclaration(TypeDeclaration decl)
setDeclaration(AbstractTypeDeclaration)
which takes
AbstractTypeDeclaration
instead of
TypeDeclaration
.decl
- the type declaration nodejava.lang.IllegalArgumentException
- if:
java.lang.UnsupportedOperationException
- if this operation is used in
an AST later than JLS2public ITypeBinding resolveBinding()
Note that bindings are generally unavailable unless requested when the AST is being built.
null
if the binding cannot be
resolvedCopyright (c) IBM Corp. and others 2000, 2016. All Rights Reserved.