Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.core.resources
Class WorkspaceJob

    java.lang.Object
      org.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

All Implemented Interfaces:
  Comparable, IAdaptable

public abstract class WorkspaceJob
extends org.eclipse.core.internal.resources.InternalWorkspaceJob

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.

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.

Since:
  3.0
See Also:
  `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(String name)` Creates a new workspace job.

Method Summary
`abstract IStatus` | `runInWorkspace(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, 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
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.eclipse.core.runtime.IAdaptable
`getAdapter`

Constructor Detail

### WorkspaceJob

    public WorkspaceJob(String name)

  Creates a new workspace job.

Parameters:
  `name` - the name of the job

Method Detail

### runInWorkspace

    public abstract IStatus runInWorkspace(IProgressMonitor monitor)
                                    throws CoreException

  Runs the operation, reporting progress to and accepting cancelation requests from the given progress monitor.

  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`.

  Parameters:
    `monitor` - a progress monitor, or `null` if progress reporting and cancelation are not desired
  Returns:
    the result of running the operation
  Throws:
    `CoreException` - if this operation fails.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.