public class TypeDeclaration extends AbstractTypeDeclaration
TypeDeclaration: ClassDeclaration InterfaceDeclaration ClassDeclaration: [ jsdoc ] { Modifier } class Identifier [ extends Type] [ implements Type { , Type } ] { { ClassBodyDeclaration | ; } } InterfaceDeclaration: [ jsdoc ] { Modifier } interface Identifier [ extends Type { , Type } ] { { InterfaceBodyDeclaration | ; } }For JLS3, type parameters and reified modifiers (and annotations) were added, and the superclass type name and superinterface types names are generalized to type so that parameterized types can be referenced:
TypeDeclaration: ClassDeclaration InterfaceDeclaration ClassDeclaration: [ jsdoc ] { ExtendedModifier } class Identifier [ < TypeParameter { , TypeParameter } > ] [ extends Type ] [ implements Type { , Type } ] { { ClassBodyDeclaration | ; } } InterfaceDeclaration: [ jsdoc ] { ExtendedModifier } interface Identifier [ < TypeParameter { , TypeParameter } > ] [ extends Type { , Type } ] { { InterfaceBodyDeclaration | ; } }
When a jsdoc comment is present, the source range begins with the first character of the "/**" comment delimiter. When there is no jsdoc comment, the source range begins with the first character of the first modifier or annotation (if any), or the first character of the "class" or "interface" keyword (if no modifiers or annotations). The source range extends through the last character of the "}" token following the body declarations.
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 ChildListPropertyDescriptor |
BODY_DECLARATIONS_PROPERTY
The "bodyDeclarations" structural property of this node type (added in JLS3 API).
|
static ChildPropertyDescriptor |
JAVADOC_PROPERTY
The "javadoc" structural property of this node type.
|
static SimplePropertyDescriptor |
MODIFIERS_PROPERTY
The "modifiers" structural property of this node type (JLS2 API only).
|
static ChildListPropertyDescriptor |
MODIFIERS2_PROPERTY
The "modifiers" structural property of this node type (added in JLS3 API).
|
static ChildPropertyDescriptor |
NAME_PROPERTY
The "name" structural property of this node type.
|
static ChildPropertyDescriptor |
SUPERCLASS_EXPRESSION_PROPERTY
The "superclass expression" structural property of this node type
|
static ChildPropertyDescriptor |
SUPERCLASS_PROPERTY
Deprecated.
|
static ChildPropertyDescriptor |
SUPERCLASS_TYPE_PROPERTY
The "superclassType" structural property of this node type (added in JLS3 API).
|
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 |
---|---|
FieldDeclaration[] |
getFields()
Returns the ordered list of field declarations of this type
declaration.
|
FunctionDeclaration[] |
getMethods()
Returns the ordered list of method declarations of this type
declaration.
|
Name |
getSuperclass()
Returns the name of the superclass declared in this type
declaration, or
null if there is none (JLS2 API only). |
Expression |
getSuperclassExpression()
Returns the superclass expression declared in this type
declaration, or
null if there is none |
Type |
getSuperclassType()
Returns the superclass declared in this type
declaration, or
null if there is none (added in JLS3 API). |
TypeDeclaration[] |
getTypes()
Returns the ordered list of member type declarations of this type
declaration.
|
static java.util.List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.
|
void |
setSuperclass(Name superclassName)
Sets or clears the name of the superclass declared in this type
declaration (JLS2 API only).
|
void |
setSuperclassExpression(Expression superclassExpression)
Sets or clears the expression of the superclass declared in this type
declaration
|
void |
setSuperclassType(Type superclassType)
Sets or clears the superclass declared in this type
declaration (added in JLS3 API).
|
bodyDeclarations, getBodyDeclarationsProperty, getName, getNameProperty, isLocalTypeDeclaration, isMemberTypeDeclaration, isPackageMemberTypeDeclaration, resolveBinding, setName
getJavadoc, getJavadocProperty, getModifiers, getModifiersProperty, modifiers, setJavadoc, setModifiers
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 JAVADOC_PROPERTY
public static final SimplePropertyDescriptor MODIFIERS_PROPERTY
public static final ChildListPropertyDescriptor MODIFIERS2_PROPERTY
public static final ChildPropertyDescriptor NAME_PROPERTY
public static final ChildPropertyDescriptor SUPERCLASS_PROPERTY
SUPERCLASS_EXPRESSION_PROPERTY
public static final ChildPropertyDescriptor SUPERCLASS_EXPRESSION_PROPERTY
public static final ChildPropertyDescriptor SUPERCLASS_TYPE_PROPERTY
public static final ChildListPropertyDescriptor BODY_DECLARATIONS_PROPERTY
public static java.util.List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public Name getSuperclass()
null
if there is none (JLS2 API only).
Note that this child is not relevant for interface declarations (although it does still figure in subtree equality comparisons).
null
if
there is nonepublic Type getSuperclassType()
null
if there is none (added in JLS3 API).
Note that this child is not relevant for interface declarations (although it does still figure in subtree equality comparisons).
null
if
there is nonepublic void setSuperclass(Name superclassName)
Note that this child is not relevant for interface declarations (although it does still figure in subtree equality comparisons).
superclassName
- the superclass name node, or null
if
there is nonejava.lang.IllegalArgumentException
- if:
public Expression getSuperclassExpression()
null
if there is nonenull
if
there is nonepublic void setSuperclassExpression(Expression superclassExpression)
superclassName
- the superclass name node, or null
if
there is nonejava.lang.IllegalArgumentException
- if:
public void setSuperclassType(Type superclassType)
Note that this child is not relevant for interface declarations (although it does still figure in subtree equality comparisons).
superclassType
- the superclass type node, or null
if
there is nonejava.lang.IllegalArgumentException
- if:
java.lang.UnsupportedOperationException
- if this operation is used in
a JLS2 ASTpublic FieldDeclaration[] getFields()
This convenience method returns this node's body declarations
with non-fields filtered out. Unlike bodyDeclarations
,
this method does not return a live result.
public FunctionDeclaration[] getMethods()
This convenience method returns this node's body declarations
with non-methods filtered out. Unlike bodyDeclarations
,
this method does not return a live result.
public TypeDeclaration[] getTypes()
This convenience method returns this node's body declarations
with non-types filtered out. Unlike bodyDeclarations
,
this method does not return a live result.
Copyright (c) IBM Corp. and others 2000, 2010. All Rights Reserved.