An interface to be implemented by objects that define spaces of time during which an associated {@link Trigger}
may fire. Calendars do not define actual fire times, but rather are used to limit a Trigger
from firing on its normal schedule if necessary. Most Calendars include all times by default and allow the user to specify times to exclude. As such, it is often useful to think of Calendars as being used to exclude a block of time — as opposed to include a block of time. (i.e. the schedule "fire every five minutes except on Sundays" could be implemented with a SimpleTrigger
and a WeeklyCalendar
which excludes Sundays)
Implementations MUST take care of being properly Cloneable
and Serializable
.
@author James House
@author Juergen Donnerstag