Package org.quartz.impl.calendar
Class CronCalendar
- java.lang.Object
-
- org.quartz.impl.calendar.BaseCalendar
-
- org.quartz.impl.calendar.CronCalendar
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,Calendar
public class CronCalendar extends BaseCalendar
This implementation of the Calendar excludes the set of times expressed by a givenCronExpression. For example, you could use this calendar to exclude all but business hours (8AM - 5PM) every day using the expression "* * 0-7,18-23 ? * *".It is important to remember that the cron expression here describes a set of times to be excluded from firing. Whereas the cron expression in
CronTriggerdescribes a set of times that can be included for firing. Thus, if aCronTriggerhas a given cron expression and is associated with aCronCalendarwith the same expression, the calendar will exclude all the times the trigger includes, and they will cancel each other out.- Author:
- Aaron Craven
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description CronCalendar(java.lang.String expression)Create aCronCalendarwith the given cron expression and nobaseCalendar.CronCalendar(Calendar baseCalendar, java.lang.String expression)Create aCronCalendarwith the given cron expression andbaseCalendar.CronCalendar(Calendar baseCalendar, java.lang.String expression, java.util.TimeZone timeZone)Create aCronCalendarwith the given cron expression,baseCalendar, andTimeZone.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectclone()CronExpressiongetCronExpression()Returns the object representation of the cron expression that defines the dates and times this calendar excludes.longgetNextIncludedTime(long timeInMillis)Determines the next time included by theCronCalendarafter the specified time.java.util.TimeZonegetTimeZone()Returns the time zone for which theCronExpressionof thisCronCalendarwill be resolved.booleanisTimeIncluded(long timeInMillis)Determines whether the given time (in milliseconds) is 'included' by theBaseCalendarvoidsetCronExpression(java.lang.String expression)Sets the cron expression for the calendar to a new valuevoidsetCronExpression(CronExpression expression)Sets the cron expression for the calendar to a new valuevoidsetTimeZone(java.util.TimeZone timeZone)Sets the time zone for which theCronExpressionof thisCronCalendarwill be resolved.java.lang.StringtoString()Returns a string representing the properties of theCronCalendar-
Methods inherited from class org.quartz.impl.calendar.BaseCalendar
createJavaCalendar, createJavaCalendar, getBaseCalendar, getDescription, getEndOfDayJavaCalendar, getStartOfDayJavaCalendar, setBaseCalendar, setDescription
-
-
-
-
Constructor Detail
-
CronCalendar
public CronCalendar(java.lang.String expression) throws java.text.ParseExceptionCreate aCronCalendarwith the given cron expression and nobaseCalendar.- Parameters:
expression- a String representation of the desired cron expression- Throws:
java.text.ParseException
-
CronCalendar
public CronCalendar(Calendar baseCalendar, java.lang.String expression) throws java.text.ParseException
Create aCronCalendarwith the given cron expression andbaseCalendar.- Parameters:
baseCalendar- the base calendar for this calendar instance – seeBaseCalendarfor more information on base calendar functionalityexpression- a String representation of the desired cron expression- Throws:
java.text.ParseException
-
CronCalendar
public CronCalendar(Calendar baseCalendar, java.lang.String expression, java.util.TimeZone timeZone) throws java.text.ParseException
Create aCronCalendarwith the given cron expression,baseCalendar, andTimeZone.- Parameters:
baseCalendar- the base calendar for this calendar instance – seeBaseCalendarfor more information on base calendar functionalityexpression- a String representation of the desired cron expressiontimeZone- Specifies for which time zone theexpressionshould be interpreted, i.e. the expression 0 0 10 * * ?, is resolved to 10:00 am in this time zone. IftimeZoneisnullthenTimeZone.getDefault()will be used.- Throws:
java.text.ParseException
-
-
Method Detail
-
clone
public java.lang.Object clone()
- Specified by:
clonein interfaceCalendar- Overrides:
clonein classBaseCalendar
-
getTimeZone
public java.util.TimeZone getTimeZone()
Returns the time zone for which theCronExpressionof thisCronCalendarwill be resolved.Overrides
to defer to itsBaseCalendar.getTimeZone()CronExpression.- Overrides:
getTimeZonein classBaseCalendar- Returns:
- This Calendar's timezone,
nullif Calendar should use theTimeZone.getDefault()
-
setTimeZone
public void setTimeZone(java.util.TimeZone timeZone)
Sets the time zone for which theCronExpressionof thisCronCalendarwill be resolved. IftimeZoneisnullthenTimeZone.getDefault()will be used.Overrides
to defer to itsBaseCalendar.setTimeZone(TimeZone)CronExpression.- Overrides:
setTimeZonein classBaseCalendar- Parameters:
timeZone- The time zone to use for this Calendar,nullifshould be usedTimeZone.getDefault()
-
isTimeIncluded
public boolean isTimeIncluded(long timeInMillis)
Determines whether the given time (in milliseconds) is 'included' by theBaseCalendar- Specified by:
isTimeIncludedin interfaceCalendar- Overrides:
isTimeIncludedin classBaseCalendar- Parameters:
timeInMillis- the date/time to test- Returns:
- a boolean indicating whether the specified time is 'included' by
the
CronCalendar - See Also:
Calendar.isTimeIncluded(long)
-
getNextIncludedTime
public long getNextIncludedTime(long timeInMillis)
Determines the next time included by theCronCalendarafter the specified time.- Specified by:
getNextIncludedTimein interfaceCalendar- Overrides:
getNextIncludedTimein classBaseCalendar- Parameters:
timeInMillis- the initial date/time after which to find an included time- Returns:
- the time in milliseconds representing the next time included after the specified time.
- See Also:
Calendar.getNextIncludedTime(long)
-
toString
public java.lang.String toString()
Returns a string representing the properties of theCronCalendar- Overrides:
toStringin classjava.lang.Object- Returns:
- the properties of the CronCalendar in a String format
-
getCronExpression
public CronExpression getCronExpression()
Returns the object representation of the cron expression that defines the dates and times this calendar excludes.- Returns:
- the cron expression
- See Also:
CronExpression
-
setCronExpression
public void setCronExpression(java.lang.String expression) throws java.text.ParseExceptionSets the cron expression for the calendar to a new value- Parameters:
expression- the new string value to build a cron expression from- Throws:
java.text.ParseException- if the string expression cannot be parsed
-
setCronExpression
public void setCronExpression(CronExpression expression)
Sets the cron expression for the calendar to a new value- Parameters:
expression- the new cron expression
-
-