Package org.eclipse.ui.progress

## Class WorkbenchJob

- java.lang.Object
- - org.eclipse.core.runtime.PlatformObject
  - - org.eclipse.core.internal.jobs.InternalJob
    - - org.eclipse.core.runtime.jobs.Job
      - - org.eclipse.ui.progress.UIJob
        - - org.eclipse.ui.progress.WorkbenchJob

All Implemented Interfaces:
  `Comparable`, `IAdaptable`

    public abstract class WorkbenchJob
    extends UIJob

WorkbenchJob is a type of job that implements a done listener and does the shutdown checks before scheduling. This is used if a job is not meant to run when the Workbench is shutdown.

Since:
  3.0

### Field Summary

### Fields inherited from class org.eclipse.core.runtime.jobs.Job

`ASYNC_FINISH, BUILD, DECORATE, INTERACTIVE, LONG, NONE, RUNNING, SHORT, SLEEPING, WAITING`

### Fields inherited from class org.eclipse.core.internal.jobs.InternalJob

`manager`

### Constructor Summary

Constructors
`WorkbenchJob​(String name)` Add a new instance of the receiver with the supplied name.
`WorkbenchJob​(Display jobDisplay, String name)` Create a new instance of the receiver with the supplied display and name.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `performDone​(IJobChangeEvent event)` Perform done with the supplied event.
`boolean` `shouldRun()` Returns whether this job should be run.
`boolean` `shouldSchedule()` Returns whether this job should be scheduled.

### Methods inherited from class org.eclipse.ui.progress.UIJob

`errorStatus, getDisplay, run, runInUIThread, setDisplay`

### Methods inherited from class org.eclipse.core.runtime.jobs.Job

`addJobChangeListener, belongsTo, cancel, canceling, create, create, createSystem, createSystem, done, getJobGroup, getJobManager, getName, getPriority, getProperty, getResult, getRule, getState, getThread, isBlocking, isSystem, isUser, join, join, removeJobChangeListener, schedule, schedule, setJobGroup, setName, setPriority, setProgressGroup, setProperty, setRule, setSystem, setThread, setUser, sleep, toString, wakeUp, wakeUp, yieldRule`

### Methods inherited from class org.eclipse.core.internal.jobs.InternalJob

`compareTo`

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

### Constructor Detail

#### WorkbenchJob

    public WorkbenchJob​(Display jobDisplay,
                        String name)

Create a new instance of the receiver with the supplied display and name. Normally this constructor would not be used as it is best to let the job find the display from the workbench

Parameters:
  `jobDisplay` - Display. The display to run the job with.
  `name` - String

#### WorkbenchJob

    public WorkbenchJob​(String name)

Add a new instance of the receiver with the supplied name.

Parameters:
  `name` - String

### Method Detail

#### performDone

    public void performDone​(IJobChangeEvent event)

Perform done with the supplied event. This will only occur if the returned status was OK. This is called only if the job is finished with an IStatus.OK result and the workbench is still running.

Parameters:
  `event` - IJobChangeEvent

#### shouldSchedule

    public boolean shouldSchedule()

Description copied from class: `Job`
Returns whether this job should be scheduled. If `false` is returned, this job will be discarded by the job manager without being added to the queue.

This method is called immediately prior to adding the job to the waiting job queue.,so it can be used for last minute precondition checking before a job is scheduled.

Clients may override this method. This default implementation always returns `true`.

Overrides:
  `shouldSchedule` in class `Job`
Returns:
  `true` if the job manager should schedule this job and `false` otherwise

#### shouldRun

    public boolean shouldRun()

Description copied from class: `Job`
Returns whether this job should be run. If `false` is returned, this job will be discarded by the job manager without running.

This method is called immediately prior to calling the job's run method, so it can be used for last minute precondition checking before a job is run. This method must not attempt to schedule or change the state of any other job.

Clients may override this method. This default implementation always returns `true`.

Overrides:
  `shouldRun` in class `Job`
Returns:
  `true` if this job should be run and `false` otherwise