Source code: org/media/mn8/util/cron/CronScheduledEntry.java
1 /*
2 * $COPYRIGHT$
3 * $Id: CronScheduledEntry.java,v 1.1 2002/10/25 20:40:49 atech Exp $
4 *
5 * Date Author Changes
6 * May 16 2002 Antal Attila Created
7 */
8
9
10 package org.media.mn8.util.cron;
11
12 import org.media.mn8.concepts.SeriesConcept;
13
14 final class CronScheduledEntry implements Comparable {
15 protected final String m_name;
16 protected final Trigger m_trigger;
17 protected final String m_target;
18
19 protected long m_time;
20 protected boolean m_isValid;
21
22 private boolean m_isMethod;
23 private SeriesConcept m_params;
24
25 public CronScheduledEntry( String name, Trigger trigger, String target ) {
26 m_name = name;
27 m_trigger = trigger;
28 m_target = target;
29 m_isValid = true;
30 m_isMethod = false;
31 }
32
33
34 public CronScheduledEntry( String name, Trigger trigger,
35 String target, SeriesConcept params ) {
36 m_name = name;
37 m_trigger = trigger;
38 m_target = target;
39 m_isValid = true;
40 m_isMethod = true;
41 m_params = params;
42 }
43
44
45 public SeriesConcept getParams() {
46 return m_params;
47 }
48
49 public boolean isMethod() {
50 return m_isMethod;
51 }
52
53
54 /**
55 * Return name of trigger.
56 *
57 * @return the name of trigger
58 */
59 public String getName() {
60 return m_name;
61 }
62
63 public String getTarget() {
64 return m_target;
65 }
66
67 public Trigger getTimeTrigger() {
68 return m_trigger;
69 }
70
71 /**
72 * Determine if this entry is valid
73 *
74 * @return true if trigger is valid, false otherwise
75 */
76 public boolean isValid()
77 {
78 return m_isValid;
79 }
80
81 /**
82 * Invalidate trigger
83 */
84 public void invalidate() {
85 m_isValid = false;
86 }
87
88 /**
89 * Retrieve cached time when trigger should run next.
90 *
91 * @return the time in milliseconds when trigger should run
92 */
93 public long getNextTime() {
94 return m_time;
95 }
96
97 /**
98 * Set cached time in milliseconds when trigger should run
99 *
100 * @param time the time
101 */
102 public void setNextTime( long time ) {
103 m_time = time;
104 }
105
106 /**
107 * Implement comparable interface used to help sort triggers.
108 * Triggers are compared based on next time to run
109 *
110 * @param object the other trigger
111 * @return -'ve value if other trigger occurs before this trigger
112 */
113 public int compareTo( final Object object ) {
114 final CronScheduledEntry other = (CronScheduledEntry)object;
115 return (int)-(other.m_time - m_time);
116 }
117
118 public String toString() {
119 return "TimeEntry[ name=" + m_name + " valid=" + m_isValid + " time=" + m_time;
120 }
121 }
122