org.springframework.scheduling.quartz

## Class AdaptableJobFactory

- java.lang.Object
- - org.springframework.scheduling.quartz.AdaptableJobFactory

- All Implemented Interfaces:
    org.quartz.spi.JobFactory
  Direct Known Subclasses:
    SpringBeanJobFactory

      public class AdaptableJobFactory
      extends Object
      implements org.quartz.spi.JobFactory

  JobFactory implementation that supports `Runnable` objects as well as standard Quartz `Job` instances.

  Compatible with Quartz 1.5+ as well as Quartz 2.0-2.2, as of Spring 3.2.

  Since:
    2.0
  Author:
    Juergen Hoeller
  See Also:
    `DelegatingJob`, `adaptJob(Object)`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AdaptableJobFactory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Job` | `adaptJob(Object jobObject)` Adapt the given job object to the Quartz Job interface.
    `protected Object` | `createJobInstance(org.quartz.spi.TriggerFiredBundle bundle)` Create an instance of the specified job class.
    `Job` | `newJob(org.quartz.spi.TriggerFiredBundle bundle)` Quartz 1.x version of newJob: contains actual implementation code.
    `Job` | `newJob(org.quartz.spi.TriggerFiredBundle bundle, Scheduler scheduler)` Quartz 2.0 version of newJob: simply delegates to old newJob variant.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AdaptableJobFactory

          public AdaptableJobFactory()

  - ### Method Detail

    - #### newJob

          public Job newJob(org.quartz.spi.TriggerFiredBundle bundle,
                   Scheduler scheduler)
                     throws SchedulerException

      Quartz 2.0 version of newJob: simply delegates to old newJob variant.
      Throws:
        `SchedulerException`
      See Also:
        `newJob(org.quartz.spi.TriggerFiredBundle)`

    - #### newJob

          public Job newJob(org.quartz.spi.TriggerFiredBundle bundle)
                     throws SchedulerException

      Quartz 1.x version of newJob: contains actual implementation code.
      Specified by:
        `newJob` in interface `org.quartz.spi.JobFactory`
      Throws:
        `SchedulerException`

    - #### createJobInstance

          protected Object createJobInstance(org.quartz.spi.TriggerFiredBundle bundle)
                                      throws Exception

      Create an instance of the specified job class.

      Can be overridden to post-process the job instance.

      Parameters:
        `bundle` - the TriggerFiredBundle from which the JobDetail and other info relating to the trigger firing can be obtained
      Returns:
        the job instance
      Throws:
        `Exception` - if job instantiation failed

    - #### adaptJob

          protected Job adaptJob(Object jobObject)
                          throws Exception

      Adapt the given job object to the Quartz Job interface.

      The default implementation supports straight Quartz Jobs as well as Runnables, which get wrapped in a DelegatingJob.

      Parameters:
        `jobObject` - the original instance of the specified job class
      Returns:
        the adapted Quartz Job instance
      Throws:
        `Exception` - if the given job could not be adapted
      See Also:
        `DelegatingJob`