1 4 package org.oddjob.quartz; 5 6 import org.oddjob.arooa.registry.ComponentRegistry; 7 import org.oddjob.scheduling.CronScheduleInstruction; 8 import org.oddjob.scheduling.OJScheduleInstruction; 9 import org.oddjob.scheduling.ScheduleInstruction; 10 import org.oddjob.scheduling.TriggerScheduleInstruction; 11 12 17 public class QuartzScheduleFactory { 18 19 24 public QuartzSchedule createSchedule(ScheduleInstruction si, 25 ComponentRegistry componentRegistry) { 26 if (si instanceof OJScheduleInstruction) { 27 return ojSchedule((OJScheduleInstruction) si, 28 componentRegistry); 29 } 30 else if (si instanceof CronScheduleInstruction) { 31 return cronSchedule((CronScheduleInstruction) si, 32 componentRegistry); 33 } 34 else if (si instanceof TriggerScheduleInstruction) { 35 return triggerSchedule((TriggerScheduleInstruction)si, 36 componentRegistry); 37 } 38 throw new UnsupportedOperationException ("Unable to create QuartzSchedule for [" 39 + si + "]"); 40 } 41 42 48 OddjobSchedule ojSchedule(OJScheduleInstruction scheduleInstruction, 49 ComponentRegistry componentRegistry) { 50 OddjobSchedule schedule = new OddjobSchedule(); 51 schedule.setId(scheduleInstruction.getId()); 52 schedule.setComponentRegistry(componentRegistry); 53 schedule.setName(scheduleInstruction.getName()); 54 schedule.setJob((Runnable ) scheduleInstruction.getJob()); 55 schedule.setRetry(scheduleInstruction.getRetry()); 56 schedule.setSchedule(scheduleInstruction.getSchedule()); 57 schedule.setTimeZone(scheduleInstruction.getTimeZone()); 58 return schedule; 59 } 60 61 67 CronSchedule cronSchedule(CronScheduleInstruction scheduleInstruction, 68 ComponentRegistry componentRegistry) { 69 CronSchedule schedule = new CronSchedule(); 70 schedule.setId(scheduleInstruction.getId()); 71 schedule.setComponentRegistry(componentRegistry); 72 schedule.setName(scheduleInstruction.getName()); 73 schedule.setJob((Runnable ) scheduleInstruction.getJob()); 74 schedule.setExpression(scheduleInstruction.getExpression()); 75 return schedule; 76 } 77 78 84 TriggerSchedule triggerSchedule(TriggerScheduleInstruction scheduleInstruction, 85 ComponentRegistry componentRegistry) { 86 TriggerSchedule schedule = new TriggerSchedule(); 87 schedule.setId(scheduleInstruction.getId()); 88 schedule.setComponentRegistry(componentRegistry); 89 schedule.setName(scheduleInstruction.getName()); 90 schedule.setJob((Runnable ) scheduleInstruction.getJob()); 91 schedule.setOn(scheduleInstruction.getOn()); 92 schedule.setState(scheduleInstruction.getState()); 93 return schedule; 94 } 95 96 } 97 | Popular Tags |