| Package | ardisia.scheduling.iCalendarRecurrence |
| Class | public class iCalendarRecurrence |
| Inheritance | iCalendarRecurrence Object |
If the SchedulingData has infinite recurrence, and "count" or "until" is not set, the default short-circuit is 2 years after dtStart. See the "defaultUntil" property.
Purely static class.
See the SchedulingData docs for explanations on the pertinent recurrence properties.
+----------+--------+--------+-------+-------+------+-------+------+ | |SECONDLY|MINUTELY|HOURLY |DAILY |WEEKLY|MONTHLY|YEARLY| +----------+--------+--------+-------+-------+------+-------+------+ |BYMONTH |Limit |Limit |Limit |Limit |Limit |Limit |Expand| +----------+--------+--------+-------+-------+------+-------+------+ |BYWEEKNO |N/A |N/A |N/A |N/A |N/A |N/A |Expand| +----------+--------+--------+-------+-------+------+-------+------+ |BYYEARDAY |Limit |Limit |Limit |N/A |N/A |N/A |Expand| +----------+--------+--------+-------+-------+------+-------+------+ |BYMONTHDAY|Limit |Limit |Limit |Limit |N/A |Expand |Expand| +----------+--------+--------+-------+-------+------+-------+------+ |BYDAY |Limit |Limit |Limit |Limit |Expand|Note 1 |Note 2| +----------+--------+--------+-------+-------+------+-------+------+ |BYHOUR |Limit |Limit |Limit |Expand |Expand|Expand |Expand| +----------+--------+--------+-------+-------+------+-------+------+ |BYMINUTE |Limit |Limit |Expand |Expand |Expand|Expand |Expand| +----------+--------+--------+-------+-------+------+-------+------+ |BYSECOND |Limit |Expand |Expand |Expand |Expand|Expand |Expand| +----------+--------+--------+-------+-------+------+-------+------+ |BYSETPOS |Limit |Limit |Limit |Limit |Limit |Limit |Limit | +----------+--------+--------+-------+-------+------+-------+------+ Note 1: Limit if BYMONTHDAY is present; otherwise, special expand for MONTHLY. Note 2: Limit if BYYEARDAY or BYMONTHDAY is present; otherwise, special expand for WEEKLY if BYWEEKNO present; otherwise, special expand for MONTHLY if BYMONTH present; otherwise, special expand for YEARLY.
| Property | Defined By | ||
|---|---|---|---|
| defaultUntil : Date [static]
Sets the "until" property if not set in the SchedulingData object. | iCalendarRecurrence | ||
| Method | Defined By | ||
|---|---|---|---|
generateRecurrenceDates(calendarData:SchedulingData, startDt:Date = null):Array [static]
Returns an array of Date objects for all the dates created by the
recurrence rules for the provided SchedulingData object. | iCalendarRecurrence | ||
| Method | Defined By | ||
|---|---|---|---|
byDayFilter(dt:Date):Boolean [static]
Filters dates based on the "byDay" property. | iCalendarRecurrence | ||
byDayGenerator(yearlyInterval:int = 1, monthlyInterval:int = 1, weeklyInterval:int = 1):void [static]
Generates dates based on the "byDay" property. | iCalendarRecurrence | ||
byMonthDayFilter(dt:Date):Boolean [static]
Filters dates based on the "byMonthDay" property. | iCalendarRecurrence | ||
byMonthDayGenerator(yearlyInterval:int = 1, monthlyInterval:int = 1):void [static]
Generates dates based on the "byMonthDay" property. | iCalendarRecurrence | ||
byMonthFilter(dt:Date):Boolean [static]
Filters dates based on the "byMonth" property. | iCalendarRecurrence | ||
byMonthGenerator(yearlyInterval:int):void [static]
Generates dates based on the "byMonth" property. | iCalendarRecurrence | ||
bySetPosFilter(intervalDates:Array):Boolean [static]
Filters dates based on the "bySetPos" property. | iCalendarRecurrence | ||
byWeekNoFilter(dt:Date):Boolean [static]
Filters dates based on the "byWeekNo" property. | iCalendarRecurrence | ||
byWeekNoGenerator(yearlyInterval:int = 1):void [static]
Generates dates based on the "byWeekNo" property. | iCalendarRecurrence | ||
byYearDayFilter(dt:Date):Boolean [static]
Filters dates based on the "byYearDay" property. | iCalendarRecurrence | ||
byYearDayGenerator(yearlyInterval:int):void [static]
Generates dates based on the "byYearDay" property. | iCalendarRecurrence | ||
checkForShortCircuit(dt:Date):Boolean [static]
Checks if the generators should short circuit and quit. | iCalendarRecurrence | ||
exDateFilter():void [static]
Filters dates based on the "exDate" property. | iCalendarRecurrence | ||
rDateGenerator():void [static]
Generates dates using the "rDate" property. | iCalendarRecurrence | ||
runFilters(dt:Date):Boolean [static]
Runs the flagged filters and returns whether the date was filtered
out of the recurrence set. | iCalendarRecurrence | ||
serialDayGenerator(interval:int):void [static]
Simple serial generator that creates dates in day intervals. | iCalendarRecurrence | ||
serialMonthGenerator(interval:int):void [static]
Simple serial generator that creates dates in month intervals. | iCalendarRecurrence | ||
serialWeekGenerator(interval:int):void [static]
Simple serial generator that creates dates in week intervals. | iCalendarRecurrence | ||
serialYearGenerator(interval:int):void [static]
Simple serial generator that creates dates in year intervals. | iCalendarRecurrence | ||
| defaultUntil | property |
public static var defaultUntil:DateSets the "until" property if not set in the SchedulingData object.
Useful to avoid infinite recurrence items creating infinite loops.
If this property is not set, and the data does not define "until" or "count", the default short circuit is 2 years after dtStart.
The default value is undefined.
| byDayFilter | () | method |
protected static function byDayFilter(dt:Date):BooleanFilters dates based on the "byDay" property.
Parameters
dt:Date — the Date to check if was filtered
|
Boolean |
| byDayGenerator | () | method |
protected static function byDayGenerator(yearlyInterval:int = 1, monthlyInterval:int = 1, weeklyInterval:int = 1):voidGenerates dates based on the "byDay" property.
The most complex rule, because it must be able to accommodate every frequency.
Note: the weekly frequency requires a different implementation and if the interval is greater than 1, wkst is required and relevant.
The position integer can refer to the month or year depending on the recurrence properties. For yearly, the integer is the year position unless byMonth is set, in which case the integer is monthly.
Parameters
yearlyInterval:int (default = 1) | |
monthlyInterval:int (default = 1) | |
weeklyInterval:int (default = 1) |
| byMonthDayFilter | () | method |
protected static function byMonthDayFilter(dt:Date):BooleanFilters dates based on the "byMonthDay" property.
Parameters
dt:Date — the Date to check if was filtered
|
Boolean |
| byMonthDayGenerator | () | method |
protected static function byMonthDayGenerator(yearlyInterval:int = 1, monthlyInterval:int = 1):voidGenerates dates based on the "byMonthDay" property.
Daily interval is ignored.
Since byMonthDay can be expressed as positive or negative integers, there is a possibility of redundant dates. Convert byMonthDay to a set of positive integers before looping to ensure uniqueness and that the array is in numerical order.
Parameters
yearlyInterval:int (default = 1) | |
monthlyInterval:int (default = 1) |
| byMonthFilter | () | method |
protected static function byMonthFilter(dt:Date):BooleanFilters dates based on the "byMonth" property.
Parameters
dt:Date — the Date to check if was filtered
|
Boolean |
| byMonthGenerator | () | method |
protected static function byMonthGenerator(yearlyInterval:int):voidGenerates dates based on the "byMonth" property.
This generator is only used with "yearly" frequency.
Parameters
yearlyInterval:int |
| bySetPosFilter | () | method |
protected static function bySetPosFilter(intervalDates:Array):BooleanFilters dates based on the "bySetPos" property.
Parameters
intervalDates:Array — the Date to check if was filtered
|
Boolean — Boolean
|
| byWeekNoFilter | () | method |
protected static function byWeekNoFilter(dt:Date):BooleanFilters dates based on the "byWeekNo" property.
The iCalendar spec defines the first week in the year to be the first week with 4 days in the specified year.
Parameters
dt:Date — the Date to check if was filtered
|
Boolean |
| byWeekNoGenerator | () | method |
protected static function byWeekNoGenerator(yearlyInterval:int = 1):voidGenerates dates based on the "byWeekNo" property.
The iCalendar spec is unclear on how byWeekNo is handled when no other criteria are provided.
Does it repeat the month day number or the day of the week? I am choosing to repeat the day of the week. E.G., if dtStart is Sunday, Jan 1 and byWeekNo is 10, then find the Sunday in the 10th week.
Parameters
yearlyInterval:int (default = 1) — Interval
|
| byYearDayFilter | () | method |
protected static function byYearDayFilter(dt:Date):BooleanFilters dates based on the "byYearDay" property.
Parameters
dt:Date — the Date to check if was filtered
|
Boolean |
| byYearDayGenerator | () | method |
protected static function byYearDayGenerator(yearlyInterval:int):voidGenerates dates based on the "byYearDay" property.
Parameters
yearlyInterval:int |
| checkForShortCircuit | () | method |
protected static function checkForShortCircuit(dt:Date):BooleanChecks if the generators should short circuit and quit.
Parameters
dt:Date — the date to check
|
Boolean |
| exDateFilter | () | method |
protected static function exDateFilter():voidFilters dates based on the "exDate" property.
| generateRecurrenceDates | () | method |
public static function generateRecurrenceDates(calendarData:SchedulingData, startDt:Date = null):ArrayReturns an array of Date objects for all the dates created by the recurrence rules for the provided SchedulingData object.
Add the optional startDt to generate from that Date, rather than the dtStart property of the provided SchedulingData object. The optional parameter Date will not be returned in the results array.
Custom start dates are useful to get segments of a infinite recurrence loop.
Parameters
calendarData:SchedulingData — A SchedulingData object with recurrence
| |
startDt:Date (default = null) — The start date to begin calculating recurrence
|
Array — Array of Date objects
|
| rDateGenerator | () | method |
protected static function rDateGenerator():voidGenerates dates using the "rDate" property.
| runFilters | () | method |
protected static function runFilters(dt:Date):BooleanRuns the flagged filters and returns whether the date was filtered out of the recurrence set.
Parameters
dt:Date — The Date object to check if filtered
|
Boolean — a Boolean whether the date was filtered out or not
|
| serialDayGenerator | () | method |
protected static function serialDayGenerator(interval:int):voidSimple serial generator that creates dates in day intervals.
Parameters
interval:int — the number of days between each Date in the set
|
| serialMonthGenerator | () | method |
protected static function serialMonthGenerator(interval:int):voidSimple serial generator that creates dates in month intervals.
Parameters
interval:int — the number of months between each Date in the set
|
| serialWeekGenerator | () | method |
protected static function serialWeekGenerator(interval:int):voidSimple serial generator that creates dates in week intervals.
Parameters
interval:int — the number of weeks between each Date in the set
|
| serialYearGenerator | () | method |
protected static function serialYearGenerator(interval:int):voidSimple serial generator that creates dates in year intervals.
Parameters
interval:int — the number of years between each Date in the set
|