Interface IClassFile
-
- All Superinterfaces:
IAdaptable
,ICodeAssist
,IJavaElement
,IOpenable
,IParent
,ISourceReference
,ITypeRoot
- All Known Subinterfaces:
IModularClassFile
,IOrdinaryClassFile
public interface IClassFile extends ITypeRoot
Represents a single.class
file, holding the binary form of either a type or a module:- A class file of type
IOrdinaryClassFile
has a single child of typeIType
, - a class file of type
IModularClassFile
has a single child of typeIModuleDescription
.
IJavaElement.isStructureKnown
to determine whether this is the case.Note:
IClassFile
extendsISourceReference
. Source can be obtained for a class file if and only if source has been attached to this class file. The source associated with a class file is the source code of the compilation unit it was (nominally) generated from.- See Also:
IPackageFragmentRoot.attachSource(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, IProgressMonitor)
- 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
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description ICompilationUnit
becomeWorkingCopy(IProblemRequestor problemRequestor, WorkingCopyOwner owner, IProgressMonitor monitor)
Deprecated.byte[]
getBytes()
Returns the bytes contained in this class file.IType
getType()
Deprecated.should only be used asIOrdinaryClassFile.getType()
.IJavaElement
getWorkingCopy(IProgressMonitor monitor, IBufferFactory factory)
Deprecated.boolean
isClass()
Returns whether this type represents a class.boolean
isInterface()
Returns whether this type represents an interface.-
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
-
Methods inherited from interface org.eclipse.jdt.core.ICodeAssist
codeComplete, codeComplete, codeComplete, codeComplete, codeComplete, codeComplete, codeComplete, codeSelect, codeSelect
-
Methods inherited from interface org.eclipse.jdt.core.IJavaElement
exists, getAncestor, getAttachedJavadoc, getCorrespondingResource, getElementName, getElementType, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown
-
Methods inherited from interface org.eclipse.jdt.core.IOpenable
close, findRecommendedLineSeparator, getBuffer, hasUnsavedChanges, isConsistent, isOpen, makeConsistent, open, save
-
Methods inherited from interface org.eclipse.jdt.core.IParent
getChildren, hasChildren
-
Methods inherited from interface org.eclipse.jdt.core.ISourceReference
exists, getNameRange, getSource, getSourceRange
-
Methods inherited from interface org.eclipse.jdt.core.ITypeRoot
findPrimaryType, getElementAt, getModule, getWorkingCopy
-
-
-
-
Method Detail
-
becomeWorkingCopy
ICompilationUnit becomeWorkingCopy(IProblemRequestor problemRequestor, WorkingCopyOwner owner, IProgressMonitor monitor) throws JavaModelException
Deprecated.UseITypeRoot.getWorkingCopy(WorkingCopyOwner, IProgressMonitor)
instead. Note that if this deprecated method is used, problems will be reported to the given problem requestor as well as the problem requestor returned by the working copy owner (if not null).Changes this class file handle into a working copy. A newIBuffer
is created using the given owner. Uses the primary owner ifnull
is specified.When switching to working copy mode, problems are reported to the given
IProblemRequestor
. Note that once in working copy mode, the givenIProblemRequestor
is ignored. Only the originalIProblemRequestor
is used to report subsequent problems.Once in working copy mode, changes to this working copy or its children are done in memory. Only the new buffer is affected.
Using
ICompilationUnit.commitWorkingCopy(boolean, IProgressMonitor)
on the working copy will throw aJavaModelException
as a class file is implicetly read-only.If this class file was already in working copy mode, an internal counter is incremented and no other action is taken on this working copy. To bring this working copy back into the original mode (where it reflects the underlying resource),
ICompilationUnit.discardWorkingCopy()
must be call as many times asbecomeWorkingCopy(IProblemRequestor, WorkingCopyOwner, IProgressMonitor)
.The primary compilation unit of a class file's working copy does not exist if the class file is not in working copy mode (
classFileWorkingCopy.getPrimary().exists() == false
).The resource of a class file's working copy is
null
if the class file is in an external jar file.- Parameters:
problemRequestor
- a requestor which will get notified of problems detected during reconciling as they are discovered. The requestor can be set tonull
indicating that the client is not interested in problems.owner
- the givenWorkingCopyOwner
, ornull
for the primary ownermonitor
- a progress monitor used to report progress while opening this compilation unit ornull
if no progress should be reported- Returns:
- a working copy for this class file
- Throws:
JavaModelException
- if this compilation unit could not become a working copy.- Since:
- 3.2
- See Also:
ICompilationUnit.discardWorkingCopy()
-
getBytes
byte[] getBytes() throws JavaModelException
Returns the bytes contained in this class file.- Returns:
- the bytes contained in this class file
- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource- Since:
- 3.3
-
getType
@Deprecated IType getType()
Deprecated.should only be used asIOrdinaryClassFile.getType()
.Returns the type contained in this class file. This is a handle-only method. The type may or may not exist.- Returns:
- the type contained in this class file
- Throws:
UnsupportedOperationException
- when invoked on an instance representing a modular class file.
-
getWorkingCopy
IJavaElement getWorkingCopy(IProgressMonitor monitor, IBufferFactory factory) throws JavaModelException
Deprecated.Returns a working copy on the source associated with this class file using the given factory to create the buffer, ornull
if there is no source associated with the class file.The buffer will be automatically initialized with the source of the class file upon creation.
The only valid operations on this working copy are
getBuffer()
orgetOriginalElement
.- Parameters:
monitor
- a progress monitor used to report progress while opening this compilation unit ornull
if no progress should be reportedfactory
- the factory that creates a buffer that is used to get the content of the working copy ornull
if the internal factory should be used- Returns:
- a a working copy on the source associated with this class file
- Throws:
JavaModelException
- if the source of this class file can not be determined. Reasons include:- This class file does not exist (ELEMENT_DOES_NOT_EXIST)
- Since:
- 2.0
-
isClass
boolean isClass() throws JavaModelException
Returns whether this type represents a class. This is not guaranteed to be instantaneous, as it may require parsing the underlying file.- Returns:
true
if the class file represents a class.- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource
-
isInterface
boolean isInterface() throws JavaModelException
Returns whether this type represents an interface. This is not guaranteed to be instantaneous, as it may require parsing the underlying file.- Returns:
true
if the class file represents an interface.- Throws:
JavaModelException
- if this element does not exist or if an exception occurs while accessing its corresponding resource
-
-