org.quartz.impl.calendar
Class CronCalendar

java.lang.Object
  extended byorg.quartz.impl.calendar.BaseCalendar
      extended byorg.quartz.impl.calendar.CronCalendar
All Implemented Interfaces:
Calendar, Serializable

public class CronCalendar
extends BaseCalendar

This implementation of the Calendar excludes the set of times expressed by a given CronExpression. For example, you could use this calendar to exclude all but business hours (8AM - 5PM) every day using the expression "* * 0-7,18-24 ? * *".

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 CronTrigger describes a set of times that can be included for firing. Thus, if a CronTrigger has a given cron expression and is associated with a CronCalendar with the same expression, the calendar will exclude all the times the trigger includes, and they will cancel each other out.

Version:
$Revision: 1.1.2.2 $ $Date: 2006/02/24 13:34:56 $
Author:
Aaron Craven
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.quartz.Calendar
MONTH
 
Constructor Summary
CronCalendar(String name, Calendar baseCalendar, String expression)
          Create a CronCalendar with the given cron exprssion and baseCalendar.
CronCalendar(String name, String expression)
          Create a CronCalendar with the given cron expression and no baseCalendar.
 
Method Summary
 CronExpression getCronExpression()
          Returns the object representation of the cron expression that defines the dates and times this calendar excludes.
 String getName()
          Returns the name of the CronCalendar
 long getNextIncludedTime(long timeInMillis)
          Determines the next time included by the CronCalendar after the specified time.
 boolean isTimeIncluded(long timeInMillis)
          Determines whether the given time (in milliseconds) is 'included' by the BaseCalendar
 void setCronExpression(CronExpression expression)
          Sets the cron expression for the calendar to a new value
 void setCronExpression(String expression)
          Sets the cron expression for the calendar to a new value
 String toString()
          Returns a string representing the properties of the CronCalendar
 
Methods inherited from class org.quartz.impl.calendar.BaseCalendar
buildHoliday, buildHoliday, getBaseCalendar, getDescription, getJavaCalendar, setBaseCalendar, setDescription
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CronCalendar

public CronCalendar(String name,
                    String expression)
             throws ParseException
Create a CronCalendar with the given cron expression and no baseCalendar.

Parameters:
name - the name for the DailyCalendar
expression - a String representation of the desired cron expression

CronCalendar

public CronCalendar(String name,
                    Calendar baseCalendar,
                    String expression)
             throws ParseException
Create a CronCalendar with the given cron exprssion and baseCalendar.

Parameters:
name - the name for the DailyCalendar
baseCalendar - the base calendar for this calendar instance – see BaseCalendar for more information on base calendar functionality
expression - a String representation of the desired cron expression
Method Detail

getName

public String getName()
Returns the name of the CronCalendar

Returns:
the name of the CronCalendar

isTimeIncluded

public boolean isTimeIncluded(long timeInMillis)
Determines whether the given time (in milliseconds) is 'included' by the BaseCalendar

Specified by:
isTimeIncluded in interface Calendar
Overrides:
isTimeIncluded in class BaseCalendar
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 the CronCalendar after the specified time.

Specified by:
getNextIncludedTime in interface Calendar
Overrides:
getNextIncludedTime in class BaseCalendar
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 String toString()
Returns a string representing the properties of the CronCalendar

Returns:
the properteis 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(String expression)
                       throws ParseException
Sets the cron expression for the calendar to a new value

Parameters:
expression - the new string value to build a cron expression from
Throws:
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

Quartz Enterprise Job Scheduler Project Page