Interface IType
- All Superinterfaces:
org.eclipse.core.runtime.IAdaptable
,IAnnotatable
,IJavaElement
,IMember
,IParent
,ISourceManipulation
,ISourceReference
Note that the element name of an anonymous source type and lambda expressions
is always empty. Types representing lambda expressions are pseudo-elements
and not included in the children of their parent. Lambda expressions are created
as the result of a ICodeAssist.codeSelect(...)
. For more information
on such pseudo-elements, see ILocalVariable
.
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.
Caveat: The children
of a binary
type include
nested types. However, the parent
of such a nested binary type is
not the enclosing type, but that nested type's IClassFile
!
- Restriction:
- This interface is not intended to be implemented by clients.
-
Field Summary
Fields inherited from interface org.eclipse.jdt.core.IJavaElement
ANNOTATION, CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_MODULE, JAVA_PROJECT, LOCAL_VARIABLE, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE, TYPE_PARAMETER
-
Method Summary
Modifier and TypeMethodDescriptionvoid
codeComplete
(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor) Do code completion inside a code snippet in the context of the current type.void
codeComplete
(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor, org.eclipse.core.runtime.IProgressMonitor monitor) Do code completion inside a code snippet in the context of the current type.void
codeComplete
(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor, WorkingCopyOwner owner) Do code completion inside a code snippet in the context of the current type.void
codeComplete
(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor, WorkingCopyOwner owner, org.eclipse.core.runtime.IProgressMonitor monitor) Do code completion inside a code snippet in the context of the current type.void
codeComplete
(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, ICompletionRequestor requestor) Deprecated.void
codeComplete
(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, ICompletionRequestor requestor, WorkingCopyOwner owner) Deprecated.createField
(String contents, IJavaElement sibling, boolean force, org.eclipse.core.runtime.IProgressMonitor monitor) Creates and returns a field in this type with the given contents.createInitializer
(String contents, IJavaElement sibling, org.eclipse.core.runtime.IProgressMonitor monitor) Creates and returns a static initializer in this type with the given contents.createMethod
(String contents, IJavaElement sibling, boolean force, org.eclipse.core.runtime.IProgressMonitor monitor) Creates and returns a method or constructor in this type with the given contents.createType
(String contents, IJavaElement sibling, boolean force, org.eclipse.core.runtime.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.getChildrenForCategory
(String category) Returns the children of this type that have the given category as a@category
tag.Strengthen the contract of the inherited method to signal that the returned class file is always anIOrdinaryClassFile
.Returns the simple name of this type, unqualified by package or enclosing type.Returns the field with the specified name in this type (for example,"bar"
).IField[]
Returns the fields declared by this type in the order in which they appear in the source or class file.Returns the fully qualified name of this type, including qualification for any containing types and packages.getFullyQualifiedName
(char enclosingTypeSeparator) Returns the fully qualified name of this type, including qualification for any containing types and packages.Returns this type's fully qualified name using a '.' enclosing type separator followed by its type parameters between angle brackets if it is a generic type.getInitializer
(int occurrenceCount) Returns the initializer with the specified position relative to the order they are defined in the source.Returns the initializers declared by this type.getKey()
Returns the binding key for this type only if the given type isresolved
.Returns the method with the specified name and parameter types in this type (for example,"foo", {"I", "QString;"}
).IMethod[]
Returns the methods and constructors declared by this type.Returns the package fragment in which this element is defined.String[]
Returns the names of types that this sealed type permits to be its subtypes.getRecordComponent
(String name) Returns the record component with the specified name in this type (for example,"bar"
).default IField[]
Returns the record components declared by this record class, or an empty array if this is not a record.Returns the name of this type's superclass, ornull
for source types that do not specify a superclass.Returns the type signature of this type's superclass, ornull
if none.String[]
Returns the names of interfaces that this type implements or extends, in the order in which they are listed in the source.String[]
Returns the type signatures of the interfaces that this type implements or extends, in the order in which they are listed in the source.Returns the member type declared in this type with the given simple name.getTypeParameter
(String name) Returns the type parameter declared in this type with the given name.Returns the formal type parameters for this type.String[]
Returns the formal type parameter signatures for this type.Returns the type-qualified name of this type, including qualification for any enclosing types, but not including package qualification.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
Returns whether this type represents an annotation type.boolean
Returns whether this type represents an anonymous type.boolean
isClass()
Returns whether this type represents a class.boolean
isEnum()
Returns whether this type represents an enumeration class.boolean
Returns whether this type is implicitly declared.boolean
Returns whether this type represents an interface.boolean
isLambda()
Returns whether this type represents a lambda expression.boolean
isLocal()
Returns whether this type represents a local type.boolean
isMember()
Returns whether this type represents a member type.boolean
isRecord()
Returns whether this type represents a record class.boolean
Returns whether this type represents a resolved type.boolean
isSealed()
Returns whether this type is a sealed type.loadTypeHierachy
(InputStream input, org.eclipse.core.runtime.IProgressMonitor monitor) Loads a previously saved ITypeHierarchy from an input stream.newSupertypeHierarchy
(org.eclipse.core.runtime.IProgressMonitor monitor) Creates and returns a type hierarchy for this type containing this type and all of its supertypes.newSupertypeHierarchy
(ICompilationUnit[] workingCopies, org.eclipse.core.runtime.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.newSupertypeHierarchy
(IWorkingCopy[] workingCopies, org.eclipse.core.runtime.IProgressMonitor monitor) Deprecated.newSupertypeHierarchy
(WorkingCopyOwner owner, org.eclipse.core.runtime.IProgressMonitor monitor) Creates and returns a type hierarchy for this type containing this type and all of its supertypes, considering types in the working copies with the given owner.newTypeHierarchy
(org.eclipse.core.runtime.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.newTypeHierarchy
(ICompilationUnit[] workingCopies, org.eclipse.core.runtime.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.newTypeHierarchy
(IJavaProject project, org.eclipse.core.runtime.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.newTypeHierarchy
(IJavaProject project, WorkingCopyOwner owner, org.eclipse.core.runtime.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, considering types in the working copies with the given owner.newTypeHierarchy
(IWorkingCopy[] workingCopies, org.eclipse.core.runtime.IProgressMonitor monitor) Deprecated.newTypeHierarchy
(WorkingCopyOwner owner, org.eclipse.core.runtime.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 working copies with the given owner.String[][]
resolveType
(String typeName) Resolves the given type name within the context of this type (depending on the type hierarchy and its imports).String[][]
resolveType
(String typeName, WorkingCopyOwner owner) Resolves the given type name within the context of this type (depending on the type hierarchy and its imports) and using the given owner's working copies, considering types in the working copies with the given owner.Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
Methods inherited from interface org.eclipse.jdt.core.IAnnotatable
getAnnotation, getAnnotations
Methods inherited from interface org.eclipse.jdt.core.IJavaElement
exists, getAncestor, getAttachedJavadoc, getCorrespondingResource, getElementType, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown
Methods inherited from interface org.eclipse.jdt.core.IMember
getCategories, getCompilationUnit, getDeclaringType, getFlags, getJavadocRange, getOccurrenceCount, getType, getTypeRoot, isBinary
Methods inherited from interface org.eclipse.jdt.core.IParent
getChildren, hasChildren
Methods inherited from interface org.eclipse.jdt.core.ISourceManipulation
copy, delete, move, rename
Methods inherited from interface org.eclipse.jdt.core.ISourceReference
exists, getNameRange, getSource, getSourceRange
-
Method Details
-
codeComplete
void codeComplete(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, ICompletionRequestor requestor) throws JavaModelException Deprecated.Do code completion inside a code snippet in the context of the current type. If the type has access to its source code and the insertion position is valid, then completion is performed against the source. Otherwise the completion is performed against the type structure and the given locals variables.- Parameters:
snippet
- the code snippetinsertion
- 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 within snippet where the user is performing code assist.localVariableTypeNames
- an array (possibly empty) of fully qualified type names of local variables visible at the current scopelocalVariableNames
- an array (possibly empty) of local variable names that are visible at the current scopelocalVariableModifiers
- an array (possible empty) of modifiers for local variablesisStatic
- whether the current scope is in a static contextrequestor
- the completion requestor- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 2.0
-
codeComplete
void codeComplete(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, ICompletionRequestor requestor, WorkingCopyOwner owner) throws JavaModelException Deprecated.Do code completion inside a code snippet in the context of the current type. It considers types in the working copies with the given owner first. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
If the type has access to its source code and the insertion position is valid, then completion is performed against the source. Otherwise the completion is performed against the type structure and the given locals variables.
- Parameters:
snippet
- the code snippetinsertion
- 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.localVariableTypeNames
- an array (possibly empty) of fully qualified type names of local variables visible at the current scopelocalVariableNames
- an array (possibly empty) of local variable names that are visible at the current scopelocalVariableModifiers
- an array (possible empty) of modifiers for local variablesisStatic
- whether the current scope is in a static contextrequestor
- the completion requestorowner
- the owner of working copies that take precedence over their original compilation units- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.0
-
codeComplete
void codeComplete(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor) throws JavaModelException Do code completion inside a code snippet in the context of the current type. If the type has access to its source code and the insertion position is valid, then completion is performed against the source. Otherwise the completion is performed against the type structure and the given locals variables.- Parameters:
snippet
- the code snippetinsertion
- 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 within snippet where the user is performing code assist.localVariableTypeNames
- an array (possibly empty) of fully qualified type names of local variables visible at the current scopelocalVariableNames
- an array (possibly empty) of local variable names that are visible at the current scopelocalVariableModifiers
- an array (possible empty) of modifiers for local variablesisStatic
- whether the current scope is in a static contextrequestor
- the completion requestor- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.1
-
codeComplete
void codeComplete(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException Do code completion inside a code snippet in the context of the current type. If the type has access to its source code and the insertion position is valid, then completion is performed against the source. Otherwise the completion is performed against the type structure and the given locals variables.If
IProgressMonitor
is notnull
then some proposals which can be very long to compute are proposed. To avoid that the code assist operation take too much time aIProgressMonitor
which automatically cancel the code assist operation when a specified amount of time is reached could be used.new IProgressMonitor() { private final static int TIMEOUT = 500; //ms private long endTime; public void beginTask(String name, int totalWork) { fEndTime= System.currentTimeMillis() + TIMEOUT; } public boolean isCanceled() { return endTime <= System.currentTimeMillis(); } ... };
- Parameters:
snippet
- the code snippetinsertion
- 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 within snippet where the user is performing code assist.localVariableTypeNames
- an array (possibly empty) of fully qualified type names of local variables visible at the current scopelocalVariableNames
- an array (possibly empty) of local variable names that are visible at the current scopelocalVariableModifiers
- an array (possible empty) of modifiers for local variablesisStatic
- whether the current scope is in a static contextrequestor
- the completion requestormonitor
- the progress monitor used to report progress- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.5
-
codeComplete
void codeComplete(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor, WorkingCopyOwner owner) throws JavaModelException Do code completion inside a code snippet in the context of the current type. It considers types in the working copies with the given owner first. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
If the type has access to its source code and the insertion position is valid, then completion is performed against the source. Otherwise the completion is performed against the type structure and the given locals variables.
- Parameters:
snippet
- the code snippetinsertion
- 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.localVariableTypeNames
- an array (possibly empty) of fully qualified type names of local variables visible at the current scopelocalVariableNames
- an array (possibly empty) of local variable names that are visible at the current scopelocalVariableModifiers
- an array (possible empty) of modifiers for local variablesisStatic
- whether the current scope is in a static contextrequestor
- the completion requestorowner
- the owner of working copies that take precedence over their original compilation units- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.1
-
codeComplete
void codeComplete(char[] snippet, int insertion, int position, char[][] localVariableTypeNames, char[][] localVariableNames, int[] localVariableModifiers, boolean isStatic, CompletionRequestor requestor, WorkingCopyOwner owner, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException Do code completion inside a code snippet in the context of the current type. It considers types in the working copies with the given owner first. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
If the type has access to its source code and the insertion position is valid, then completion is performed against the source. Otherwise the completion is performed against the type structure and the given locals variables.
If
IProgressMonitor
is notnull
then some proposals which can be very long to compute are proposed. To avoid that the code assist operation take too much time aIProgressMonitor
which automatically cancel the code assist operation when a specified amount of time is reached could be used.new IProgressMonitor() { private final static int TIMEOUT = 500; //ms private long endTime; public void beginTask(String name, int totalWork) { endTime= System.currentTimeMillis() + TIMEOUT; } public boolean isCanceled() { return endTime <= System.currentTimeMillis(); } ... };
- Parameters:
snippet
- the code snippetinsertion
- 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.localVariableTypeNames
- an array (possibly empty) of fully qualified type names of local variables visible at the current scopelocalVariableNames
- an array (possibly empty) of local variable names that are visible at the current scopelocalVariableModifiers
- an array (possible empty) of modifiers for local variablesisStatic
- whether the current scope is in a static contextrequestor
- the completion requestorowner
- the owner of working copies that take precedence over their original compilation unitsmonitor
- the progress monitor used to report progress- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.5
-
createField
IField createField(String contents, IJavaElement sibling, boolean force, org.eclipse.core.runtime.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 affects the resolution of such a conflict:-
true
- in this case the field is created with the new contents -
false
- in this case aJavaModelException
is thrown
- Parameters:
contents
- the given contentssibling
- the given siblingforce
- a flag in case the same name already exists in this typemonitor
- 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
IInitializer createInitializer(String contents, IJavaElement sibling, org.eclipse.core.runtime.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 contentssibling
- the given siblingmonitor
- 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
IMethod createMethod(String contents, IJavaElement sibling, boolean force, org.eclipse.core.runtime.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 affects the resolution of such a conflict:-
true
- in this case the method is created with the new contents -
false
- in this case aJavaModelException
is thrown
- Parameters:
contents
- the given contentssibling
- the given siblingforce
- a flag in case the same name already exists in this typemonitor
- 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
IType createType(String contents, IJavaElement sibling, boolean force, org.eclipse.core.runtime.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 affects the resolution of such a conflict:-
true
- in this case the type is created with the new contents -
false
- in this case aJavaModelException
is thrown
- Parameters:
contents
- the given contentssibling
- the given siblingforce
- a flag in case the same name already exists in this typemonitor
- 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
Finds the methods in this type that correspond to the given method. A method m1 corresponds to another method m2 if:- m1 has the same element name as m2.
- m1 has the same number of arguments as m2 and the simple names of the argument types must be equals.
- m1 exists.
- Parameters:
method
- the given method- Returns:
- the found method or
null
if no such methods can be found. - Since:
- 2.0
-
getChildrenForCategory
Returns the children of this type that have the given category as a@category
tag. Returns an empty array if no children with this category exist.The results are listed in the order in which they appear in the source or class file.
- Returns:
- the children for the given category.
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.2
-
getElementName
String getElementName()Returns the simple name of this type, unqualified by package or enclosing type. This is a handle-only method. Note that the element name of an anonymous source type and lambda expressions is always empty.- Specified by:
getElementName
in interfaceIJavaElement
- Returns:
- the simple name of this type
-
getField
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
Returns the fields declared by this type in the order in which they appear in the source or class file. For binary types, this includes synthetic fields. This does not include the implicit fields representing record components.- 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
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.Note: The enclosing type separator used in the type-qualified name is
This method is fully equivalent to'$'
, not'.'
.getFullyQualifiedName('$')
. This is a handle-only method.- Returns:
- the fully qualified name of this type
- See Also:
-
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 using theenclosingTypeSeparator
. For example:- the fully qualified name of a class B defined as a member of a class A in a compilation unit A.java in a package x.y using the '.' separator is "x.y.A.B"
- the fully qualified name of a class B defined as a member of a class A in a compilation unit A.java in a package x.y using the '$' separator is "x.y.A$B"
- the fully qualified name of a binary type whose class file is x/y/A$B.class using the '.' separator is "x.y.A.B"
- the fully qualified name of a binary type whose class file is x/y/A$B.class using the '$' separator is "x.y.A$B"
- the fully qualified name of an anonymous binary type whose class file is x/y/A$1.class using the '.' separator is "x.y.A.1"
- 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:
-
getFullyQualifiedParameterizedName
Returns this type's fully qualified name using a '.' enclosing type separator followed by its type parameters between angle brackets if it is a generic type. For example, "p.X<T>", "java.util.Map<java.lang.String, p.X>"- Returns:
- the fully qualified parameterized representation of this type
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.1
-
getInitializer
Returns the initializer with the specified position relative to the order they are defined in the source. Numbering starts at 1 (thus 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
Returns the initializers declared by this type. For binary types this is an empty collection. For source types, 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.
-
getKey
String getKey()Returns the binding key for this type only if the given type isresolved
. A binding key is a key that uniquely identifies this type. It allows access to generic info for parameterized types.If the given type is not resolved, the returned key is simply the java element's key.
- Returns:
- the binding key for this type
- Since:
- 3.1
- See Also:
-
getMethod
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.The type signatures may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See
Signature
for details. Note that the parameter type signatures for binary methods are expected to be dot-based.- Parameters:
name
- the given nameparameterTypeSignatures
- the given parameter types- Returns:
- the method with the specified name and parameter types in this type
-
getMethods
Returns the methods and constructors declared by this type. For binary types, this may include the special<clinit>
method and synthetic methods.The results are listed in the order in which they appear in the source or class file.
- 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
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
Returns the name of this type's superclass, ornull
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. For anonymous types, the superclass name is the name appearing after the 'new' keyword'. If the superclass is a parameterized type, the string may include its type arguments enclosed in "<>". If the returned string is needed for anything other than display purposes, usegetSuperclassTypeSignature()
which returns a structured type signature string containing more precise information.- 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.
-
getSuperclassTypeSignature
Returns the type signature of this type's superclass, ornull
if none.The type signature may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See
Signature
for details.- Returns:
- the type signature of this type's superclass, or
null
if none - Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.0
-
getSuperInterfaceTypeSignatures
Returns the type signatures of the interfaces that this type implements or extends, in the order in which they are listed in the source.For classes and enum types, this gives the interfaces that this class implements. For interfaces and annotation types, this gives the interfaces that this interface extends. An empty collection is returned if this type does not implement or extend any interfaces. For anonymous types, an empty collection is always returned.
The type signatures may be either unresolved (for source types) or resolved (for binary types), and either basic (for basic types) or rich (for parameterized types). See
Signature
for details.- Returns:
- the type signatures 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.- Since:
- 3.0
-
getSuperInterfaceNames
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, simple names are returned, for binary types, qualified names are returned. For anonymous types, an empty collection is always returned. If the list of supertypes includes parameterized types, the string may include type arguments enclosed in "<>". If the result is needed for anything other than display purposes, use
getSuperInterfaceTypeSignatures()
which returns structured signature strings containing more precise information.- 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.
-
getPermittedSubtypeNames
Returns the names of types that this sealed type permits to be its subtypes. For a non sealed type, an empty array is returned. If type declares an explicit permits clause, then the permitted subtypes are returned in the declared order. If a sealed type does not explicitly declare permitted subtypes, then the implicit permitted types, that is, the types in the same compilation unit that are subtypes of this sealed type are returned in the order they appear within the compilation unit.- Returns:
- names of types that this type permits to be its subtypes
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.28
-
getTypeParameterSignatures
Returns the formal type parameter signatures for this type. Returns an empty array if this type has no formal type parameters.The formal type parameter signatures may be either unresolved (for source types) or resolved (for binary types). See
Signature
for details.- Returns:
- the formal type parameter signatures of this type, in the order declared in the source, an empty array if none
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.0
- See Also:
-
getTypeParameters
Returns the formal type parameters for this type. Returns an empty array if this type has no formal type parameters.- Returns:
- the formal type parameters of this type, in the order declared in the source, an empty array if none
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.1
-
getType
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.- Parameters:
name
- the given simple name- Returns:
- the member type declared in this type with the given simple name
-
getTypeParameter
Returns the type parameter declared in this type with the given name. This is a handle-only method. The type parameter may or may not exist.- Parameters:
name
- the given simple name- Returns:
- the type parameter declared in this type with the given name
- Since:
- 3.1
-
getTypeQualifiedName
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 or the occurrence count of this type if it is anonymous. For binary types, this is the name of the class file without the ".class" suffix. This method is fully equivalent togetTypeQualifiedName('$')
. This is a handle-only method.- Returns:
- the type-qualified name of this type
- See Also:
-
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 byenclosingTypeSeparator
, followed by the simple name of this type or the occurrence count of this type if it is anonymous. For binary types, this is the name of the class file without the ".class" suffix, and - since 3.4 - the '$' characters in the class file name are replaced with theenclosingTypeSeparator
character. For example:- the type qualified name of a class B defined as a member of a class A using the '.' separator is "A.B"
- the type qualified name of a class B defined as a member of a class A using the '$' separator is "A$B"
- the type qualified name of a binary type whose class file is A$B.class using the '.' separator is "A.B"
- the type qualified name of a binary type whose class file is A$B.class using the '$' separator is "A$B"
- the type qualified name of an anonymous binary type whose class file is A$1.class using the '.' separator is "A.1"
- Parameters:
enclosingTypeSeparator
- the specified enclosing type separator- Returns:
- the type-qualified name of this type
- Since:
- 2.0
-
getTypes
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
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
Returns whether this type represents a class.Note that a class can neither be an interface, an enumeration class, nor an annotation type.
- 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.
-
isEnum
Returns whether this type represents an enumeration class.Note that an enumeration class can neither be a class, an interface, nor an annotation type.
- Returns:
- true if this type represents an enumeration class, false otherwise
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.0
-
isRecord
Returns whether this type represents a record class.Note that a record class can neither be an enumeration, an interface, nor an annotation type.
- Returns:
- true if this type represents a record class, false otherwise
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.26
-
isSealed
Returns whether this type is a sealed type.- Returns:
- true if this type this type is a sealed type, false otherwise
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.28
-
isImplicitlyDeclared
Returns whether this type is implicitly declared.- Returns:
- true if this type is implicitly declared and false otherwise
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.38
-
getRecordComponents
Returns the record components declared by this record class, or an empty array if this is not a record.- Returns:
- record components declared by this record class
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.26
-
getRecordComponent
Returns the record component with the specified name in this type (for example,"bar"
). This is a handle-only method. The record component may or may not exist.- Parameters:
name
- the given name- Returns:
- the record component with the specified name in this record
- Since:
- 3.26
-
isInterface
Returns whether this type represents an interface.Note that an interface can also be an annotation type, but it can neither be a class nor an enumeration class.
- 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.
-
isAnnotation
Returns whether this type represents an annotation type.Note that an annotation type is also an interface, but it can neither be a class nor an enumeration class.
- Returns:
- true if this type represents an annotation type, false otherwise
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource.- Since:
- 3.0
-
isLocal
Returns whether this type represents a local type. For an anonymous type, this method returns true.Note: This deviates from JLS3 14.3, which states that anonymous types are not local types since they do not have a name.
- 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
- See Also:
-
isMember
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
-
isResolved
boolean isResolved()Returns whether this type represents a resolved type. If a type is resolved, its key contains resolved information.- Returns:
- whether this type represents a resolved type.
- Since:
- 3.1
-
loadTypeHierachy
ITypeHierarchy loadTypeHierachy(InputStream input, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException Loads a previously saved ITypeHierarchy from an input stream. A type hierarchy can be stored using ITypeHierachy#store(OutputStream). Only hierarchies originally created by the following methods can be loaded:- IType#newSupertypeHierarchy(IProgressMonitor)
- IType#newTypeHierarchy(IJavaProject, IProgressMonitor)
- IType#newTypeHierarchy(IProgressMonitor)
- Parameters:
input
- stream where hierarchy will be readmonitor
- the given progress monitor- Returns:
- the stored hierarchy
- Throws:
JavaModelException
- if the hierarchy could not be restored, reasons include: - type is not the focus of the hierarchy or - unable to read the input stream (wrong format, IOException during reading, ...)- Since:
- 2.1
- See Also:
-
newSupertypeHierarchy
ITypeHierarchy newSupertypeHierarchy(org.eclipse.core.runtime.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
ITypeHierarchy newSupertypeHierarchy(ICompilationUnit[] workingCopies, org.eclipse.core.runtime.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 unitsmonitor
- 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:
- 3.0
-
newSupertypeHierarchy
ITypeHierarchy newSupertypeHierarchy(IWorkingCopy[] workingCopies, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException Deprecated.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 unitsmonitor
- 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
-
newSupertypeHierarchy
ITypeHierarchy newSupertypeHierarchy(WorkingCopyOwner owner, org.eclipse.core.runtime.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 working copies with the given owner. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
- Parameters:
owner
- the owner of working copies that take precedence over their original compilation unitsmonitor
- 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:
- 3.0
-
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(IJavaProject project, org.eclipse.core.runtime.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 projectmonitor
- 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.
-
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(IJavaProject project, WorkingCopyOwner owner, org.eclipse.core.runtime.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, considering types in the working copies with the given owner. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
- Parameters:
project
- the given projectowner
- the owner of working copies that take precedence over their original compilation unitsmonitor
- 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.- Since:
- 3.0
-
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(org.eclipse.core.runtime.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
ITypeHierarchy newTypeHierarchy(ICompilationUnit[] workingCopies, org.eclipse.core.runtime.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 unitsmonitor
- 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:
- 3.0
-
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(IWorkingCopy[] workingCopies, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException Deprecated.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 unitsmonitor
- 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
ITypeHierarchy newTypeHierarchy(WorkingCopyOwner owner, org.eclipse.core.runtime.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 working copies with the given owner. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
- Parameters:
owner
- the owner of working copies that take precedence over their original compilation unitsmonitor
- 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:
- 3.0
-
resolveType
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. The package name is empty if it is the default package. The type name is the type qualified name using a '.' enclosing type separator.
Returns
null
if unable to find any matching type.For example, resolution of
"Object"
would typically return{{"java.lang", "Object"}}
. Another resolution that returns{{"", "X.Inner"}}
represents the inner type Inner defined in type X in the default package.- 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.- See Also:
-
resolveType
Resolves the given type name within the context of this type (depending on the type hierarchy and its imports) and using the given owner's working copies, considering types in the working copies with the given owner. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
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. The package name is empty if it is the default package. The type name is the type qualified name using a '.' enclosing type separator.
Returns
null
if unable to find any matching type.For example, resolution of
"Object"
would typically return{{"java.lang", "Object"}}
. Another resolution that returns{{"", "X.Inner"}}
represents the inner type Inner defined in type X in the default package.- Parameters:
typeName
- the given type nameowner
- the owner of working copies that take precedence over their original compilation units- Returns:
- the resolved type names or
null
if unable to find any matching type - Throws:
JavaModelException
- if code resolve could not be performed.- Since:
- 3.0
- See Also:
-
isLambda
boolean isLambda()Returns whether this type represents a lambda expression.- Returns:
- true if this type represents a lambda expression, false otherwise
- Since:
- 3.10
-
getClassFile
IOrdinaryClassFile getClassFile()Strengthen the contract of the inherited method to signal that the returned class file is always anIOrdinaryClassFile
.- Specified by:
getClassFile
in interfaceIMember
- Returns:
- the class file in which this member is declared, or
null
if this member is not declared in a class file (for example, a source type) - Since:
- 3.14
-
codeComplete(char[],int,int,char[][],char[][],int[],boolean,CompletionRequestor)
instead.