001
014
015
044
045 package com.liferay.portal.kernel.cal;
046
047 import com.liferay.portal.kernel.util.HashCode;
048 import com.liferay.portal.kernel.util.HashCodeFactoryUtil;
049 import com.liferay.portal.kernel.util.StringBundler;
050
051 import java.io.Serializable;
052
053 import java.util.Calendar;
054
055
058 public class DayAndPosition implements Cloneable, Serializable {
059
060
063 public static final int NO_WEEKDAY = 0;
064
065
070 public static boolean isValidDayOfWeek(int d) {
071 switch (d) {
072
073 case NO_WEEKDAY :
074 case Calendar.SUNDAY :
075 case Calendar.MONDAY :
076 case Calendar.TUESDAY :
077 case Calendar.WEDNESDAY :
078 case Calendar.THURSDAY :
079 case Calendar.FRIDAY :
080 case Calendar.SATURDAY :
081 return true;
082
083 default :
084 return false;
085 }
086 }
087
088
093 public static boolean isValidDayPosition(int p) {
094 return ((p >= -53) && (p <= 53));
095 }
096
097
100 public DayAndPosition() {
101 _day = NO_WEEKDAY;
102 _position = 0;
103 }
104
105
108 public DayAndPosition(int d, int p) {
109 if (!isValidDayOfWeek(d)) {
110 throw new IllegalArgumentException("Invalid day of week");
111 }
112
113 if (!isValidDayPosition(p)) {
114 throw new IllegalArgumentException("Invalid day position");
115 }
116
117 _day = d;
118 _position = p;
119 }
120
121
126 @Override
127 public Object clone() {
128 try {
129 DayAndPosition other = (DayAndPosition)super.clone();
130
131 other._day = _day;
132 other._position = _position;
133
134 return other;
135 }
136 catch (CloneNotSupportedException e) {
137 throw new InternalError();
138 }
139 }
140
141
146 @Override
147 public boolean equals(Object obj) {
148 if (obj == null) {
149 return false;
150 }
151
152 if (this == obj) {
153 return true;
154 }
155
156 if (!(obj instanceof DayAndPosition)) {
157 return false;
158 }
159
160 DayAndPosition that = (DayAndPosition)obj;
161
162 return (getDayOfWeek() == that.getDayOfWeek())
163 && (getDayPosition() == that.getDayPosition());
164 }
165
166
171 public int getDayOfWeek() {
172 return _day;
173 }
174
175
180 public int getDayPosition() {
181 return _position;
182 }
183
184 @Override
185 public int hashCode() {
186 HashCode hashCode = HashCodeFactoryUtil.getHashCode();
187
188 hashCode.append(_day);
189 hashCode.append(_position);
190
191 return hashCode.toHashCode();
192 }
193
194
197 public void setDayOfWeek(int d) {
198 if (!isValidDayOfWeek(d)) {
199 throw new IllegalArgumentException("Invalid day of week");
200 }
201
202 _day = d;
203 }
204
205
208 public void setDayPosition(int p) {
209 if (!isValidDayPosition(p)) {
210 throw new IllegalArgumentException();
211 }
212
213 _position = p;
214 }
215
216
221 @Override
222 public String toString() {
223 StringBundler sb = new StringBundler(6);
224
225 sb.append(getClass().getName());
226 sb.append("[day=");
227 sb.append(_day);
228 sb.append(",position=");
229 sb.append(_position);
230 sb.append("]");
231
232 return sb.toString();
233 }
234
235
238 private int _day;
239
240
243 private int _position;
244
245 }