org.quartz.impl.calendar
Class BaseCalendar

java.lang.Object
  extended by org.quartz.impl.calendar.BaseCalendar
All Implemented Interfaces:
Serializable, Cloneable, Calendar
Direct Known Subclasses:
AnnualCalendar, CronCalendar, DailyCalendar, HolidayCalendar, MonthlyCalendar, WeeklyCalendar

public class BaseCalendar
extends Object
implements Calendar, Serializable, Cloneable

This implementation of the Calendar may be used (you don't have to) as a base class for more sophisticated one's. It merely implements the base functionality required by each Calendar.

Regarded as base functionality is the treatment of base calendars. Base calendar allow you to chain (stack) as much calendars as you may need. For example to exclude weekends you may use WeeklyCalendar. In order to exclude holidays as well you may define a WeeklyCalendar instance to be the base calendar for HolidayCalendar instance.

Author:
Juergen Donnerstag, James House
See Also:
Calendar, Serialized Form

Field Summary
 
Fields inherited from interface org.quartz.Calendar
MONTH
 
Constructor Summary
BaseCalendar()
           
BaseCalendar(Calendar baseCalendar)
           
BaseCalendar(Calendar baseCalendar, TimeZone timeZone)
           
BaseCalendar(TimeZone timeZone)
           
 
Method Summary
 Object clone()
           
protected  Calendar createJavaCalendar()
          Build a Calendar with the current time.
protected  Calendar createJavaCalendar(long timeStamp)
          Build a Calendar for the given timeStamp.
 Calendar getBaseCalendar()
           Get the base calendar.
 String getDescription()
           Return the description given to the Calendar instance by its creator (if any).
protected  Calendar getEndOfDayJavaCalendar(long timeInMillis)
          Returns the end of the given day Calendar.
 long getNextIncludedTime(long timeStamp)
           Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time.
protected  Calendar getStartOfDayJavaCalendar(long timeInMillis)
          Returns the start of the given day as a Calendar.
 TimeZone getTimeZone()
          Returns the time zone for which this Calendar will be resolved.
 boolean isTimeIncluded(long timeStamp)
           Check if date/time represented by timeStamp is included.
 void setBaseCalendar(Calendar baseCalendar)
           Set a new base calendar or remove the existing one
 void setDescription(String description)
           Set a description for the Calendar instance - may be useful for remembering/displaying the purpose of the calendar, though the description has no meaning to Quartz.
 void setTimeZone(TimeZone timeZone)
          Sets the time zone for which this Calendar will be resolved.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BaseCalendar

public BaseCalendar()

BaseCalendar

public BaseCalendar(Calendar baseCalendar)

BaseCalendar

public BaseCalendar(TimeZone timeZone)
Parameters:
timeZone - The time zone to use for this Calendar, null if TimeZone.getDefault() should be used

BaseCalendar

public BaseCalendar(Calendar baseCalendar,
                    TimeZone timeZone)
Parameters:
timeZone - The time zone to use for this Calendar, null if TimeZone.getDefault() should be used
Method Detail

clone

public Object clone()
Specified by:
clone in interface Calendar
Overrides:
clone in class Object

setBaseCalendar

public void setBaseCalendar(Calendar baseCalendar)

Set a new base calendar or remove the existing one

Specified by:
setBaseCalendar in interface Calendar

getBaseCalendar

public Calendar getBaseCalendar()

Get the base calendar. Will be null, if not set.

Specified by:
getBaseCalendar in interface Calendar

getDescription

public String getDescription()

Return the description given to the Calendar instance by its creator (if any).

Specified by:
getDescription in interface Calendar
Returns:
null if no description was set.

setDescription

public void setDescription(String description)

Set a description for the Calendar instance - may be useful for remembering/displaying the purpose of the calendar, though the description has no meaning to Quartz.

Specified by:
setDescription in interface Calendar

getTimeZone

public TimeZone getTimeZone()
Returns the time zone for which this Calendar will be resolved.

Returns:
This Calendar's timezone, null if Calendar should use the TimeZone.getDefault()

setTimeZone

public void setTimeZone(TimeZone timeZone)
Sets the time zone for which this Calendar will be resolved.

Parameters:
timeZone - The time zone to use for this Calendar, null if TimeZone.getDefault() should be used

isTimeIncluded

public boolean isTimeIncluded(long timeStamp)

Check if date/time represented by timeStamp is included. If included return true. The implementation of BaseCalendar simply calls the base calendars isTimeIncluded() method if base calendar is set.

Specified by:
isTimeIncluded in interface Calendar
See Also:
Calendar.isTimeIncluded(long)

getNextIncludedTime

public long getNextIncludedTime(long timeStamp)

Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return 0 if all days are excluded.

Specified by:
getNextIncludedTime in interface Calendar
See Also:
Calendar.getNextIncludedTime(long)

createJavaCalendar

protected Calendar createJavaCalendar(long timeStamp)
Build a Calendar for the given timeStamp. The new Calendar will use the BaseCalendar time zone if it is not null.


createJavaCalendar

protected Calendar createJavaCalendar()
Build a Calendar with the current time. The new Calendar will use the BaseCalendar time zone if it is not null.


getStartOfDayJavaCalendar

protected Calendar getStartOfDayJavaCalendar(long timeInMillis)
Returns the start of the given day as a Calendar. This calculation will take the BaseCalendar time zone into account if it is not null.

Parameters:
timeInMillis - A time containing the desired date for the start-of-day time
Returns:
A Calendar set to the start of the given day.

getEndOfDayJavaCalendar

protected Calendar getEndOfDayJavaCalendar(long timeInMillis)
Returns the end of the given day Calendar. This calculation will take the BaseCalendar time zone into account if it is not null.

Parameters:
timeInMillis - a time containing the desired date for the end-of-day time.
Returns:
A Calendar set to the end of the given day.


Copyright 2001-2015, Terracotta, Inc.