public class CronSequenceGenerator
extends java.lang.Object
The pattern is a list of six single space-separated fields: representing second, minute, hour, day, month, weekday. Month and weekday names can be given as the first three letters of the English names.
Example patterns:
CronTrigger
Modifier and Type | Field and Description |
---|---|
private java.util.BitSet |
daysOfMonth |
private java.util.BitSet |
daysOfWeek |
private java.lang.String |
expression |
private java.util.BitSet |
hours |
private java.util.BitSet |
minutes |
private java.util.BitSet |
months |
private java.util.BitSet |
seconds |
private java.util.TimeZone |
timeZone |
Constructor and Description |
---|
CronSequenceGenerator(java.lang.String expression,
java.util.TimeZone timeZone)
Construct a
CronSequenceGenerator from the pattern provided. |
Modifier and Type | Method and Description |
---|---|
private void |
doNext(java.util.Calendar calendar,
int dot) |
boolean |
equals(java.lang.Object obj) |
private int |
findNext(java.util.BitSet bits,
int value,
java.util.Calendar calendar,
int field,
int nextField,
java.util.List<java.lang.Integer> lowerOrders)
Search the bits provided for the next set bit after the value provided,
and reset the calendar.
|
private int |
findNextDay(java.util.Calendar calendar,
java.util.BitSet daysOfMonth,
int dayOfMonth,
java.util.BitSet daysOfWeek,
int dayOfWeek,
java.util.List<java.lang.Integer> resets) |
(package private) java.lang.String |
getExpression() |
private int[] |
getRange(java.lang.String field,
int min,
int max) |
int |
hashCode() |
java.util.Date |
next(java.util.Date date)
Get the next
Date in the sequence matching the Cron pattern and
after the value provided. |
private void |
parse(java.lang.String expression)
Parse the given pattern expression.
|
private java.lang.String |
replaceOrdinals(java.lang.String value,
java.lang.String commaSeparatedList)
Replace the values in the commaSeparatedList (case insensitive) with
their index in the list.
|
private void |
reset(java.util.Calendar calendar,
java.util.List<java.lang.Integer> fields)
Reset the calendar setting all the fields provided to zero.
|
private void |
setDays(java.util.BitSet bits,
java.lang.String field,
int max) |
private void |
setDaysOfMonth(java.util.BitSet bits,
java.lang.String field) |
private void |
setMonths(java.util.BitSet bits,
java.lang.String value) |
private void |
setNumberHits(java.util.BitSet bits,
java.lang.String value,
int min,
int max) |
java.lang.String |
toString() |
private final java.util.BitSet seconds
private final java.util.BitSet minutes
private final java.util.BitSet hours
private final java.util.BitSet daysOfWeek
private final java.util.BitSet daysOfMonth
private final java.util.BitSet months
private final java.lang.String expression
private final java.util.TimeZone timeZone
public CronSequenceGenerator(java.lang.String expression, java.util.TimeZone timeZone)
CronSequenceGenerator
from the pattern provided.expression
- a space-separated list of time fieldstimeZone
- the TimeZone to use for generated trigger timesjava.lang.IllegalArgumentException
- if the pattern cannot be parsedpublic java.util.Date next(java.util.Date date)
Date
in the sequence matching the Cron pattern and
after the value provided. The return value will have a whole number of
seconds, and will be after the input value.date
- a seed valueprivate void doNext(java.util.Calendar calendar, int dot)
private int findNextDay(java.util.Calendar calendar, java.util.BitSet daysOfMonth, int dayOfMonth, java.util.BitSet daysOfWeek, int dayOfWeek, java.util.List<java.lang.Integer> resets)
private int findNext(java.util.BitSet bits, int value, java.util.Calendar calendar, int field, int nextField, java.util.List<java.lang.Integer> lowerOrders)
bits
- a BitSet
representing the allowed values of the fieldvalue
- the current value of the fieldcalendar
- the calendar to increment as we move through the bitsfield
- the field to increment in the calendar (@see
Calendar
for the static constants defining valid fields)lowerOrders
- the Calendar field ids that should be reset (i.e. the
ones of lower significance than the field of interest)private void reset(java.util.Calendar calendar, java.util.List<java.lang.Integer> fields)
private void parse(java.lang.String expression) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
private java.lang.String replaceOrdinals(java.lang.String value, java.lang.String commaSeparatedList)
private void setDaysOfMonth(java.util.BitSet bits, java.lang.String field)
private void setDays(java.util.BitSet bits, java.lang.String field, int max)
private void setMonths(java.util.BitSet bits, java.lang.String value)
private void setNumberHits(java.util.BitSet bits, java.lang.String value, int min, int max)
private int[] getRange(java.lang.String field, int min, int max)
java.lang.String getExpression()
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object