1
22
23 package com.liferay.portlet.calendar.model.impl;
24
25 import com.liferay.portal.SystemException;
26 import com.liferay.portal.kernel.cal.DayAndPosition;
27 import com.liferay.portal.kernel.cal.Duration;
28 import com.liferay.portal.kernel.cal.Recurrence;
29 import com.liferay.portal.kernel.util.Base64;
30 import com.liferay.portal.kernel.util.Validator;
31 import com.liferay.portal.util.PortalUtil;
32 import com.liferay.portal.util.PropsUtil;
33 import com.liferay.portlet.calendar.model.CalEvent;
34 import com.liferay.util.Time;
35
36
42 public class CalEventImpl extends CalEventModelImpl implements CalEvent {
43
44 public static final String[] TYPES =
45 PropsUtil.getArray(PropsUtil.CALENDAR_EVENT_TYPES);
46
47 public static final String BIRTHDAY = "birthday";
48
49 public static final String REMIND_BY_NONE = "none";
50
51 public static final String REMIND_BY_EMAIL = "email";
52
53 public static final String REMIND_BY_SMS = "sms";
54
55 public static final String REMIND_BY_AIM = "aim";
56
57 public static final String REMIND_BY_ICQ = "icq";
58
59 public static final String REMIND_BY_MSN = "msn";
60
61 public static final String REMIND_BY_YM = "ym";
62
63 public static final long[] REMINDERS = {
64 Time.MINUTE * 5, Time.MINUTE * 15, Time.MINUTE * 30, Time.HOUR,
65 Time.HOUR * 2, Time.HOUR * 3, Time.HOUR * 6, Time.HOUR * 12, Time.DAY,
66 Time.DAY * 2, Time.DAY * 3, Time.DAY * 4, Time.DAY * 5, Time.DAY * 6,
67 Time.DAY * 7, Time.DAY * 8, Time.DAY * 9, Time.DAY * 10, Time.DAY * 11,
68 Time.DAY * 12, Time.DAY * 13, Time.DAY * 14
69 };
70
71 public CalEventImpl() {
72 }
73
74 public String getUserUuid() throws SystemException {
75 return PortalUtil.getUserValue(getUserId(), "uuid", _userUuid);
76 }
77
78 public void setUserUuid(String userUuid) {
79 _userUuid = userUuid;
80 }
81
82 public void setRecurrence(String recurrence) {
83 _recurrenceObj = null;
84
85 super.setRecurrence(recurrence);
86 }
87
88
91 public Recurrence getRecurrenceObj() {
92 if (_recurrenceObj == null) {
93 String recurrence = getRecurrence();
94
95 if (Validator.isNotNull(recurrence)) {
96 Object obj = Base64.stringToObject(recurrence);
97
98 if (obj instanceof Recurrence) {
99 _recurrenceObj = (Recurrence)obj;
100 }
101 else if (obj instanceof com.liferay.util.cal.Recurrence) {
102 com.liferay.util.cal.Recurrence oldRecurrence =
103 (com.liferay.util.cal.Recurrence)obj;
104
105 com.liferay.util.cal.Duration oldDuration =
106 oldRecurrence.getDuration();
107
108 Duration duration = new Duration(
109 oldDuration.getDays(), oldDuration.getHours(),
110 oldDuration.getMinutes(), oldDuration.getSeconds());
111
112 duration.setWeeks(oldDuration.getWeeks());
113 duration.setInterval(oldDuration.getInterval());
114
115 _recurrenceObj = new Recurrence(
116 oldRecurrence.getDtStart(), duration,
117 oldRecurrence.getFrequency());
118
119 com.liferay.util.cal.DayAndPosition[] oldDayPos =
120 oldRecurrence.getByDay();
121
122 DayAndPosition[] dayPos = null;
123
124 if (oldDayPos != null) {
125 dayPos = new DayAndPosition[oldDayPos.length];
126
127 for (int i = 0; i < oldDayPos.length; i++) {
128 dayPos[i] = new DayAndPosition(
129 oldDayPos[i].getDayOfWeek(),
130 oldDayPos[i].getDayPosition());
131 }
132 }
133
134 _recurrenceObj.setByDay(dayPos);
135 _recurrenceObj.setByMonth(oldRecurrence.getByMonth());
136 _recurrenceObj.setByMonthDay(oldRecurrence.getByMonthDay());
137 _recurrenceObj.setInterval(oldRecurrence.getInterval());
138 _recurrenceObj.setOccurrence(oldRecurrence.getOccurrence());
139 _recurrenceObj.setWeekStart(oldRecurrence.getWeekStart());
140 _recurrenceObj.setUntil(oldRecurrence.getUntil());
141 }
142 }
143 }
144
145 return _recurrenceObj;
146 }
147
148 public void setRecurrenceObj(Recurrence recurrenceObj) {
149 _recurrenceObj = recurrenceObj;
150
151 super.setRecurrence(Base64.objectToString(recurrenceObj));
152 }
153
154 private String _userUuid;
155 private Recurrence _recurrenceObj = null;
156
157 }