|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.jdt.core.WorkingCopyOwner
public abstract class WorkingCopyOwner
The owner of an ICompilationUnit
handle in working copy mode.
An owner is used to identify a working copy and to create its buffer.
Clients should subclass this class to instantiate a working copy owner that is specific to their need and that
they can pass in to various APIs (e.g. IType.resolveType(String, WorkingCopyOwner)
.
Clients can also override the default implementation of createBuffer(ICompilationUnit)
.
Note: even though this class has no abstract method, which means that it provides functional default behavior, it is still an abstract class, as clients are intended to own their owner implementation.
ICompilationUnit.becomeWorkingCopy(org.eclipse.core.runtime.IProgressMonitor)
,
ICompilationUnit.discardWorkingCopy()
,
ICompilationUnit.getWorkingCopy(org.eclipse.core.runtime.IProgressMonitor)
Constructor Summary | |
---|---|
WorkingCopyOwner()
|
Method Summary | |
---|---|
IBuffer |
createBuffer(ICompilationUnit workingCopy)
Creates a buffer for the given working copy. |
IProblemRequestor |
getProblemRequestor(ICompilationUnit workingCopy)
Returns the problem requestor used by a working copy of this working copy owner. |
ICompilationUnit |
newWorkingCopy(java.lang.String name,
IClasspathEntry[] classpath,
IProblemRequestor problemRequestor,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deprecated. Use newWorkingCopy(String, IClasspathEntry[], IProgressMonitor) instead.
Note that if this deprecated method is used, problems may be reported twice
if the given requestor is not the same as the current working copy owner one. |
ICompilationUnit |
newWorkingCopy(java.lang.String name,
IClasspathEntry[] classpath,
org.eclipse.core.runtime.IProgressMonitor monitor)
Returns a new working copy with the given name using this working copy owner to create its buffer. |
static void |
setPrimaryBufferProvider(WorkingCopyOwner primaryBufferProvider)
Sets the buffer provider of the primary working copy owner. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public WorkingCopyOwner()
Method Detail |
---|
public static void setPrimaryBufferProvider(WorkingCopyOwner primaryBufferProvider)
createBuffer(ICompilationUnit)
method is used by the primary working copy owner. It doesn't replace the internal primary
working owner.
This method is for internal use by the jdt-related plug-ins. Clients outside of the jdt should not reference this method.
primaryBufferProvider
- the primary buffer providerpublic IBuffer createBuffer(ICompilationUnit workingCopy)
null
).
Note: This buffer will be associated to the working copy for its entire life-cycle. Another working copy on same unit but owned by a different owner would not share the same buffer unless its owner decided to implement such a sharing behaviour.
workingCopy
- the working copy of the buffer
IBuffer
public IProblemRequestor getProblemRequestor(ICompilationUnit workingCopy)
By default, no problem requestor is configured. Clients can override this method to provide a requestor.
workingCopy
- The problem requestor used for the given working copy.
null
if no problem requestor is configured.public final ICompilationUnit newWorkingCopy(java.lang.String name, IClasspathEntry[] classpath, IProblemRequestor problemRequestor, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
newWorkingCopy(String, IClasspathEntry[], IProgressMonitor)
instead.
Note that if this deprecated method is used, problems may be reported twice
if the given requestor is not the same as the current working copy owner one.
This working copy always belongs to the default package in a package fragment root that corresponds to its Java project, and this Java project never exists. However this Java project has the given classpath that is used when resolving names in this working copy.
A DOM AST created using this working copy will have bindings resolved using the given classpath, and problem are reported to the given problem requestor.
JavaCore#getOptions()
is used to create the DOM AST as it is not
possible to set the options on the non-existing Java project.
When the working copy instance is created, an added delta
is
reported on this working copy.
Once done with the working copy, users of this method must discard it using
ICompilationUnit.discardWorkingCopy()
.
Note that when such working copy is committed, only its buffer is saved (see
IBuffer.save(IProgressMonitor, boolean)
) but no resource is created.
This method is not intended to be overriden by clients.
name
- the name of the working copy (e.g. "X.java")classpath
- the classpath used to resolve names in this working copyproblemRequestor
- a requestor which will get notified of problems detected during
reconciling as they are discovered. The requestor can be set to null
indicating
that the client is not interested in problems.monitor
- a progress monitor used to report progress while opening the working copy
or null
if no progress should be reported
JavaModelException
- if the contents of this working copy can
not be determined.ICompilationUnit.becomeWorkingCopy(IProblemRequestor, IProgressMonitor)
public final ICompilationUnit newWorkingCopy(java.lang.String name, IClasspathEntry[] classpath, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
This working copy always belongs to the default package in a package fragment root that corresponds to its Java project, and this Java project never exists. However this Java project has the given classpath that is used when resolving names in this working copy.
If a DOM AST is created using this working copy, then given classpath will be used
if bindings need to be resolved. Problems will be reported to the problem requestor
of the current working copy owner problem if it is not null
.
JavaCore.getOptions()
as it is not possible to set the options on a non-existing Java project.
When the working copy instance is created, an added delta
is
reported on this working copy.
Once done with the working copy, users of this method must discard it using
ICompilationUnit.discardWorkingCopy()
.
Note that when such working copy is committed, only its buffer is saved (see
IBuffer.save(IProgressMonitor, boolean)
) but no resource is created.
This method is not intended to be overriden by clients.
name
- the name of the working copy (e.g. "X.java")classpath
- the classpath used to resolve names in this working copymonitor
- a progress monitor used to report progress while opening the working copy
or null
if no progress should be reported
JavaModelException
- if the contents of this working copy can
not be determined.ICompilationUnit.becomeWorkingCopy(IProgressMonitor)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |