Interface IJobChangeListener

All Known Implementing Classes:
JobChangeAdapter, ModelMergeOperation, ModelOperation, ModelParticipantMergeOperation, SynchronizationOperation, SynchronizeModelOperation, TeamOperation

public interface IJobChangeListener
Callback interface for clients interested in being notified when jobs change state.

A single job listener instance can be added either to the job manager, for notification of all scheduled jobs, or to any set of individual jobs. A single listener instance should not be added to both the job manager, and to individual jobs (such a listener may receive duplicate notifications).

Clients should not rely on the result of the Job#getState() method on jobs for which notification is occurring. Listeners are notified of all job state changes, but whether the state change occurs before, during, or after listeners are notified is unspecified.

It is undefined in which Thread the notification occurs.

Clients may implement this interface.

Since:
3.0
See Also:
  • Method Details

    • aboutToRun

      void aboutToRun(IJobChangeEvent event)

      Notification that a job is about to be run. Listeners are allowed to sleep, cancel, or change the priority of the job before it is started (and as a result may prevent the run from actually occurring).

      Implementations should not block and return promptly.

      Parameters:
      event - the event details
    • awake

      void awake(IJobChangeEvent event)

      Notification that a job was previously sleeping and has now been rescheduled to run.

      Implementations should not block and return promptly.

      Parameters:
      event - the event details
    • done

      void done(IJobChangeEvent event)

      Notification that a job has completed execution, either due to cancelation, successful completion, or failure. The event status object indicates how the job finished, and the reason for failure, if applicable.

      Implementations should not block and return promptly.

      Parameters:
      event - the event details
    • running

      void running(IJobChangeEvent event)

      Notification that a job has started running.

      Implementations should not block and return promptly.

      Parameters:
      event - the event details
    • scheduled

      void scheduled(IJobChangeEvent event)

      Notification that a job is being added to the queue of scheduled jobs. The event details includes the scheduling delay before the job should start running.

      Implementations should not block and return promptly.

      Parameters:
      event - the event details, including the job instance and the scheduling delay
    • sleeping

      void sleeping(IJobChangeEvent event)

      Notification that a job was waiting to run and has now been put in the sleeping state.

      Implementations should not block and return promptly.

      Parameters:
      event - the event details
    • onDone

      Static helper method to create an IJobChangeListener for the done(IJobChangeEvent)) method, given a lambda expression or a method reference.
      Parameters:
      c - the consumer of the event
      Returns:
      IJobChangeAdapter
      Since:
      3.15