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.1, as of Spring 3.1.

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

### Constructor Summary

Constructors
Constructor and Description
`AdaptableJobFactory()`

### Method Summary

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