java.lang.Object
net.fortuna.ical4j.model.Recur<T>
- All Implemented Interfaces:
Serializable
$Id$ [18-Apr-2004]
3.3.10. Recurrence Rule
Value Name: RECUR
Purpose: This value type is used to identify properties that contain
a recurrence rule specification.
Format Definition: This value type is defined by the following
notation:
recur = recur-rule-part *( ";" recur-rule-part )
;
; The rule parts are not ordered in any
; particular sequence.
;
; The FREQ rule part is REQUIRED,
; but MUST NOT occur more than once.
;
; The UNTIL or COUNT rule parts are OPTIONAL,
; but they MUST NOT occur in the same 'recur'.
;
; The other rule parts are OPTIONAL,
; but MUST NOT occur more than once.
recur-rule-part = ( "FREQ" "=" freq )
/ ( "UNTIL" "=" enddate )
/ ( "COUNT" "=" 1*DIGIT )
/ ( "INTERVAL" "=" 1*DIGIT )
/ ( "BYSECOND" "=" byseclist )
/ ( "BYMINUTE" "=" byminlist )
/ ( "BYHOUR" "=" byhrlist )
/ ( "BYDAY" "=" bywdaylist )
/ ( "BYMONTHDAY" "=" bymodaylist )
/ ( "BYYEARDAY" "=" byyrdaylist )
/ ( "BYWEEKNO" "=" bywknolist )
/ ( "BYMONTH" "=" bymolist )
/ ( "BYSETPOS" "=" bysplist )
/ ( "WKST" "=" weekday )
freq = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"
/ "WEEKLY" / "MONTHLY" / "YEARLY"
enddate = date / date-time
byseclist = ( seconds *("," seconds) )
seconds = 1*2DIGIT ;0 to 60
byminlist = ( minutes *("," minutes) )
minutes = 1*2DIGIT ;0 to 59
byhrlist = ( hour *("," hour) )
hour = 1*2DIGIT ;0 to 23
bywdaylist = ( weekdaynum *("," weekdaynum) )
weekdaynum = [[plus / minus] ordwk] weekday
plus = "+"
minus = "-"
ordwk = 1*2DIGIT ;1 to 53
weekday = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"
;Corresponding to SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,
;FRIDAY, and SATURDAY days of the week.
bymodaylist = ( monthdaynum *("," monthdaynum) )
monthdaynum = [plus / minus] ordmoday
ordmoday = 1*2DIGIT ;1 to 31
byyrdaylist = ( yeardaynum *("," yeardaynum) )
yeardaynum = [plus / minus] ordyrday
ordyrday = 1*3DIGIT ;1 to 366
bywknolist = ( weeknum *("," weeknum) )
weeknum = [plus / minus] ordwk
bymolist = ( monthnum *("," monthnum) )
monthnum = 1*2DIGIT ;1 to 12
bysplist = ( setposday *("," setposday) )
setposday = yeardaynum
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRecur.Builder<T extends Temporal>Support for building Recur instances.static enumstatic enum -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringDeprecated.static final StringDeprecated.useFrequencyinstead.static final StringWhen calculating dates matching this recur (getDates()orgetNextDate), this property defines the maximum number of attempt to find a matching date by incrementing the seed.static final StringDeprecated.useFrequencyinstead.static final StringDeprecated.useFrequencyinstead.static final StringDeprecated.useFrequencyinstead.static final StringDeprecated.useFrequencyinstead.static final StringDeprecated.useFrequencyinstead. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new instance from the specified string value.Constructs a new recurrence from the specified string value.Deprecated.Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionbooleanfinal intgetCount()Returns a list of start dates in the specified period represented by this recur.Returns a list of start dates in the specified period represented by this recur.Convenience method for retrieving recurrences in a specified period.Returns a list of start dates in the specified period represented by this recur.getDatesAsStream(T seed, Temporal periodStart, Temporal periodEnd, int maxCount) Accessor for the configured BYDAY list.final FrequencyAccessor for the configured BYHOUR list.final intAccessor for the configured BYMINUTE list.Accessor for the configured BYMONTHDAY list.Accessor for the configured BYMONTH list.final TgetNextDate(T seed, T startDate) Returns the next date of this recurrence given a seed date and start date.Accessor for the configured BYSECOND list.Accessor for the configured BYSETPOS list.getSkip()final TgetUntil()Accessor for the configured BYWEEKNO list.final WeekDayAccessor for the configured BYYEARDAY list.inthashCode()final voidsetCount(int count) Deprecated.will be removed in a future version to support immutable pattern.final voidsetFrequency(String frequency) Deprecated.will be removed in a future version to support immutable pattern.final voidsetInterval(int interval) Deprecated.will be removed in a future version to support immutable pattern.final voidDeprecated.will be removed in a future version to support immutable pattern.final voidsetWeekStartDay(WeekDay weekStartDay) Deprecated.will be removed in a future version to support immutable pattern.final StringtoString()
-
Field Details
-
SECONDLY
Deprecated.useFrequencyinstead.Second frequency resolution.- See Also:
-
MINUTELY
Deprecated.useFrequencyinstead.Minute frequency resolution.- See Also:
-
HOURLY
Deprecated.useFrequencyinstead.Hour frequency resolution.- See Also:
-
DAILY
Deprecated.useFrequencyinstead.Day frequency resolution.- See Also:
-
WEEKLY
Deprecated.useFrequencyinstead.Week frequency resolution.- See Also:
-
MONTHLY
Deprecated.useFrequencyinstead.Month frequency resolution.- See Also:
-
YEARLY
Deprecated.useFrequencyinstead.Year frequency resolution.- See Also:
-
KEY_MAX_INCREMENT_COUNT
When calculating dates matching this recur (getDates()orgetNextDate), this property defines the maximum number of attempt to find a matching date by incrementing the seed.The default value is 1000. A value of -1 corresponds to no maximum.
- See Also:
-
-
Constructor Details
-
Recur
Constructs a new instance from the specified string value.- Parameters:
aValue- a string representation of a recurrence.
-
Recur
Constructs a new recurrence from the specified string value.- Parameters:
aValue- a string representation of a recurrence.experimentalTokensAllowed- allow unrecognised tokens in the recurrence
-
Recur
Deprecated.- Parameters:
frequency- a recurrence frequency stringuntil- maximum recurrence date
-
Recur
-
Recur
- Parameters:
frequency- a recurrence frequency stringuntil- maximum recurrence date
-
Recur
Deprecated.- Parameters:
frequency- a recurrence frequency stringcount- maximum recurrence count
-
Recur
- Parameters:
frequency- a recurrence frequency stringcount- maximum recurrence count
-
-
Method Details
-
getDayList
Accessor for the configured BYDAY list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the dayList.
-
getHourList
Accessor for the configured BYHOUR list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the hourList.
-
getMinuteList
Accessor for the configured BYMINUTE list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the minuteList.
-
getMonthDayList
Accessor for the configured BYMONTHDAY list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the monthDayList.
-
getMonthList
Accessor for the configured BYMONTH list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the monthList.
-
getSecondList
Accessor for the configured BYSECOND list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the secondList.
-
getSetPosList
Accessor for the configured BYSETPOS list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the setPosList.
-
getWeekNoList
Accessor for the configured BYWEEKNO list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the weekNoList.
-
getYearDayList
Accessor for the configured BYYEARDAY list. NOTE: Any changes to the returned list will have no effect on the recurrence rule processing.- Returns:
- Returns the yearDayList.
-
getCount
public final int getCount()- Returns:
- Returns the count or -1 if the rule does not have a count.
-
getExperimentalValues
- Returns:
- Returns the experimentalValues.
-
getFrequency
- Returns:
- Returns the frequency.
-
getSkip
- Returns:
- leap month skip behaviour.
-
getInterval
public final int getInterval()- Returns:
- Returns the interval or -1 if the rule does not have an interval defined.
-
getUntil
- Returns:
- Returns the until or null if there is none.
-
getWeekStartDay
- Returns:
- Returns the weekStartDay or null if there is none.
-
setWeekStartDay
Deprecated.will be removed in a future version to support immutable pattern.- Parameters:
weekStartDay- The weekStartDay to set.
-
toString
-
getDates
Returns a list of start dates in the specified period represented by this recur. Any date fields not specified by this recur are retained from the period start, and as such you should ensure the period start is initialised correctly.- Parameters:
periodStart- the start of the periodperiodEnd- the end of the period- Returns:
- a list of dates
-
getDates
Convenience method for retrieving recurrences in a specified period.- Parameters:
seed- a seed date for generating recurrence instancesperiod- the period of returned recurrence dates- Returns:
- a list of dates
-
getDates
Returns a list of start dates in the specified period represented by this recur. This method includes a base date argument, which indicates the start of the fist occurrence of this recurrence. The base date is used to inject default values to return a set of dates in the correct format. For example, if the search start date (start) is Wed, Mar 23, 12:19PM, but the recurrence is Mon - Fri, 9:00AM - 5:00PM, the start dates returned should all be at 9:00AM, and not 12:19PM.- Parameters:
seed- the start date of this Recurrence's first instanceperiodStart- the start of the periodperiodEnd- the end of the period- Returns:
- a list of dates represented by this recur instance
-
getDates
Returns a list of start dates in the specified period represented by this recur. This method includes a base date argument, which indicates the start of the fist occurrence of this recurrence. The base date is used to inject default values to return a set of dates in the correct format. For example, if the search start date (start) is Wed, Mar 23, 12:19PM, but the recurrence is Mon - Fri, 9:00AM - 5:00PM, the start dates returned should all be at 9:00AM, and not 12:19PM.- Parameters:
seed- the start date of this Recurrence's first instanceperiodStart- the start of the periodperiodEnd- the end of the periodmaxCount- limits the number of instances returned. Up to one years worth extra may be returned. Less than 0 means no limit- Returns:
- a list of dates represented by this recur instance
-
getDatesAsStream
-
getNextDate
Returns the next date of this recurrence given a seed date and start date. The seed date indicates the start of the fist occurrence of this recurrence. The start date is the starting date to search for the next recurrence. Return null if there is no occurrence date after start date.- Parameters:
seed- the start date of this Recurrence's first instancestartDate- the date to start the search- Returns:
- the next date in the recurrence series after startDate
-
setCount
Deprecated.will be removed in a future version to support immutable pattern.- Parameters:
count- The count to set.
-
setFrequency
Deprecated.will be removed in a future version to support immutable pattern.- Parameters:
frequency- The frequency to set.
-
setInterval
Deprecated.will be removed in a future version to support immutable pattern.- Parameters:
interval- The interval to set.
-
setUntil
Deprecated.will be removed in a future version to support immutable pattern.- Parameters:
until- The until to set.
-
equals
-
hashCode
public int hashCode()
-
Frequencyinstead.