|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.core.runtime.PlatformObject
org.eclipse.core.internal.jobs.InternalJob
org.eclipse.core.runtime.jobs.Job
org.eclipse.core.internal.resources.InternalWorkspaceJob
org.eclipse.core.resources.WorkspaceJob
public abstract class WorkspaceJob
A job that makes an atomic modification to the workspace. Clients must
implement the abstract method runInWorkspace
instead
of the usual Job.run
method.
After running a method that modifies resources in the workspace, registered listeners receive after-the-fact notification of what just transpired, in the form of a resource change event. This method allows clients to call a number of methods that modify resources and only have resource change event notifications reported at the end of the entire batch. This mechanism is used to avoid unnecessary builds and notifications.
Platform may decide to perform notifications during the operation. The reason for this is that it is possible for multiple threads to be modifying the workspace concurrently. When one thread finishes modifying the workspace, a notification is required to prevent responsiveness problems, even if the other operation has not yet completed.
A WorkspaceJob is the asynchronous equivalent of IWorkspaceRunnable
Note that the workspace is not locked against other threads during the execution of a workspace job. Other threads can be modifying the workspace concurrently with a workspace job. To obtain exclusive access to a portion of the workspace, set the scheduling rule on the job to be a resource scheduling rule. The interface IResourceRuleFactory is used to create a scheduling rule for a particular workspace modification operation.
IWorkspaceRunnable
,
IResourceRuleFactory
,
IWorkspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
Field Summary |
---|
Fields inherited from class org.eclipse.core.runtime.jobs.Job |
---|
ASYNC_FINISH, BUILD, DECORATE, INTERACTIVE, LONG, NONE, RUNNING, SHORT, SLEEPING, WAITING |
Constructor Summary | |
---|---|
WorkspaceJob(java.lang.String name)
Creates a new workspace job. |
Method Summary | |
---|---|
abstract org.eclipse.core.runtime.IStatus |
runInWorkspace(org.eclipse.core.runtime.IProgressMonitor monitor)
Runs the operation, reporting progress to and accepting cancelation requests from the given progress monitor. |
Methods inherited from class org.eclipse.core.internal.resources.InternalWorkspaceJob |
---|
run |
Methods inherited from class org.eclipse.core.runtime.jobs.Job |
---|
addJobChangeListener, belongsTo, cancel, done, getJobManager, getName, getPriority, getProperty, getResult, getRule, getState, getThread, isBlocking, isSystem, isUser, join, removeJobChangeListener, schedule, schedule, setName, setPriority, setProgressGroup, setProperty, setRule, setSystem, setThread, setUser, shouldRun, shouldSchedule, sleep, wakeUp, wakeUp |
Methods inherited from class org.eclipse.core.internal.jobs.InternalJob |
---|
compareTo, toString |
Methods inherited from class org.eclipse.core.runtime.PlatformObject |
---|
getAdapter |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.eclipse.core.runtime.IAdaptable |
---|
getAdapter |
Constructor Detail |
---|
public WorkspaceJob(java.lang.String name)
name
- the name of the jobMethod Detail |
---|
public abstract org.eclipse.core.runtime.IStatus runInWorkspace(org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Implementors of this method should check the progress monitor
for cancelation when it is safe and appropriate to do so. The cancelation
request should be propagated to the caller by throwing
OperationCanceledException
.
monitor
- a progress monitor, or null
if progress
reporting and cancelation are not desired
org.eclipse.core.runtime.CoreException
- if this operation fails.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |