001
014
015 package com.liferay.portal.kernel.scheduler;
016
017 import com.liferay.portal.kernel.messaging.MessageListener;
018 import com.liferay.portal.kernel.util.GetterUtil;
019 import com.liferay.portal.kernel.util.StringBundler;
020 import com.liferay.portal.kernel.util.StringPool;
021 import com.liferay.portal.kernel.util.Time;
022
023
026 public class SchedulerEntryImpl implements SchedulerEntry {
027
028 @Override
029 public String getDescription() {
030 return _description;
031 }
032
033
036 @Deprecated
037 @Override
038 public MessageListener getEventListener() {
039 return null;
040 }
041
042 @Override
043 public String getEventListenerClass() {
044 return _eventListenerClass;
045 }
046
047 @Override
048 public String getPropertyKey() {
049 return _propertyKey;
050 }
051
052 @Override
053 public TimeUnit getTimeUnit() {
054 return _timeUnit;
055 }
056
057 @Override
058 public Trigger getTrigger() throws SchedulerException {
059 if (_trigger != null) {
060 return _trigger;
061 }
062
063 if (_triggerType.equals(TriggerType.CRON)) {
064 _trigger = new CronTrigger(
065 _eventListenerClass, _eventListenerClass, _triggerValue);
066 }
067 else if (_triggerType.equals(TriggerType.SIMPLE)) {
068 long intervalTime = GetterUtil.getLong(_triggerValue);
069
070 if (_timeUnit.equals(TimeUnit.DAY)) {
071 intervalTime = intervalTime * Time.DAY;
072 }
073 else if (_timeUnit.equals(TimeUnit.HOUR)) {
074 intervalTime = intervalTime * Time.HOUR;
075 }
076 else if (_timeUnit.equals(TimeUnit.MINUTE)) {
077 intervalTime = intervalTime * Time.MINUTE;
078 }
079 else if (_timeUnit.equals(TimeUnit.WEEK)) {
080 intervalTime = intervalTime * Time.WEEK;
081 }
082 else {
083 intervalTime = intervalTime * Time.SECOND;
084 }
085
086 _trigger = new IntervalTrigger(
087 _eventListenerClass, _eventListenerClass, intervalTime);
088 }
089 else {
090 throw new SchedulerException(
091 "Unsupport trigger type " + _triggerType);
092 }
093
094 return _trigger;
095 }
096
097 @Override
098 public TriggerType getTriggerType() {
099 return _triggerType;
100 }
101
102 @Override
103 public String getTriggerValue() {
104 return _triggerValue;
105 }
106
107 @Override
108 public void setDescription(String description) {
109 _description = description;
110 }
111
112
115 @Deprecated
116 @Override
117 public void setEventListener(MessageListener eventListener) {
118 Class<?> clazz = eventListener.getClass();
119
120 setEventListenerClass(clazz.getName());
121 }
122
123 @Override
124 public void setEventListenerClass(String eventListenerClass) {
125 _eventListenerClass = eventListenerClass;
126 }
127
128 @Override
129 public void setPropertyKey(String propertyKey) {
130 _propertyKey = propertyKey;
131 }
132
133 @Override
134 public void setTimeUnit(TimeUnit timeUnit) {
135 _timeUnit = timeUnit;
136 }
137
138 @Override
139 public void setTriggerType(TriggerType triggerType) {
140 _triggerType = triggerType;
141 }
142
143 @Override
144 public void setTriggerValue(int triggerValue) {
145 _triggerValue = String.valueOf(triggerValue);
146 }
147
148 @Override
149 public void setTriggerValue(long triggerValue) {
150 _triggerValue = String.valueOf(triggerValue);
151 }
152
153 @Override
154 public void setTriggerValue(String triggerValue) {
155 _triggerValue = triggerValue;
156 }
157
158 @Override
159 public String toString() {
160 StringBundler sb = new StringBundler(15);
161
162 sb.append(", description=");
163 sb.append(_description);
164 sb.append(", eventListenerClass=");
165 sb.append(_eventListenerClass);
166 sb.append(", propertyKey=");
167 sb.append(_propertyKey);
168 sb.append(", timeUnit=");
169 sb.append(_timeUnit);
170 sb.append(", trigger=");
171 sb.append(_trigger);
172 sb.append(", triggerType=");
173 sb.append(_triggerType);
174 sb.append(", triggerValue=");
175 sb.append(_triggerValue);
176 sb.append("}");
177
178 return sb.toString();
179 }
180
181 private String _description = StringPool.BLANK;
182 private String _eventListenerClass = StringPool.BLANK;
183 private String _propertyKey = StringPool.BLANK;
184 private TimeUnit _timeUnit;
185 private Trigger _trigger;
186 private TriggerType _triggerType;
187 private String _triggerValue = StringPool.BLANK;
188
189 }