| DayAndPosition.java |
1 /**
2 * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3 *
4 *
5 *
6 *
7 * The contents of this file are subject to the terms of the Liferay Enterprise
8 * Subscription License ("License"). You may not use this file except in
9 * compliance with the License. You can obtain a copy of the License by
10 * contacting Liferay, Inc. See the License for the specific language governing
11 * permissions and limitations under the License, including but not limited to
12 * distribution rights of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
23 /*
24 * Copyright (c) 2000, Columbia University. All rights reserved.
25 *
26 * Redistribution and use in source and binary forms, with or without
27 * modification, are permitted provided that the following conditions are met:
28 *
29 * 1. Redistributions of source code must retain the above copyright
30 * notice, this list of conditions and the following disclaimer.
31 *
32 * 2. Redistributions in binary form must reproduce the above copyright
33 * notice, this list of conditions and the following disclaimer in the
34 * documentation and/or other materials provided with the distribution.
35 *
36 * 3. Neither the name of the University nor the names of its contributors
37 * may be used to endorse or promote products derived from this software
38 * without specific prior written permission.
39 *
40 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
41 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
42 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
44 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
46 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
47 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
48 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
49 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
50 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
51 */
52
53 package com.liferay.util.cal;
54
55 import java.io.Serializable;
56
57 import java.util.Calendar;
58
59 /**
60 * <a href="DayAndPosition.java.html"><b><i>View Source</i></b></a>
61 *
62 * @author Jonathan Lennox
63 * @deprecated This class has been repackaged at
64 * <code>com.liferay.portal.kernel.cal</code>.
65 */
66 public class DayAndPosition implements Cloneable, Serializable {
67
68 /**
69 * Field day
70 */
71 private int day;
72
73 /**
74 * Field position
75 */
76 private int position;
77
78 /**
79 * Field NO_WEEKDAY
80 */
81 public final static int NO_WEEKDAY = 0;
82
83 /**
84 * Constructor DayAndPosition
85 */
86 public DayAndPosition() {
87 day = NO_WEEKDAY;
88 position = 0;
89 }
90
91 /**
92 * Constructor DayAndPosition
93 */
94 public DayAndPosition(int d, int p) {
95 if (!isValidDayOfWeek(d)) {
96 throw new IllegalArgumentException("Invalid day of week");
97 }
98
99 if (!isValidDayPosition(p)) {
100 throw new IllegalArgumentException("Invalid day position");
101 }
102
103 day = d;
104 position = p;
105 }
106
107 /**
108 * Method getDayOfWeek
109 *
110 * @return int
111 */
112 public int getDayOfWeek() {
113 return day;
114 }
115
116 /**
117 * Method setDayOfWeek
118 */
119 public void setDayOfWeek(int d) {
120 if (!isValidDayOfWeek(d)) {
121 throw new IllegalArgumentException("Invalid day of week");
122 }
123
124 day = d;
125 }
126
127 /**
128 * Method getDayPosition
129 *
130 * @return int
131 */
132 public int getDayPosition() {
133 return position;
134 }
135
136 /**
137 * Method setDayPosition
138 */
139 public void setDayPosition(int p) {
140 if (!isValidDayPosition(p)) {
141 throw new IllegalArgumentException();
142 }
143
144 position = p;
145 }
146
147 /**
148 * Method equals
149 *
150 * @return boolean
151 */
152 public boolean equals(Object obj) {
153 if (obj == null) {
154 return false;
155 }
156
157 if (this == obj) {
158 return true;
159 }
160
161 if (!(obj instanceof DayAndPosition)) {
162 return false;
163 }
164
165 DayAndPosition that = (DayAndPosition)obj;
166
167 return (getDayOfWeek() == that.getDayOfWeek())
168 && (getDayPosition() == that.getDayPosition());
169 }
170
171 /**
172 * Method isValidDayOfWeek
173 *
174 * @return boolean
175 */
176 public static boolean isValidDayOfWeek(int d) {
177 switch (d) {
178
179 case NO_WEEKDAY :
180 case Calendar.SUNDAY :
181 case Calendar.MONDAY :
182 case Calendar.TUESDAY :
183 case Calendar.WEDNESDAY :
184 case Calendar.THURSDAY :
185 case Calendar.FRIDAY :
186 case Calendar.SATURDAY :
187 return true;
188
189 default :
190 return false;
191 }
192 }
193
194 /**
195 * Method isValidDayPosition
196 *
197 * @return boolean
198 */
199 public static boolean isValidDayPosition(int p) {
200 return ((p >= -53) && (p <= 53));
201 }
202
203 /**
204 * Method clone
205 *
206 * @return Object
207 */
208 public Object clone() {
209 try {
210 DayAndPosition other = (DayAndPosition)super.clone();
211
212 other.day = day;
213 other.position = position;
214
215 return other;
216 }
217 catch (CloneNotSupportedException e) {
218 throw new InternalError();
219 }
220 }
221
222 /**
223 * Method toString
224 *
225 * @return String
226 */
227 public String toString() {
228 StringBuilder sb = new StringBuilder();
229
230 sb.append(getClass().getName());
231 sb.append("[day=");
232 sb.append(day);
233 sb.append(",position=");
234 sb.append(position);
235 sb.append("]");
236
237 return sb.toString();
238 }
239
240 }