1
14
15 package com.liferay.portal.kernel.scheduler;
16
17 import com.liferay.portal.kernel.messaging.MessageListener;
18 import com.liferay.portal.kernel.util.GetterUtil;
19 import com.liferay.portal.kernel.util.PrefsPropsUtil;
20 import com.liferay.portal.kernel.util.Time;
21
22
27 public class SchedulerEntryImpl implements SchedulerEntry {
28
29 public String getDescription() {
30 return _description;
31 }
32
33 public MessageListener getEventListener() {
34 return _eventListener;
35 }
36
37 public String getEventListenerClass() {
38 return _eventListenerClass;
39 }
40
41 public TimeUnit getTimeUnit() {
42 return _timeUnit;
43 }
44
45 public Trigger getTrigger() throws SchedulerException {
46 if (_trigger != null) {
47 return _trigger;
48 }
49
50 String triggerValue = _triggerValue;
51
52 if (_readProperty) {
53 try {
54 triggerValue = PrefsPropsUtil.getString(triggerValue);
55 }
56 catch (Exception e) {
57 throw new SchedulerException(
58 "Unable to get trigger value " + triggerValue, e);
59 }
60 }
61
62 if (_triggerType == TriggerType.CRON) {
63 _trigger = new CronTrigger(
64 _eventListenerClass, _eventListenerClass, triggerValue);
65 }
66 else if (_triggerType == TriggerType.SIMPLE) {
67 long intervalTime = GetterUtil.getLong(triggerValue);
68
69 if (_timeUnit.equals(TimeUnit.DAY)) {
70 intervalTime = intervalTime * Time.DAY;
71 }
72 else if (_timeUnit.equals(TimeUnit.HOUR)) {
73 intervalTime = intervalTime * Time.HOUR;
74 }
75 else if (_timeUnit.equals(TimeUnit.MINUTE)) {
76 intervalTime = intervalTime * Time.MINUTE;
77 }
78 else if (_timeUnit.equals(TimeUnit.WEEK)) {
79 intervalTime = intervalTime * Time.WEEK;
80 }
81 else {
82 intervalTime = intervalTime * Time.SECOND;
83 }
84
85 _trigger = new IntervalTrigger(
86 _eventListenerClass, _eventListenerClass, intervalTime);
87 }
88 else {
89 throw new SchedulerException(
90 "Unsupport trigger type " + _triggerType);
91 }
92
93 return _trigger;
94 }
95
96 public TriggerType getTriggerType() {
97 return _triggerType;
98 }
99
100 public String getTriggerValue() {
101 return _triggerValue;
102 }
103
104 public boolean isReadProperty() {
105 return _readProperty;
106 }
107
108 public void setDescription(String description) {
109 _description = description;
110 }
111
112 public void setEventListener(MessageListener eventListener) {
113 _eventListener = eventListener;
114 }
115
116 public void setEventListenerClass(String eventListenerClass) {
117 _eventListenerClass = eventListenerClass;
118 }
119
120 public void setReadProperty(boolean readProperty) {
121 _readProperty = readProperty;
122 }
123
124 public void setTimeUnit(TimeUnit timeUnit) {
125 _timeUnit = timeUnit;
126 }
127
128 public void setTriggerType(TriggerType triggerType) {
129 _triggerType = triggerType;
130 }
131
132 public void setTriggerValue(String triggerValue) {
133 _triggerValue = triggerValue;
134 }
135
136 public String toString() {
137 StringBuilder sb = new StringBuilder();
138
139 sb.append("{description=");
140 sb.append(_description);
141 sb.append(", eventListener=");
142 sb.append(_eventListener);
143 sb.append(", eventListenerClass=");
144 sb.append(_eventListenerClass);
145 sb.append(", readProperty=");
146 sb.append(_readProperty);
147 sb.append(", timeUnit=");
148 sb.append(_timeUnit);
149 sb.append(", trigger=");
150 sb.append(_trigger);
151 sb.append(", triggerType=");
152 sb.append(_triggerType);
153 sb.append(", triggerValue=");
154 sb.append(_triggerValue);
155 sb.append("}");
156
157 return sb.toString();
158 }
159
160 private String _description;
161 private MessageListener _eventListener;
162 private String _eventListenerClass;
163 private boolean _readProperty;
164 private TimeUnit _timeUnit;
165 private Trigger _trigger;
166 private TriggerType _triggerType;
167 private String _triggerValue;
168
169 }