All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.myfaces.custom.schedule.model.Day Maven / Gradle / Ivy

Go to download

JSF components and utilities that can be used with any JSF implementation. This library is compatible with both JSF1.1 and JSF1.2; however for JSF1.2 users there is an alternative build of Tomahawk available that takes advantage of JSF1.2 features to offer some additional benefits.

There is a newer version: 1.1.14
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.myfaces.custom.schedule.model;


import java.io.Serializable;

import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.TimeZone;
import java.util.TreeSet;

import org.apache.myfaces.custom.schedule.util.ScheduleUtil;


/**
 * 

* This class represents a day in the Schedule component *

* * @author Jurgen Lust (latest modification by $Author: werpu $) * @version $Revision: 371736 $ */ public class Day implements Serializable, Comparable { //~ Instance fields -------------------------------------------------------- /** * serial id for serialisation versioning */ private static final long serialVersionUID = 1L; private final Date date; private final Date dayEnd; private final Date dayStart; private String specialDayName; private boolean workingDay; private TreeSet intervals; private final TimeZone timeZone; //~ Constructors ----------------------------------------------------------- /** * Creates a new Day object. * * @param date the date * * @throws NullPointerException when the date is null */ public Day(Date date) { this(date, TimeZone.getDefault()); } /** * Creates a new Day object. * * @param date the date * @param timeZone The timezone * * @throws NullPointerException when the date is null */ public Day(Date date, TimeZone timeZone) { this.date = date; this.timeZone = timeZone; if (date == null) { throw new NullPointerException("date should not be null"); } Calendar cal = getCalendarInstance(date); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); this.dayStart = cal.getTime(); cal.add(Calendar.DATE, 1); this.dayEnd = cal.getTime(); } //~ Methods ---------------------------------------------------------------- protected Calendar getCalendarInstance(Date date) { return ScheduleUtil.getCalendarInstance(date, timeZone); } /** * @return Returns the date. */ public Date getDate() { return (date == null) ? new Date() : date; } /** * @return Returns 12PM of this day */ public Date getDayEnd() { return dayEnd; } /** * @return Returns 0AM of this day */ public Date getDayStart() { return dayStart; } /** *

* If this day is a holiday of some kind, this sets the name *

* * @param specialDayName The specialDayName to set. */ public void setSpecialDayName(String specialDayName) { this.specialDayName = specialDayName; } /** *

* If this day is a holiday of some kind, this gets the name *

* * @return Returns the specialDayName. */ public String getSpecialDayName() { return specialDayName; } /** *

* Is this day a working day? *

* * @param workingDay The workingDay to set. */ public void setWorkingDay(boolean workingDay) { this.workingDay = workingDay; } /** *

* Is this day a working day? *

* * @return Returns the workingDay. */ public boolean isWorkingDay() { Calendar cal = getCalendarInstance(date); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); if ((dayOfWeek == Calendar.SATURDAY) || (dayOfWeek == Calendar.SUNDAY)) { return false; } return workingDay; } /** * * @return A chronologically ordered set of intervals. */ public TreeSet getIntervals() { return intervals; } /** * Set user defined intervals during the day. * * @param intervals A Collection of intervals during the day */ public void setIntervals(Collection intervals) { if (intervals instanceof TreeSet) { this.intervals = (TreeSet) intervals; } else { this.intervals = new TreeSet(intervals); } } public void addInterval(String label, Date startTime, Date endTime) { if (intervals == null) { intervals = new TreeSet(); } intervals.add(new Interval(label, startTime, endTime)); } /** * @see java.lang.Comparable#compareTo(java.lang.Object) */ public int compareTo(Object o) { if (o instanceof Day) { Day other = (Day) o; int returnint = ScheduleUtil.compareDays(date, other.getDate(), timeZone); return returnint; } return 1; } /** * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object o) { if (o instanceof Day) { Day other = (Day) o; return ScheduleUtil.isSameDay(date, other.getDate(), timeZone); } return false; } /** *

* Check if the specified date is on this day *

* * @param date the date to check * * @return if the date is on this day */ public boolean equalsDate(Date date) { if (date == null) { return false; } return ScheduleUtil.isSameDay(date, this.date, timeZone); } /** * @see java.lang.Object#hashCode() */ public int hashCode() { return ScheduleUtil.getHashCodeForDay(date, timeZone); } } //The End




© 2015 - 2024 Weber Informatics LLC | Privacy Policy