|
org.eclipse.jdt.core.dom
Class TypeDeclaration
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.BodyDeclaration
org.eclipse.jdt.core.dom.AbstractTypeDeclaration
org.eclipse.jdt.core.dom.TypeDeclaration
-
public class TypeDeclaration
- extends
AbstractTypeDeclaration
Type declaration AST node type. A type declaration
is the union of a class declaration and an interface declaration.
For JLS2:
TypeDeclaration:
ClassDeclaration
InterfaceDeclaration
ClassDeclaration:
[ Javadoc ] { Modifier } class Identifier
[ extends Type]
[ implements Type { , Type } ]
{ { ClassBodyDeclaration | ; } }
InterfaceDeclaration:
[ Javadoc ] { 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:
[ 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.
-
Since:
- 2.0
-
Restriction:
- This class is not intended to be instantiated by clients.
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,
DO_STATEMENT,
EMPTY_STATEMENT,
ENHANCED_FOR_STATEMENT,
ENUM_CONSTANT_DECLARATION,
ENUM_DECLARATION,
EXPRESSION_STATEMENT,
FIELD_ACCESS,
FIELD_DECLARATION,
FOR_STATEMENT,
IF_STATEMENT,
IMPORT_DECLARATION,
INFIX_EXPRESSION,
INITIALIZER,
INSTANCEOF_EXPRESSION,
JAVADOC,
LABELED_STATEMENT,
LINE_COMMENT,
MALFORMED,
MARKER_ANNOTATION,
MEMBER_REF,
MEMBER_VALUE_PAIR,
METHOD_DECLARATION,
METHOD_INVOCATION,
METHOD_REF,
METHOD_REF_PARAMETER,
MODIFIER,
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,
SWITCH_CASE,
SWITCH_STATEMENT,
SYNCHRONIZED_STATEMENT,
TAG_ELEMENT,
TEXT_ELEMENT,
THIS_EXPRESSION,
THROW_STATEMENT,
TRY_STATEMENT,
TYPE_DECLARATION,
TYPE_DECLARATION_STATEMENT,
TYPE_LITERAL,
TYPE_PARAMETER,
VARIABLE_DECLARATION_EXPRESSION,
VARIABLE_DECLARATION_FRAGMENT,
VARIABLE_DECLARATION_STATEMENT,
WHILE_STATEMENT,
WILDCARD_TYPE
|
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
|
JAVADOC_PROPERTY
public static final
ChildPropertyDescriptor JAVADOC_PROPERTY
- The "javadoc" structural property of this node type.
-
Since:
- 3.0
MODIFIERS_PROPERTY
public static final
SimplePropertyDescriptor MODIFIERS_PROPERTY
- The "modifiers" structural property of this node type (JLS2 API only).
-
Since:
- 3.0
MODIFIERS2_PROPERTY
public static final
ChildListPropertyDescriptor MODIFIERS2_PROPERTY
- The "modifiers" structural property of this node type (added in JLS3 API).
-
Since:
- 3.1
INTERFACE_PROPERTY
public static final
SimplePropertyDescriptor INTERFACE_PROPERTY
- The "interface" structural property of this node type.
-
Since:
- 3.0
NAME_PROPERTY
public static final
ChildPropertyDescriptor NAME_PROPERTY
- The "name" structural property of this node type.
-
Since:
- 3.0
SUPERCLASS_PROPERTY
public static final
ChildPropertyDescriptor SUPERCLASS_PROPERTY
- The "superclass" structural property of this node type (JLS2 API only).
-
Since:
- 3.0
SUPER_INTERFACES_PROPERTY
public static final
ChildListPropertyDescriptor SUPER_INTERFACES_PROPERTY
- The "superInterfaces" structural property of this node type (JLS2 API only).
-
Since:
- 3.0
SUPERCLASS_TYPE_PROPERTY
public static final
ChildPropertyDescriptor SUPERCLASS_TYPE_PROPERTY
- The "superclassType" structural property of this node type (added in JLS3 API).
-
Since:
- 3.1
SUPER_INTERFACE_TYPES_PROPERTY
public static final
ChildListPropertyDescriptor SUPER_INTERFACE_TYPES_PROPERTY
- The "superInterfaceTypes" structural property of this node type (added in JLS3 API).
-
Since:
- 3.1
TYPE_PARAMETERS_PROPERTY
public static final
ChildListPropertyDescriptor TYPE_PARAMETERS_PROPERTY
- The "typeParameters" structural property of this node type (added in JLS3 API).
-
Since:
- 3.1
BODY_DECLARATIONS_PROPERTY
public static final
ChildListPropertyDescriptor BODY_DECLARATIONS_PROPERTY
- The "bodyDeclarations" structural property of this node type (added in JLS3 API).
-
Since:
- 3.0
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 the
AST.JLS* constants
-
Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor ) -
Since:
- 3.0
isInterface
public boolean isInterface()
- Returns whether this type declaration declares a class or an
interface.
-
-
Returns:
-
true if this is an interface declaration,
and false if this is a class declaration
setInterface
public void setInterface(boolean isInterface)
- Sets whether this type declaration declares a class or an
interface.
-
-
Parameters:
-
isInterface - true if this is an interface
declaration, and false if this is a class
declaration
typeParameters
public
List typeParameters()
- Returns the live ordered list of type parameters of this type
declaration (added in JLS3 API). This list is non-empty for parameterized types.
-
-
Returns:
- the live list of type parameters
(element type:
TypeParameter )
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST -
Since:
- 3.1
getSuperclass
public
Name getSuperclass()
-
Deprecated. In the JLS3 API, this method is replaced by
getSuperclassType() , which returns a Type
instead of a Name .
- Returns the name of the superclass declared in this type
declaration, or
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).
-
-
Returns:
- the superclass name node, or
null if
there is none
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
an AST later than JLS2
getSuperclassType
public
Type getSuperclassType()
- Returns the superclass declared in this type
declaration, or
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).
-
-
Returns:
- the superclass type node, or
null if
there is none
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST -
Since:
- 3.1
setSuperclass
public void setSuperclass(
Name superclassName)
-
Deprecated. In the JLS3 API, this method is replaced by
setSuperclassType(Type) , which expects a
Type instead of a Name .
- Sets or clears the name of the superclass declared in this type
declaration (JLS2 API only).
Note that this child is not relevant for interface
declarations (although it does still figure in subtree
equality comparisons).
-
-
Parameters:
-
superclassName - the superclass name node, or null if
there is none
-
Throws:
-
IllegalArgumentException
- if:
- the node belongs to a different AST
- the node already has a parent
-
UnsupportedOperationException
- if this operation is used in
an AST later than JLS2
setSuperclassType
public void setSuperclassType(
Type superclassType)
- Sets or clears the superclass declared in this type
declaration (added in JLS3 API).
Note that this child is not relevant for interface declarations
(although it does still figure in subtree equality comparisons).
-
-
Parameters:
-
superclassType - the superclass type node, or null if
there is none
-
Throws:
-
IllegalArgumentException
- if:
- the node belongs to a different AST
- the node already has a parent
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST -
Since:
- 3.1
superInterfaces
public
List superInterfaces()
-
Deprecated. In the JLS3 API, this method is replaced by
superInterfaceTypes() .
- Returns the live ordered list of names of superinterfaces of this type
declaration (JLS2 API only). For a class declaration, these are the names
of the interfaces that this class implements; for an interface
declaration, these are the names of the interfaces that this interface
extends.
-
-
Returns:
- the live list of interface names
(element type:
Name )
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
an AST later than JLS2
superInterfaceTypes
public
List superInterfaceTypes()
- Returns the live ordered list of superinterfaces of this type
declaration (added in JLS3 API). For a class declaration, these are the interfaces
that this class implements; for an interface declaration,
these are the interfaces that this interface extends.
-
-
Returns:
- the live list of interface types
(element type:
Type )
-
Throws:
-
UnsupportedOperationException
- if this operation is used in
a JLS2 AST -
Since:
- 3.1
getFields
public
FieldDeclaration[] getFields()
- Returns the ordered list of field declarations of this type
declaration. For a class declaration, these are the
field declarations; for an interface declaration, these are
the constant declarations.
This convenience method returns this node's body declarations
with non-fields filtered out. Unlike bodyDeclarations ,
this method does not return a live result.
-
-
Returns:
- the (possibly empty) list of field declarations
getMethods
public
MethodDeclaration[] getMethods()
- Returns the ordered list of method declarations of this type
declaration.
This convenience method returns this node's body declarations
with non-methods filtered out. Unlike bodyDeclarations ,
this method does not return a live result.
-
-
Returns:
- the (possibly empty) list of method (and constructor)
declarations
getTypes
public
TypeDeclaration[] getTypes()
- Returns the ordered list of member type declarations of this type
declaration.
This convenience method returns this node's body declarations
with non-types filtered out. Unlike bodyDeclarations ,
this method does not return a live result.
-
-
Returns:
- the (possibly empty) list of member type declarations
Copyright (c) IBM Corp. and others 2000, 2008. All Rights Reserved.
|
|