KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > quartz > QuartzScheduleFactory


1 /*
2  * (c) Rob Gordon 2005
3  */

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 /**
13  * Create a QuartzSchedule object from a ScheduleInstruction.
14  *
15  * @author Rob Gordon.
16  */

17 public class QuartzScheduleFactory {
18
19     /**
20      * Create a QuartzSchedule object from the given ScheduleInsruction.
21      * @param si The ScheduleInstruction.
22      * @return A QuartzSchedule.
23      */

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 JavaDoc("Unable to create QuartzSchedule for ["
39                 + si + "]");
40     }
41     
42     /**
43      * Create an OddJob QuartzSchedule.
44      *
45      * @param scheduleInstruction The ScheduleInsruction.
46      * @return An OddjobSchedule.
47      */

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 JavaDoc) scheduleInstruction.getJob());
55         schedule.setRetry(scheduleInstruction.getRetry());
56         schedule.setSchedule(scheduleInstruction.getSchedule());
57         schedule.setTimeZone(scheduleInstruction.getTimeZone());
58         return schedule;
59     }
60     
61     /**
62      * Create a CronSchedule QuartzSchedule.
63      *
64      * @param scheduleInstruction The ScheduleInstruction.
65      * @return The CronSchedule.
66      */

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 JavaDoc) scheduleInstruction.getJob());
74         schedule.setExpression(scheduleInstruction.getExpression());
75         return schedule;
76     }
77
78     /**
79      * Create a TriggerSchedule QuartzSchedule.
80      *
81      * @param scheduleInstruction The ScheduleInstruction.
82      * @return The TriggerSchedule.
83      */

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 JavaDoc) scheduleInstruction.getJob());
91         schedule.setOn(scheduleInstruction.getOn());
92         schedule.setState(scheduleInstruction.getState());
93         return schedule;
94     }
95
96 }
97
Popular Tags