public class TypeDeclaration extends AbstractTypeDeclaration
TypeDeclaration: ClassDeclaration InterfaceDeclaration ClassDeclaration: [ Javadoc ] { ExtendedModifier } class Identifier [ < TypeParameter { , TypeParameter } > ] [ extends Type ] [ implements Type { , Type } ] { { ClassBodyDeclaration | ; } } InterfaceDeclaration: [ Javadoc ] { ExtendedModifier } interface Identifier [ < TypeParameter { , TypeParameter } > ] [ extends Type { , Type } ] { { InterfaceBodyDeclaration | ; } }
When a Javadoc comment is present, the source range begins with the first character of the "/**" comment delimiter. When there is no Javadoc 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.
Modifier and Type | Field and Description |
---|---|
static ChildListPropertyDescriptor |
BODY_DECLARATIONS_PROPERTY
The "bodyDeclarations" structural property of this node type (element type:
BodyDeclaration ) (added in JLS3 API). |
static SimplePropertyDescriptor |
INTERFACE_PROPERTY
The "interface" structural property of this node type (type:
Boolean ). |
static ChildPropertyDescriptor |
JAVADOC_PROPERTY
The "javadoc" structural property of this node type (child type:
Javadoc ). |
static SimplePropertyDescriptor |
MODIFIERS_PROPERTY
Deprecated.
In the JLS3 API, this property is replaced by
MODIFIERS2_PROPERTY . |
static ChildListPropertyDescriptor |
MODIFIERS2_PROPERTY
The "modifiers" structural property of this node type (element type:
IExtendedModifier ) (added in JLS3 API). |
static ChildPropertyDescriptor |
NAME_PROPERTY
The "name" structural property of this node type (child type:
SimpleName ). |
static ChildListPropertyDescriptor |
SUPER_INTERFACE_TYPES_PROPERTY
The "superInterfaceTypes" structural property of this node type (element type:
Type ) (added in JLS3 API). |
static ChildListPropertyDescriptor |
SUPER_INTERFACES_PROPERTY
Deprecated.
In the JLS3 API, this property is replaced by
SUPER_INTERFACE_TYPES_PROPERTY . |
static ChildPropertyDescriptor |
SUPERCLASS_PROPERTY
Deprecated.
In the JLS3 API, this property is replaced by
SUPERCLASS_TYPE_PROPERTY . |
static ChildPropertyDescriptor |
SUPERCLASS_TYPE_PROPERTY
The "superclassType" structural property of this node type (child type:
Type ) (added in JLS3 API). |
static ChildListPropertyDescriptor |
TYPE_PARAMETERS_PROPERTY
The "typeParameters" structural property of this node type (element type:
TypeParameter ) (added in JLS3 API). |
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, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, 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_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
Modifier and Type | Method and Description |
---|---|
FieldDeclaration[] |
getFields()
Returns the ordered list of field declarations of this type
declaration.
|
MethodDeclaration[] |
getMethods()
Returns the ordered list of method declarations of this type
declaration.
|
Name |
getSuperclass()
Deprecated.
In the JLS3 API, this method is replaced by
getSuperclassType() , which returns a Type
instead of a Name . |
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.
|
boolean |
isInterface()
Returns whether this type declaration declares a class or an
interface.
|
static List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.
|
void |
setInterface(boolean isInterface)
Sets whether this type declaration declares a class or an
interface.
|
void |
setSuperclass(Name superclassName)
Deprecated.
In the JLS3 API, this method is replaced by
setSuperclassType(Type) , which expects a
Type instead of a Name . |
void |
setSuperclassType(Type superclassType)
Sets or clears the superclass declared in this type
declaration (added in JLS3 API).
|
List |
superInterfaces()
Deprecated.
In the JLS3 API, this method is replaced by
superInterfaceTypes() . |
List |
superInterfaceTypes()
Returns the live ordered list of superinterfaces of this type
declaration (added in JLS3 API).
|
List |
typeParameters()
Returns the live ordered list of type parameters of 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, 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
Javadoc
).public static final SimplePropertyDescriptor MODIFIERS_PROPERTY
MODIFIERS2_PROPERTY
.Integer
) (JLS2 API only).public static final ChildListPropertyDescriptor MODIFIERS2_PROPERTY
IExtendedModifier
) (added in JLS3 API).public static final SimplePropertyDescriptor INTERFACE_PROPERTY
Boolean
).public static final ChildPropertyDescriptor NAME_PROPERTY
SimpleName
).public static final ChildPropertyDescriptor SUPERCLASS_PROPERTY
SUPERCLASS_TYPE_PROPERTY
.Name
) (JLS2 API only).public static final ChildListPropertyDescriptor SUPER_INTERFACES_PROPERTY
SUPER_INTERFACE_TYPES_PROPERTY
.Name
) (JLS2 API only).public static final ChildPropertyDescriptor SUPERCLASS_TYPE_PROPERTY
Type
) (added in JLS3 API).public static final ChildListPropertyDescriptor SUPER_INTERFACE_TYPES_PROPERTY
Type
) (added in JLS3 API).public static final ChildListPropertyDescriptor TYPE_PARAMETERS_PROPERTY
TypeParameter
) (added in JLS3 API).public static final ChildListPropertyDescriptor BODY_DECLARATIONS_PROPERTY
BodyDeclaration
) (added in JLS3 API).public static List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public boolean isInterface()
true
if this is an interface declaration,
and false
if this is a class declarationpublic void setInterface(boolean isInterface)
isInterface
- true
if this is an interface
declaration, and false
if this is a class
declarationpublic List typeParameters()
TypeParameter
)UnsupportedOperationException
- if this operation is used in
a JLS2 ASTpublic Name getSuperclass()
getSuperclassType()
, which returns a Type
instead of a Name
.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 noneUnsupportedOperationException
- if this operation is used in
an AST later than JLS2public 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 noneUnsupportedOperationException
- if this operation is used in
a JLS2 ASTpublic void setSuperclass(Name superclassName)
setSuperclassType(Type)
, which expects a
Type
instead of a Name
.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 noneIllegalArgumentException
- if:
UnsupportedOperationException
- if this operation is used in
an AST later than JLS2public 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 noneIllegalArgumentException
- if:
UnsupportedOperationException
- if this operation is used in
a JLS2 ASTpublic List superInterfaces()
superInterfaceTypes()
.Name
)UnsupportedOperationException
- if this operation is used in
an AST later than JLS2public List superInterfaceTypes()
Type
)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 MethodDeclaration[] 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) 2000, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.