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 @Override
034 public MessageListener getEventListener() {
035 return _eventListener;
036 }
037
038 @Override
039 public String getEventListenerClass() {
040 return _eventListenerClass;
041 }
042
043 @Override
044 public String getPropertyKey() {
045 return _propertyKey;
046 }
047
048 @Override
049 public TimeUnit getTimeUnit() {
050 return _timeUnit;
051 }
052
053 @Override
054 public Trigger getTrigger() throws SchedulerException {
055 if (_trigger != null) {
056 return _trigger;
057 }
058
059 if (_triggerType.equals(TriggerType.CRON)) {
060 _trigger = new CronTrigger(
061 _eventListenerClass, _eventListenerClass, _triggerValue);
062 }
063 else if (_triggerType.equals(TriggerType.SIMPLE)) {
064 long intervalTime = GetterUtil.getLong(_triggerValue);
065
066 if (_timeUnit.equals(TimeUnit.DAY)) {
067 intervalTime = intervalTime * Time.DAY;
068 }
069 else if (_timeUnit.equals(TimeUnit.HOUR)) {
070 intervalTime = intervalTime * Time.HOUR;
071 }
072 else if (_timeUnit.equals(TimeUnit.MINUTE)) {
073 intervalTime = intervalTime * Time.MINUTE;
074 }
075 else if (_timeUnit.equals(TimeUnit.WEEK)) {
076 intervalTime = intervalTime * Time.WEEK;
077 }
078 else {
079 intervalTime = intervalTime * Time.SECOND;
080 }
081
082 _trigger = new IntervalTrigger(
083 _eventListenerClass, _eventListenerClass, intervalTime);
084 }
085 else {
086 throw new SchedulerException(
087 "Unsupport trigger type " + _triggerType);
088 }
089
090 return _trigger;
091 }
092
093 @Override
094 public TriggerType getTriggerType() {
095 return _triggerType;
096 }
097
098 @Override
099 public String getTriggerValue() {
100 return _triggerValue;
101 }
102
103 @Override
104 public void setDescription(String description) {
105 _description = description;
106 }
107
108 @Override
109 public void setEventListener(MessageListener eventListener) {
110 _eventListener = eventListener;
111 }
112
113 @Override
114 public void setEventListenerClass(String eventListenerClass) {
115 _eventListenerClass = eventListenerClass;
116 }
117
118 @Override
119 public void setPropertyKey(String propertyKey) {
120 _propertyKey = propertyKey;
121 }
122
123 @Override
124 public void setTimeUnit(TimeUnit timeUnit) {
125 _timeUnit = timeUnit;
126 }
127
128 @Override
129 public void setTriggerType(TriggerType triggerType) {
130 _triggerType = triggerType;
131 }
132
133 @Override
134 public void setTriggerValue(int triggerValue) {
135 _triggerValue = String.valueOf(triggerValue);
136 }
137
138 @Override
139 public void setTriggerValue(long triggerValue) {
140 _triggerValue = String.valueOf(triggerValue);
141 }
142
143 @Override
144 public void setTriggerValue(String triggerValue) {
145 _triggerValue = triggerValue;
146 }
147
148 @Override
149 public String toString() {
150 StringBundler sb = new StringBundler(17);
151
152 sb.append(", description=");
153 sb.append(_description);
154 sb.append(", eventListener=");
155 sb.append(_eventListener);
156 sb.append(", eventListenerClass=");
157 sb.append(_eventListenerClass);
158 sb.append(", propertyKey=");
159 sb.append(_propertyKey);
160 sb.append(", timeUnit=");
161 sb.append(_timeUnit);
162 sb.append(", trigger=");
163 sb.append(_trigger);
164 sb.append(", triggerType=");
165 sb.append(_triggerType);
166 sb.append(", triggerValue=");
167 sb.append(_triggerValue);
168 sb.append("}");
169
170 return sb.toString();
171 }
172
173 private String _description = StringPool.BLANK;
174 private transient MessageListener _eventListener;
175 private String _eventListenerClass = StringPool.BLANK;
176 private String _propertyKey = StringPool.BLANK;
177 private TimeUnit _timeUnit;
178 private Trigger _trigger;
179 private TriggerType _triggerType;
180 private String _triggerValue = StringPool.BLANK;
181
182 }