Eclipse JDT
2.0

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.TypeDeclaration

public class TypeDeclaration
extends BodyDeclaration

Type declaration AST node type. A type declaration is the union of a class declaration and an interface declaration.

 TypeDeclaration:
 		ClassDeclaration
 		InterfaceDeclaration
 ClassDeclaration:
      [ Javadoc ] { Modifier } class Identifier
			[ extends Type]
			[ implements Type { , Type } ]
			{ { ClassBodyDeclaration | ; } }
 InterfaceDeclaration:
      [ Javadoc ] { Modifier } interface Identifier
			[ extends 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 keyword (if modifiers), or the first character of the "class" or "interface": keyword (if no modifiers). The source range extends through the last character of the ";" token (if no body), or the last character of the "}" token following the body declarations.

Since:
2.0

Field Summary
 
Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, 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, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVADOC, LABELED_STATEMENT, MALFORMED, METHOD_DECLARATION, METHOD_INVOCATION, NULL_LITERAL, NUMBER_LITERAL, PACKAGE_DECLARATION, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, QUALIFIED_NAME, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT
 
Method Summary
 List bodyDeclarations()
          Returns the live ordered list of body declarations of this type declaration.
 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.
 int getModifiers()
          Returns the modifiers explicitly specified on this declaration.
 SimpleName getName()
          Returns the name of the type declared in this type declaration.
 int getNodeType()
          Returns an integer value identifying the type of this concrete AST node.
 Name getSuperclass()
          Returns the name of the superclass declared in this type declaration, or null if there is none.
 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.
 boolean isLocalTypeDeclaration()
          Returns whether this type declaration is a local type.
 boolean isMemberTypeDeclaration()
          Returns whether this type declaration is a type member.
 boolean isPackageMemberTypeDeclaration()
          Returns whether this type declaration is a package member (that is, a top-level type).
 ITypeBinding resolveBinding()
          Resolves and returns the binding for the class or interface declared in this type declaration.
 void setInterface(boolean isInterface)
          Sets whether this type declaration declares a class or an interface.
 void setModifiers(int modifiers)
          Sets the modifiers explicitly specified on this declaration.
 void setName(SimpleName typeName)
          Sets the name of the type declared in this type declaration to the given name.
 void setSuperclass(Name superclassName)
          Sets or clears the name of the superclass declared in this type declaration.
 boolean subtreeMatch(ASTMatcher matcher, Object other)
          Returns whether the subtree rooted at the given node matches the given other object as decided by the given matcher.
 List superInterfaces()
          Returns the live ordered list of names of superinterfaces of this type declaration.
 
Methods inherited from class org.eclipse.jdt.core.dom.BodyDeclaration
getJavadoc, setJavadoc
 
Methods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, equals, getAST, getFlags, getLength, getParent, getProperty, getRoot, getStartPosition, properties, setFlags, setProperty, setSourceRange, subtreeBytes, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getNodeType

public int getNodeType()
Description copied from class: ASTNode
Returns an integer value identifying the type of this concrete AST node. The values are small positive integers, suitable for use in switch statements.

For each concrete node type there is a unique node type constant (name and value). The unique node type constant for a concrete node type such as CastExpression is ASTNode.CAST_EXPRESSION.

Specified by:
getNodeType in class ASTNode
Returns:
one of the node type constants

subtreeMatch

public boolean subtreeMatch(ASTMatcher matcher,
                            Object other)
Description copied from class: ASTNode
Returns whether the subtree rooted at the given node matches the given other object as decided by the given matcher.

Specified by:
subtreeMatch in class ASTNode
Parameters:
matcher - the matcher
other - the other object, or null
Returns:
true if the subtree matches, or false if they do not match

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

getModifiers

public int getModifiers()
Returns the modifiers explicitly specified on this declaration.

Note that deprecated is not included.

Returns:
the bit-wise or of Modifier constants
See Also:
Modifier

setModifiers

public void setModifiers(int modifiers)
Sets the modifiers explicitly specified on this declaration.

The following modifiers are valid for types: public, private, protected, static, final, abstract, and strictfp.

Only a subset of modifiers are legal in any given situation. Note that deprecated is not included.

Parameters:
modifiers - the bit-wise or of Modifier constants
Throws:
IllegalArgumentException - if the modifiers are illegal
See Also:
Modifier

getName

public SimpleName getName()
Returns the name of the type declared in this type declaration.

Returns:
the type name node

setName

public void setName(SimpleName typeName)
Sets the name of the type declared in this type declaration to the given name.

Parameters:
typeName - the new type name
Throws:
IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent

getSuperclass

public Name getSuperclass()
Returns the name of the superclass declared in this type declaration, or null if there is none.

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

setSuperclass

public void setSuperclass(Name superclassName)
Sets or clears the name of the superclass declared in this type declaration.

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

superInterfaces

public List superInterfaces()
Returns the live ordered list of names of superinterfaces of this type declaration. 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)

bodyDeclarations

public List bodyDeclarations()
Returns the live ordered list of body declarations of this type declaration. For a class declaration, these are the initializer, field, method, constructor, and member type declarations; for an interface declaration, these are the constant, method, and member type declarations.

Returns:
the live list of body declarations (element type: BodyDeclaration)

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

isPackageMemberTypeDeclaration

public boolean isPackageMemberTypeDeclaration()
Returns whether this type declaration is a package member (that is, a top-level type).

Note that this is a convenience method that simply checks whether this node's parent is a compilation unit node.

Returns:
true if this type declaration is a child of a compilation unit node, and false otherwise

isMemberTypeDeclaration

public boolean isMemberTypeDeclaration()
Returns whether this type declaration is a type member.

Note that this is a convenience method that simply checks whether this node's parent is a type declaration node or an anonymous class declaration.

Returns:
true if this type declaration is a child of a type declaration node or a class instance creation node, and false otherwise

isLocalTypeDeclaration

public boolean isLocalTypeDeclaration()
Returns whether this type declaration is a local type.

Note that this is a convenience method that simply checks whether this node's parent is a type declaration statement node.

Returns:
true if this type declaration is a child of a type declaration statement node, and false otherwise

resolveBinding

public ITypeBinding resolveBinding()
Resolves and returns the binding for the class or interface declared in this type declaration.

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

Eclipse JDT
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.