org.eclipse.wst.jsdt.core.dom
Class TypeDeclarationStatement

java.lang.Object
  extended by org.eclipse.wst.jsdt.core.dom.ASTNode
      extended by org.eclipse.wst.jsdt.core.dom.ProgramElement
          extended by org.eclipse.wst.jsdt.core.dom.Statement
              extended by org.eclipse.wst.jsdt.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.

For JLS2:
 TypeDeclarationStatement:
    TypeDeclaration
 
For JLS3, the kinds of type declarations grew to include enum declarations:
 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.

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.


Field Summary
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).
 
Fields inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode
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, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, 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, MODIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, WITH_STATEMENT
 
Method Summary
 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.
 
Methods inherited from class org.eclipse.wst.jsdt.core.dom.Statement
getLeadingComment, setLeadingComment
 
Methods inherited from class org.eclipse.wst.jsdt.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
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPE_DECLARATION_PROPERTY

public static final ChildPropertyDescriptor TYPE_DECLARATION_PROPERTY
The "typeDeclaration" structural property of this node type (JLS2 API only).


DECLARATION_PROPERTY

public static final ChildPropertyDescriptor DECLARATION_PROPERTY
The "declaration" structural property of this node type (added in JLS3 API).

Method Detail

propertyDescriptors

public static java.util.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 the AST.JLS* constants
Returns:
a list of property descriptors (element type: StructuralPropertyDescriptor)

getDeclaration

public AbstractTypeDeclaration getDeclaration()
Returns the abstract type declaration of this local type declaration statement (added in JLS3 API).

Returns:
the type declaration node

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:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created

getTypeDeclaration

public TypeDeclaration getTypeDeclaration()
Deprecated. In the JLS3 API, this method is replaced by getDeclaration(), which returns AbstractTypeDeclaration instead of TypeDeclaration.

Returns the type declaration of this local type declaration statement (JLS2 API only).

Returns:
the type declaration node
Throws:
java.lang.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 by setDeclaration(AbstractTypeDeclaration) which takes AbstractTypeDeclaration instead of TypeDeclaration.

Sets the type declaration of this local type declaration statement (JLS2 API only).

Parameters:
decl - the type declaration node
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created
java.lang.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