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