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