|
|
|
|
org.eclipse.jdt.core
Interface IWorkingCopy
-
All Known Subinterfaces:
-
ICompilationUnit
Deprecated. Use
ICompilationUnit instead
-
public interface IWorkingCopy
Common protocol for Java elements that support working copies.
A working copy of a Java element acts just like a regular element (handle),
except it is not attached to an underlying resource. A working copy is not
visible to the rest of the Java model. Changes in a working copy's
buffer are not realized in a resource. To bring the Java model up-to-date with a working
copy's contents, an explicit commit must be performed on the working copy.
Other operations performed on a working copy update the
contents of the working copy's buffer but do not commit the contents
of the working copy.
Note: The contents of a working copy is determined when a working
copy is created, based on the current content of the element the working
copy is created from. If a working copy is an IOpenable and is explicitly
closed, the working copy's buffer will be thrown away. However, clients should not
explicitly open and close working copies.
The client that creates a working copy is responsible for
destroying the working copy. The Java model will never automatically
destroy or close a working copy. (Note that destroying a working copy
does not commit it to the model, it only frees up the memory occupied by
the element). After a working copy is destroyed, the working copy cannot
be accessed again. Non-handle methods will throw a
JavaModelException indicating the Java element does not exist.
A working copy cannot be created from another working copy.
Calling getWorkingCopy on a working copy returns the receiver.
-
Restriction:
- This interface is not intended to be implemented by clients.
Method Summary
|
void
|
commit
(boolean force,
IProgressMonitor monitor)
Deprecated. Use
ICompilationUnit.commitWorkingCopy(boolean, IProgressMonitor) instead.
|
void
|
destroy
()
Deprecated. Use
ICompilationUnit.discardWorkingCopy() instead.
|
IJavaElement[]
|
findElements
(
IJavaElement element)
Deprecated. Use
ICompilationUnit.findElements(IJavaElement) instead.
|
IType
|
findPrimaryType
()
Deprecated. Use
ITypeRoot.findPrimaryType() instead.
|
IJavaElement
|
findSharedWorkingCopy
(
IBufferFactory bufferFactory)
Deprecated. Use
ICompilationUnit.findWorkingCopy(WorkingCopyOwner) instead.
|
IJavaElement
|
getOriginal
(
IJavaElement workingCopyElement)
Deprecated. Use
IJavaElement.getPrimaryElement() instead.
|
IJavaElement
|
getOriginalElement
()
Deprecated. Use
IJavaElement.getPrimaryElement() instead.
|
IJavaElement
|
getSharedWorkingCopy
(
IProgressMonitor monitor,
IBufferFactory factory,
IProblemRequestor problemRequestor)
Deprecated. Use
ICompilationUnit.getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor) instead.
|
IJavaElement
|
getWorkingCopy
()
Deprecated. Use
ICompilationUnit.getWorkingCopy(IProgressMonitor) instead.
|
IJavaElement
|
getWorkingCopy
(
IProgressMonitor monitor,
IBufferFactory factory,
IProblemRequestor problemRequestor)
Deprecated. Use
ICompilationUnit.getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor) instead.
|
boolean
|
isBasedOn
(
IResource resource)
Deprecated. Use
ICompilationUnit.hasResourceChanged() instead.
|
boolean
|
isWorkingCopy
()
Deprecated. Use
ICompilationUnit.isWorkingCopy() instead.
|
IMarker[]
|
reconcile
()
Deprecated. Use
ICompilationUnit.reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor) instead.
|
void
|
reconcile
(boolean forceProblemDetection,
IProgressMonitor monitor)
Deprecated. Use
ICompilationUnit.reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor) instead.
|
void
|
restore
()
Deprecated. Use
ICompilationUnit.restore() instead.
|
commit
void commit(boolean force,
IProgressMonitor monitor)
throws
JavaModelException
-
Deprecated. Use
ICompilationUnit.commitWorkingCopy(boolean, IProgressMonitor) instead.
- Commits the contents of this working copy to its original element
and underlying resource, bringing the Java model up-to-date with
the current contents of the working copy.
It is possible that the contents of the original resource have changed
since this working copy was created, in which case there is an update conflict.
The value of the force parameter effects the resolution of
such a conflict:
-
true - in this case the contents of this working copy are applied to
the underlying resource even though this working copy was created before
a subsequent change in the resource
-
false - in this case a JavaModelException is thrown
Since 2.1, a working copy can be created on a not-yet existing compilation
unit. In particular, such a working copy can then be committed in order to create
the corresponding compilation unit.
-
-
Parameters:
-
force - a flag to handle the cases when the contents of the original resource have changed
since this working copy was created -
monitor - the given progress monitor
-
Throws:
-
JavaModelException
- if this working copy could not commit. Reasons include:
- A
CoreException occurred while updating an underlying resource
- This element is not a working copy (INVALID_ELEMENT_TYPES)
- A update conflict (described above) (UPDATE_CONFLICT)
destroy
void destroy()
-
Deprecated. Use
ICompilationUnit.discardWorkingCopy() instead.
- Destroys this working copy, closing its buffer and discarding
its structure. Subsequent attempts to access non-handle information
for this working copy will result in
IJavaModelException s. Has
no effect if this element is not a working copy.
If this working copy is shared, it is destroyed only when the number of calls to
destroy() is the same as the number of calls to
getSharedWorkingCopy(IProgressMonitor, IBufferFactory) .
When it is destroyed, a REMOVED IJavaElementDelta is reported on this
working copy.
-
findSharedWorkingCopy
IJavaElement findSharedWorkingCopy(
IBufferFactory bufferFactory)
-
Deprecated. Use
ICompilationUnit.findWorkingCopy(WorkingCopyOwner) instead.
- Finds the shared working copy for this element, given a
IBuffer factory.
If no working copy has been created for this element associated with this
buffer factory, returns null .
Users of this method must not destroy the resulting working copy.
-
-
Parameters:
-
bufferFactory - the given IBuffer factory
-
Returns:
- the found shared working copy for this element,
null if none -
Since:
- 2.0
-
See Also:
-
IBufferFactory
getOriginal
IJavaElement getOriginal(
IJavaElement workingCopyElement)
-
Deprecated. Use
IJavaElement.getPrimaryElement() instead.
- Returns the original element the specified working copy element was created from,
or
null if this is not a working copy element. This is a handle
only method, the returned element may or may not exist.
-
-
Parameters:
-
workingCopyElement - the specified working copy element
-
Returns:
- the original element the specified working copy element was created from,
or
null if this is not a working copy element
getOriginalElement
IJavaElement getOriginalElement()
-
Deprecated. Use
IJavaElement.getPrimaryElement() instead.
- Returns the original element this working copy was created from,
or
null if this is not a working copy.
-
-
Returns:
- the original element this working copy was created from,
or
null if this is not a working copy
findElements
IJavaElement[] findElements(
IJavaElement element)
-
Deprecated. Use
ICompilationUnit.findElements(IJavaElement) instead.
- Finds the elements in this compilation unit that correspond to
the given element.
An element A corresponds to an element B if:
- A has the same element name as B.
- If A is a method, A must have the same number of arguments as
B and the simple names of the argument types must be equals.
- The parent of A corresponds to the parent of B recursively up to
their respective compilation units.
- A exists.
Returns null if no such java elements can be found
or if the given element is not included in a compilation unit.
-
-
Parameters:
-
element - the given element
-
Returns:
- the found elements in this compilation unit that correspond to the given element
-
Since:
- 2.0
findPrimaryType
IType findPrimaryType()
-
Deprecated. Use
ITypeRoot.findPrimaryType() instead.
- Finds the primary type of this compilation unit (that is, the type with the same name as the
compilation unit), or
null if no such a type exists.
-
-
Returns:
- the found primary type of this compilation unit, or
null if no such a type exists -
Since:
- 2.0
getSharedWorkingCopy
IJavaElement getSharedWorkingCopy(
IProgressMonitor monitor,
IBufferFactory factory,
IProblemRequestor problemRequestor)
throws
JavaModelException
-
Deprecated. Use
ICompilationUnit.getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor) instead.
- Returns a shared working copy on this element using the given factory to create
the buffer, or this element if this element is already a working copy.
This API can only answer an already existing working copy if it is based on the same
original compilation unit AND was using the same buffer factory (that is, as defined by
Object.equals ).
The life time of a shared working copy is as follows:
- The first call to
getSharedWorkingCopy(...) creates a new working copy for this
element
- Subsequent calls increment an internal counter.
- A call to
destroy() decrements the internal counter.
- When this counter is 0, the working copy is destroyed.
So users of this method must destroy exactly once the working copy.
Note that the buffer factory will be used for the life time of this working copy, that is if the
working copy is closed then reopened, this factory will be used.
The buffer will be automatically initialized with the original's compilation unit content
upon creation.
When the shared working copy instance is created, an ADDED IJavaElementDelta is reported on this
working copy.
-
-
Parameters:
-
monitor - a progress monitor used to report progress while opening this compilation unit
or null if no progress should be reported -
factory - the factory that creates a buffer that is used to get the content of the working copy
or null if the internal factory should be used -
problemRequestor - 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.
-
Returns:
- a shared working copy on this element using the given factory to create
the buffer, or this element if this element is already a working copy
-
Throws:
-
JavaModelException
- if the contents of this element can
not be determined. -
Since:
- 2.0
-
See Also:
-
IBufferFactory ,
IProblemRequestor
getWorkingCopy
IJavaElement getWorkingCopy()
throws
JavaModelException
-
Deprecated. Use
ICompilationUnit.getWorkingCopy(IProgressMonitor) instead.
- Returns a new working copy of this element if this element is not
a working copy, or this element if this element is already a working copy.
Note: if intending to share a working copy amongst several clients, then
#getSharedWorkingCopy should be used instead.
When the working copy instance is created, an ADDED IJavaElementDelta is
reported on this working copy.
Since 2.1, a working copy can be created on a not-yet existing compilation
unit. In particular, such a working copy can then be committed in order to create
the corresponding compilation unit.
-
-
Returns:
- a new working copy of this element if this element is not
a working copy, or this element if this element is already a working copy
-
Throws:
-
JavaModelException
- if the contents of this element can
not be determined.
getWorkingCopy
IJavaElement getWorkingCopy(
IProgressMonitor monitor,
IBufferFactory factory,
IProblemRequestor problemRequestor)
throws
JavaModelException
-
Deprecated. Use
ICompilationUnit.getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor) instead.
- Returns a new working copy of this element using the given factory to create
the buffer, or this element if this element is already a working copy.
Note that this factory will be used for the life time of this working copy, that is if the
working copy is closed then reopened, this factory will be reused.
The buffer will be automatically initialized with the original's compilation unit content
upon creation.
Note: if intending to share a working copy amongst several clients, then
#getSharedWorkingCopy should be used instead.
When the working copy instance is created, an ADDED IJavaElementDelta is
reported on this working copy.
Since 2.1, a working copy can be created on a not-yet existing compilation
unit. In particular, such a working copy can then be committed in order to create
the corresponding compilation unit.
-
-
Parameters:
-
monitor - a progress monitor used to report progress while opening this compilation unit
or null if no progress should be reported -
factory - the factory that creates a buffer that is used to get the content of the working copy
or null if the internal factory should be used -
problemRequestor - 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.
-
Returns:
- a new working copy of this element using the given factory to create
the buffer, or this element if this element is already a working copy
-
Throws:
-
JavaModelException
- if the contents of this element can
not be determined. -
Since:
- 2.0
isBasedOn
boolean isBasedOn(
IResource resource)
-
Deprecated. Use
ICompilationUnit.hasResourceChanged() instead.
- Returns whether this working copy's original element's content
has not changed since the inception of this working copy.
-
-
Parameters:
-
resource - this working copy's resource
-
Returns:
- true if this working copy's original element's content
has not changed since the inception of this working copy, false otherwise
isWorkingCopy
boolean isWorkingCopy()
-
Deprecated. Use
ICompilationUnit.isWorkingCopy() instead.
- Returns whether this element is a working copy.
-
-
Returns:
- true if this element is a working copy, false otherwise
reconcile
IMarker[] reconcile()
throws
JavaModelException
-
Deprecated. Use
ICompilationUnit.reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor) instead.
- Reconciles the contents of this working copy.
It performs the reconciliation by locally caching the contents of
the working copy, updating the contents, then creating a delta
over the cached contents and the new contents, and finally firing
this delta.
If the working copy hasn't changed, then no problem will be detected,
this is equivalent to IWorkingCopy#reconcile(false, null) .
Compilation problems found in the new contents are notified through the
IProblemRequestor interface which was passed at
creation, and no longer as transient markers. Therefore this API will
return null .
Note: Since 3.0 added/removed/changed inner types generate change deltas.
-
-
Returns:
-
null
-
Throws:
-
JavaModelException
- if the contents of the original element
cannot be accessed. Reasons include:
- The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)
reconcile
void reconcile(boolean forceProblemDetection,
IProgressMonitor monitor)
throws
JavaModelException
-
Deprecated. Use
ICompilationUnit.reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor) instead.
- Reconciles the contents of this working copy.
It performs the reconciliation by locally caching the contents of
the working copy, updating the contents, then creating a delta
over the cached contents and the new contents, and finally firing
this delta.
The boolean argument allows to force problem detection even if the
working copy is already consistent.
Compilation problems found in the new contents are notified through the
IProblemRequestor interface which was passed at
creation, and no longer as transient markers. Therefore this API answers
nothing.
Note: Since 3.0 added/removed/changed inner types generate change deltas.
-
-
Parameters:
-
forceProblemDetection - boolean indicating whether problem should be recomputed
even if the source hasn't changed. -
monitor - a progress monitor
-
Throws:
-
JavaModelException
- if the contents of the original element
cannot be accessed. Reasons include:
- The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)
-
Since:
- 2.0
restore
void restore()
throws
JavaModelException
-
Deprecated. Use
ICompilationUnit.restore() instead.
- Restores the contents of this working copy to the current contents of
this working copy's original element. Has no effect if this element
is not a working copy.
Note: This is the inverse of committing the content of the
working copy to the original element with commit(boolean, IProgressMonitor) .
-
-
Throws:
-
JavaModelException
- if the contents of the original element
cannot be accessed. Reasons include:
- The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)
Copyright (c) IBM Corp. and others 2000, 2008. All Rights Reserved.
|
|
|