/*
* GuiceJobListener.java criado em 29/06/2011
*
* Propriedade de Objectos Fábrica de Software LTDA.
* Reprodução parcial ou total proibida.
*/
package br.com.objectos.way.cron;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.spi.JobFactory;
import org.quartz.spi.TriggerFiredBundle;
import com.google.inject.Inject;
import com.google.inject.Injector;
/**
* @author marcio.endo@objectos.com.br (Marcio Endo)
*/
class GuiceJobFactory implements JobFactory {
private final Injector injector;
@Inject
GuiceJobFactory(Injector injector) {
this.injector = injector;
}
@Override
public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) throws SchedulerException {
JobDetail detail = bundle.getJobDetail();
Class<? extends Job> jobClass = detail.getJobClass();
Job instance = injector.getInstance(jobClass);
return instance;
}
}