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