Eclipse JDT
2.0

org.eclipse.jdt.core
Interface IType

All Superinterfaces:
IAdaptable, IJavaElement, IMember, IParent, ISourceManipulation, ISourceReference

public interface IType
extends IMember, IParent

Represents either a source type in a compilation unit (either a top-level type or a member type) or a binary type in a class file.

If a binary type cannot be parsed, its structure remains unknown. Use IJavaElement.isStructureKnown to determine whether this is the case.

The children are of type IMember, which includes IField, IMethod, IInitializer and IType. The children are listed in the order in which they appear in the source or class file.

This interface is not intended to be implemented by clients.


Field Summary
 
Fields inherited from interface org.eclipse.jdt.core.IJavaElement
CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_PROJECT, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE
 
Method Summary
 void codeComplete(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, ICompletionRequestor requestor)
          Do code completion inside a code snippet in the context of the current type.
 IField createField(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor)
          Creates and returns a field in this type with the given contents.
 IInitializer createInitializer(String contents, IJavaElement sibling, IProgressMonitor monitor)
          Creates and returns a static initializer in this type with the given contents.
 IMethod createMethod(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor)
          Creates and returns a method or constructor in this type with the given contents.
 IType createType(String contents, IJavaElement sibling, boolean force, IProgressMonitor monitor)
          Creates and returns a type in this type with the given contents.
 IMethod[] findMethods(IMethod method)
          Finds the methods in this type that correspond to the given method.
 String getElementName()
          Returns the simple name of this type, unqualified by package or enclosing type.
 IField getField(String name)
          Returns the field with the specified name in this type (for example, "bar").
 IField[] getFields()
          Returns the fields declared by this type.
 String getFullyQualifiedName()
          Returns the fully qualified name of this type, including qualification for any containing types and packages.
 String getFullyQualifiedName(char enclosingTypeSeparator)
          Returns the fully qualified name of this type, including qualification for any containing types and packages.
 IInitializer getInitializer(int occurrenceCount)
          Returns the initializer with the specified position relative to the order they are defined in the source.
 IInitializer[] getInitializers()
          Returns the initializers declared by this type.
 IMethod getMethod(String name, String[] parameterTypeSignatures)
          Returns the method with the specified name and parameter types in this type (for example, "foo", {"I", "QString;"}).
 IMethod[] getMethods()
          Returns the methods and constructors declared by this type.
 IPackageFragment getPackageFragment()
          Returns the package fragment in which this element is defined.
 String getSuperclassName()
          Returns the name of this type's superclass, or null for source types that do not specify a superclass.
 String[] getSuperInterfaceNames()
          Returns the names of interfaces that this type implements or extends, in the order in which they are listed in the source.
 IType getType(String name)
          Returns the member type declared in this type with the given simple name.
 String getTypeQualifiedName()
          Returns the type-qualified name of this type, including qualification for any enclosing types, but not including package qualification.
 String getTypeQualifiedName(char enclosingTypeSeparator)
          Returns the type-qualified name of this type, including qualification for any enclosing types, but not including package qualification.
 IType[] getTypes()
          Returns the immediate member types declared by this type.
 boolean isAnonymous()
          Returns whether this type represents an anonymous type.
 boolean isClass()
          Returns whether this type represents a class.
 boolean isInterface()
          Returns whether this type represents an interface.
 boolean isLocal()
          Returns whether this type represents a local type.
 boolean isMember()
          Returns whether this type represents a member type.
 ITypeHierarchy newSupertypeHierarchy(IProgressMonitor monitor)
          Creates and returns a type hierarchy for this type containing this type and all of its supertypes.
 ITypeHierarchy newSupertypeHierarchy(IWorkingCopy[] workingCopies, IProgressMonitor monitor)
          Creates and returns a type hierarchy for this type containing this type and all of its supertypes, considering types in the given working copies.
 ITypeHierarchy newTypeHierarchy(IJavaProject project, IProgressMonitor monitor)
          Creates and returns a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the context of the given project.
 ITypeHierarchy newTypeHierarchy(IProgressMonitor monitor)
          Creates and returns a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the workspace.
 ITypeHierarchy newTypeHierarchy(IWorkingCopy[] workingCopies, IProgressMonitor monitor)
          Creates and returns a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the workspace, considering types in the given working copies.
 String[][] resolveType(String typeName)
          Resolves the given type name within the context of this type (depending on the type hierarchy and its imports).
 
Methods inherited from interface org.eclipse.jdt.core.IMember
getClassFile, getCompilationUnit, getDeclaringType, getFlags, getNameRange, isBinary
 
Methods inherited from interface org.eclipse.jdt.core.IJavaElement
exists, getAncestor, getCorrespondingResource, getElementType, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getResource, getUnderlyingResource, isReadOnly, isStructureKnown
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.jdt.core.ISourceReference
exists, getSource, getSourceRange
 
Methods inherited from interface org.eclipse.jdt.core.ISourceManipulation
copy, delete, move, rename
 
Methods inherited from interface org.eclipse.jdt.core.IParent
getChildren, hasChildren
 

Method Detail

codeComplete

public void codeComplete(char[] snippet,
                         int insertion,
                         int position,
                         char[][] localVariableTypeNames,
                         char[][] localVariableNames,
                         int[] localVariableModifiers,
                         boolean isStatic,
                         ICompletionRequestor requestor)
                  throws JavaModelException
Do code completion inside a code snippet in the context of the current type. If the type can access to his source code and the insertion position is valid, then completion is performed against source. Otherwise the completion is performed against type structure and given locals variables.

Parameters:
snippet - the code snippet
insertion - the position with in source where the snippet is inserted. This position must not be in comments. A possible value is -1, if the position is not known.
position - the position with in snippet where the user is performing code assist.
localVariableNames - an array (possibly empty) of local variable names that are visible at the current scope
localVariableModifiers - an array (possible empty) of modifiers for local variables
isStatic - whether the current scope is in a static context
requestor - the completion requestor
JavaModelException
Since:
2.0

createField

public IField createField(String contents,
                          IJavaElement sibling,
                          boolean force,
                          IProgressMonitor monitor)
                   throws JavaModelException
Creates and returns a field in this type with the given contents.

Optionally, the new element can be positioned before the specified sibling. If no sibling is specified, the element will be inserted as the last field declaration in this type.

It is possible that a field with the same name already exists in this type. The value of the force parameter effects the resolution of such a conflict:

Parameters:
contents - the given contents
sibling - the given sibling
force - a flag in case the same name already exists in this type
monitor - the given progress monitor
Returns:
a field in this type with the given contents
Throws:
JavaModelException - if the element could not be created. Reasons include:
  • This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while updating an underlying resource
  • The specified sibling is not a child of this type (INVALID_SIBLING)
  • The contents could not be recognized as a field declaration (INVALID_CONTENTS)
  • This type is read-only (binary) (READ_ONLY)
  • There was a naming collision with an existing field (NAME_COLLISION)

createInitializer

public IInitializer createInitializer(String contents,
                                      IJavaElement sibling,
                                      IProgressMonitor monitor)
                               throws JavaModelException
Creates and returns a static initializer in this type with the given contents.

Optionally, the new element can be positioned before the specified sibling. If no sibling is specified, the new initializer is positioned after the last existing initializer declaration, or as the first member in the type if there are no initializers.

Parameters:
contents - the given contents
sibling - the given sibling
monitor - the given progress monitor
Returns:
a static initializer in this type with the given contents
Throws:
JavaModelException - if the element could not be created. Reasons include:
  • This element does not exist
  • A CoreException occurred while updating an underlying resource
  • The specified sibling is not a child of this type (INVALID_SIBLING)
  • The contents could not be recognized as an initializer declaration (INVALID_CONTENTS)
  • This type is read-only (binary) (READ_ONLY)

createMethod

public IMethod createMethod(String contents,
                            IJavaElement sibling,
                            boolean force,
                            IProgressMonitor monitor)
                     throws JavaModelException
Creates and returns a method or constructor in this type with the given contents.

Optionally, the new element can be positioned before the specified sibling. If no sibling is specified, the element will be appended to this type.

It is possible that a method with the same signature already exists in this type. The value of the force parameter effects the resolution of such a conflict:

Parameters:
contents - the given contents
sibling - the given sibling
force - a flag in case the same name already exists in this type
monitor - the given progress monitor
Returns:
a method or constructor in this type with the given contents
Throws:
JavaModelException - if the element could not be created. Reasons include:
  • This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while updating an underlying resource
  • The specified sibling is not a child of this type (INVALID_SIBLING)
  • The contents could not be recognized as a method or constructor declaration (INVALID_CONTENTS)
  • This type is read-only (binary) (READ_ONLY)
  • There was a naming collision with an existing method (NAME_COLLISION)

createType

public IType createType(String contents,
                        IJavaElement sibling,
                        boolean force,
                        IProgressMonitor monitor)
                 throws JavaModelException
Creates and returns a type in this type with the given contents.

Optionally, the new type can be positioned before the specified sibling. If no sibling is specified, the type will be appended to this type.

It is possible that a type with the same name already exists in this type. The value of the force parameter effects the resolution of such a conflict:

Parameters:
contents - the given contents
sibling - the given sibling
force - a flag in case the same name already exists in this type
monitor - the given progress monitor
Returns:
a type in this type with the given contents
Throws:
JavaModelException - if the element could not be created. Reasons include:
  • This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while updating an underlying resource
  • The specified sibling is not a child of this type (INVALID_SIBLING)
  • The contents could not be recognized as a type declaration (INVALID_CONTENTS)
  • This type is read-only (binary) (READ_ONLY)
  • There was a naming collision with an existing field (NAME_COLLISION)

findMethods

public IMethod[] findMethods(IMethod method)
Finds the methods in this type that correspond to the given method. A method m1 corresponds to another method m2 if:

Parameters:
method - the given method
Returns:
the found method or null if no such methods can be found.
Since:
2.0

getElementName

public String getElementName()
Returns the simple name of this type, unqualified by package or enclosing type. This is a handle-only method.

Specified by:
getElementName in interface IJavaElement
Returns:
the simple name of this type

getField

public IField getField(String name)
Returns the field with the specified name in this type (for example, "bar"). This is a handle-only method. The field may or may not exist.

Parameters:
name - the given name
Returns:
the field with the specified name in this type

getFields

public IField[] getFields()
                   throws JavaModelException
Returns the fields declared by this type. If this is a source type, the results are listed in the order in which they appear in the source, otherwise, the results are in no particular order. For binary types, this includes synthetic fields.

Returns:
the fields declared by this type
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getFullyQualifiedName

public String getFullyQualifiedName()
Returns the fully qualified name of this type, including qualification for any containing types and packages. This is the name of the package, followed by '.', followed by the type-qualified name. This is a handle-only method.

Returns:
the fully qualified name of this type
See Also:
getTypeQualifiedName()

getFullyQualifiedName

public String getFullyQualifiedName(char enclosingTypeSeparator)
Returns the fully qualified name of this type, including qualification for any containing types and packages. This is the name of the package, followed by '.', followed by the type-qualified name using the enclosingTypeSeparator. For example: This is a handle-only method.

Parameters:
enclosingTypeSeparator - the given enclosing type separator
Returns:
the fully qualified name of this type, including qualification for any containing types and packages
Since:
2.0
See Also:
getTypeQualifiedName(char)

getInitializer

public IInitializer getInitializer(int occurrenceCount)
Returns the initializer with the specified position relative to the order they are defined in the source. Numbering starts at 1 (i.e. the first occurrence is occurrence 1, not occurrence 0). This is a handle-only method. The initializer may or may not be present.

Parameters:
occurrenceCount - the specified position
Returns:
the initializer with the specified position relative to the order they are defined in the source

getInitializers

public IInitializer[] getInitializers()
                               throws JavaModelException
Returns the initializers declared by this type. For binary types this is an empty collection. If this is a source type, the results are listed in the order in which they appear in the source.

Returns:
the initializers declared by this type
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getMethod

public IMethod getMethod(String name,
                         String[] parameterTypeSignatures)
Returns the method with the specified name and parameter types in this type (for example, "foo", {"I", "QString;"}). To get the handle for a constructor, the name specified must be the simple name of the enclosing type. This is a handle-only method. The method may or may not be present.

Parameters:
name - the given name
parameterTypeSignatures - the given parameter types
Returns:
the method with the specified name and parameter types in this type

getMethods

public IMethod[] getMethods()
                     throws JavaModelException
Returns the methods and constructors declared by this type. For binary types, this may include the special <clinit>; method and synthetic methods. If this is a source type, the results are listed in the order in which they appear in the source, otherwise, the results are in no particular order.

Returns:
the methods and constructors declared by this type
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getPackageFragment

public IPackageFragment getPackageFragment()
Returns the package fragment in which this element is defined. This is a handle-only method.

Returns:
the package fragment in which this element is defined

getSuperclassName

public String getSuperclassName()
                         throws JavaModelException
Returns the name of this type's superclass, or null for source types that do not specify a superclass. For interfaces, the superclass name is always "java.lang.Object". For source types, the name as declared is returned, for binary types, the resolved, qualified name is returned.

Returns:
the name of this type's superclass, or null for source types that do not specify a superclass
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getSuperInterfaceNames

public String[] getSuperInterfaceNames()
                                throws JavaModelException
Returns the names of interfaces that this type implements or extends, in the order in which they are listed in the source. For classes, this gives the interfaces that this class implements. For interfaces, this gives the interfaces that this interface extends. An empty collection is returned if this type does not implement or extend any interfaces. For source types, simples name are returned, for binary types, qualified names are returned.

Returns:
the names of interfaces that this type implements or extends, in the order in which they are listed in the source, an empty collection if none
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

getType

public IType getType(String name)
Returns the member type declared in this type with the given simple name. This is a handle-only method. The type may or may not exist.

Returns:
the member type declared in this type with the given simple name

getTypeQualifiedName

public String getTypeQualifiedName()
Returns the type-qualified name of this type, including qualification for any enclosing types, but not including package qualification. For source types, this consists of the simple names of any enclosing types, separated by "$", followed by the simple name of this type. For binary types, this is the name of the class file without the ".class" suffix. This is a handle-only method.

Returns:
the type-qualified name of this type

getTypeQualifiedName

public String getTypeQualifiedName(char enclosingTypeSeparator)
Returns the type-qualified name of this type, including qualification for any enclosing types, but not including package qualification. This consists of the simple names of any enclosing types, separated by the enclosingTypeSeparator, followed by the simple name of this type. For example: This is a handle-only method.

Parameters:
enclosingTypeSeparator - the specified enclosing type separator
Returns:
the type-qualified name of this type
Since:
2.0

getTypes

public IType[] getTypes()
                 throws JavaModelException
Returns the immediate member types declared by this type. The results are listed in the order in which they appear in the source or class file.

Returns:
the immediate member types declared by this type
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

isAnonymous

public boolean isAnonymous()
                    throws JavaModelException
Returns whether this type represents an anonymous type.

Returns:
true if this type represents an anonymous type, false otherwise
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
2.0

isClass

public boolean isClass()
                throws JavaModelException
Returns whether this type represents a class.

Returns:
true if this type represents a class, false otherwise
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

isInterface

public boolean isInterface()
                    throws JavaModelException
Returns whether this type represents an interface.

Returns:
true if this type represents an interface, false otherwise
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

isLocal

public boolean isLocal()
                throws JavaModelException
Returns whether this type represents a local type.

Returns:
true if this type represents a local type, false otherwise
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
2.0

isMember

public boolean isMember()
                 throws JavaModelException
Returns whether this type represents a member type.

Returns:
true if this type represents a member type, false otherwise
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
2.0

newSupertypeHierarchy

public ITypeHierarchy newSupertypeHierarchy(IProgressMonitor monitor)
                                     throws JavaModelException
Creates and returns a type hierarchy for this type containing this type and all of its supertypes.

Parameters:
monitor - the given progress monitor
Returns:
a type hierarchy for this type containing this type and all of its supertypes
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

newSupertypeHierarchy

public ITypeHierarchy newSupertypeHierarchy(IWorkingCopy[] workingCopies,
                                            IProgressMonitor monitor)
                                     throws JavaModelException
Creates and returns a type hierarchy for this type containing this type and all of its supertypes, considering types in the given working copies. In other words, the list of working copies will take precedence over their original compilation units in the workspace.

Note that passing an empty working copy will be as if the original compilation unit had been deleted.

Parameters:
workingCopies - the working copies that take precedence over their original compilation units
monitor - the given progress monitor
Returns:
a type hierarchy for this type containing this type and all of its supertypes
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
2.0

newTypeHierarchy

public ITypeHierarchy newTypeHierarchy(IProgressMonitor monitor)
                                throws JavaModelException
Creates and returns a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the workspace.

Parameters:
monitor - the given progress monitor
Returns:
a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the workspace
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

newTypeHierarchy

public ITypeHierarchy newTypeHierarchy(IWorkingCopy[] workingCopies,
                                       IProgressMonitor monitor)
                                throws JavaModelException
Creates and returns a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the workspace, considering types in the given working copies. In other words, the list of working copies that will take precedence over their original compilation units in the workspace.

Note that passing an empty working copy will be as if the original compilation unit had been deleted.

Parameters:
workingCopies - the working copies that take precedence over their original compilation units
monitor - the given progress monitor
Returns:
a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the workspace
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
2.0

newTypeHierarchy

public ITypeHierarchy newTypeHierarchy(IJavaProject project,
                                       IProgressMonitor monitor)
                                throws JavaModelException
Creates and returns a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the context of the given project.

Parameters:
project - the given project
monitor - the given progress monitor
Returns:
a type hierarchy for this type containing this type, all of its supertypes, and all its subtypes in the context of the given project
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.

resolveType

public String[][] resolveType(String typeName)
                       throws JavaModelException
Resolves the given type name within the context of this type (depending on the type hierarchy and its imports). Multiple answers might be found in case there are ambiguous matches. Each matching type name is decomposed as an array of two strings, the first denoting the package name (dot-separated) and the second being the type name. Returns null if unable to find any matching type. For example, resolution of "Object" would typically return {{"java.lang", "Object"}}.

Parameters:
typeName - the given type name
Returns:
the resolved type names or null if unable to find any matching type
Throws:
JavaModelException - if code resolve could not be performed.

Eclipse JDT
2.0

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