DayAndPosition.java |
1 /** 2 * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a copy 5 * of this software and associated documentation files (the "Software"), to deal 6 * in the Software without restriction, including without limitation the rights 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 * copies of the Software, and to permit persons to whom the Software is 9 * furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions 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 * 64 * @deprecated This class has been repackaged at 65 * <code>com.liferay.portal.kernel.cal</code>. 66 * 67 */ 68 public class DayAndPosition implements Cloneable, Serializable { 69 70 /** 71 * Field day 72 */ 73 private int day; 74 75 /** 76 * Field position 77 */ 78 private int position; 79 80 /** 81 * Field NO_WEEKDAY 82 */ 83 public final static int NO_WEEKDAY = 0; 84 85 /** 86 * Constructor DayAndPosition 87 * 88 * 89 */ 90 public DayAndPosition() { 91 day = NO_WEEKDAY; 92 position = 0; 93 } 94 95 /** 96 * Constructor DayAndPosition 97 * 98 * 99 * @param d 100 * @param p 101 * 102 */ 103 public DayAndPosition(int d, int p) { 104 if (!isValidDayOfWeek(d)) { 105 throw new IllegalArgumentException("Invalid day of week"); 106 } 107 108 if (!isValidDayPosition(p)) { 109 throw new IllegalArgumentException("Invalid day position"); 110 } 111 112 day = d; 113 position = p; 114 } 115 116 /** 117 * Method getDayOfWeek 118 * 119 * 120 * @return int 121 * 122 */ 123 public int getDayOfWeek() { 124 return day; 125 } 126 127 /** 128 * Method setDayOfWeek 129 * 130 * 131 * @param d 132 * 133 */ 134 public void setDayOfWeek(int d) { 135 if (!isValidDayOfWeek(d)) { 136 throw new IllegalArgumentException("Invalid day of week"); 137 } 138 139 day = d; 140 } 141 142 /** 143 * Method getDayPosition 144 * 145 * 146 * @return int 147 * 148 */ 149 public int getDayPosition() { 150 return position; 151 } 152 153 /** 154 * Method setDayPosition 155 * 156 * 157 * @param p 158 * 159 */ 160 public void setDayPosition(int p) { 161 if (!isValidDayPosition(p)) { 162 throw new IllegalArgumentException(); 163 } 164 165 position = p; 166 } 167 168 /** 169 * Method equals 170 * 171 * 172 * @param obj 173 * 174 * @return boolean 175 * 176 */ 177 public boolean equals(Object obj) { 178 if (obj == null) { 179 return false; 180 } 181 182 if (this == obj) { 183 return true; 184 } 185 186 if (!(obj instanceof DayAndPosition)) { 187 return false; 188 } 189 190 DayAndPosition that = (DayAndPosition)obj; 191 192 return (getDayOfWeek() == that.getDayOfWeek()) 193 && (getDayPosition() == that.getDayPosition()); 194 } 195 196 /** 197 * Method isValidDayOfWeek 198 * 199 * 200 * @param d 201 * 202 * @return boolean 203 * 204 */ 205 public static boolean isValidDayOfWeek(int d) { 206 switch (d) { 207 208 case NO_WEEKDAY : 209 case Calendar.SUNDAY : 210 case Calendar.MONDAY : 211 case Calendar.TUESDAY : 212 case Calendar.WEDNESDAY : 213 case Calendar.THURSDAY : 214 case Calendar.FRIDAY : 215 case Calendar.SATURDAY : 216 return true; 217 218 default : 219 return false; 220 } 221 } 222 223 /** 224 * Method isValidDayPosition 225 * 226 * 227 * @param p 228 * 229 * @return boolean 230 * 231 */ 232 public static boolean isValidDayPosition(int p) { 233 return ((p >= -53) && (p <= 53)); 234 } 235 236 /** 237 * Method clone 238 * 239 * 240 * @return Object 241 * 242 */ 243 public Object clone() { 244 try { 245 DayAndPosition other = (DayAndPosition)super.clone(); 246 247 other.day = day; 248 other.position = position; 249 250 return other; 251 } 252 catch (CloneNotSupportedException e) { 253 throw new InternalError(); 254 } 255 } 256 257 /** 258 * Method toString 259 * 260 * 261 * @return String 262 * 263 */ 264 public String toString() { 265 StringBuilder sb = new StringBuilder(); 266 267 sb.append(getClass().getName()); 268 sb.append("[day="); 269 sb.append(day); 270 sb.append(",position="); 271 sb.append(position); 272 sb.append("]"); 273 274 return sb.toString(); 275 } 276 277 }