net.fortuna.ical4j.model

## Class Recur

- java.lang.Object
- - net.fortuna.ical4j.model.Recur

All Implemented Interfaces:
  Serializable

    public class Recur
    extends Object
    implements Serializable

$Id$ [18-Apr-2004] Defines a recurrence.

Version:
  2.0
Author:
  Ben Fortuna
See Also:
  Serialized Form

### Field Summary

Fields
`static String` `DAILY` Day frequency resolution.
`static String` `HOURLY` Hour frequency resolution.
`static String` `KEY_MAX_INCREMENT_COUNT` When calculating dates matching this recur (`getDates()` or `getNextDate`), this property defines the maximum number of attempt to find a matching date by incrementing the seed.
`static String` `MINUTELY` Minute frequency resolution.
`static String` `MONTHLY` Month frequency resolution.
`static String` `SECONDLY` Second frequency resolution.
`static String` `WEEKLY` Week frequency resolution.
`static String` `YEARLY` Year frequency resolution.

### Constructor Summary

Constructors
Constructor and Description
`Recur()` Default constructor.
`Recur(String aValue)` Constructs a new instance from the specified string value.
`Recur(String frequency, Date until)`
`Recur(String frequency, int count)`

### Method Summary

Methods
`int` `getCount()`
`DateList` `getDates(Date seed, Date periodStart, Date periodEnd, Value value)` Returns a list of start dates in the specified period represented by this recur.
`DateList` `getDates(Date seed, Date periodStart, Date periodEnd, Value value, int maxCount)` Returns a list of start dates in the specified period represented by this recur.
`DateList` `getDates(Date periodStart, Date periodEnd, Value value)` Returns a list of start dates in the specified period represented by this recur.
`DateList` `getDates(Date seed, Period period, Value value)` Convenience method for retrieving recurrences in a specified period.
`WeekDayList` `getDayList()`
`Map` `getExperimentalValues()`
`String` `getFrequency()`
`NumberList` `getHourList()`
`int` `getInterval()`
`NumberList` `getMinuteList()`
`NumberList` `getMonthDayList()`
`NumberList` `getMonthList()`
`Date` `getNextDate(Date seed, Date startDate)` Returns the the next date of this recurrence given a seed date and start date.
`NumberList` `getSecondList()`
`NumberList` `getSetPosList()`
`Date` `getUntil()`
`NumberList` `getWeekNoList()`
`String` `getWeekStartDay()`
`NumberList` `getYearDayList()`
`void` `setCount(int count)`
`void` `setFrequency(String frequency)`
`void` `setInterval(int interval)`
`void` `setUntil(Date until)`
`void` `setWeekStartDay(String weekStartDay)`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### SECONDLY

    public static final String SECONDLY

Second frequency resolution.

See Also:
  Constant Field Values

#### MINUTELY

    public static final String MINUTELY

Minute frequency resolution.

See Also:
  Constant Field Values

#### HOURLY

    public static final String HOURLY

Hour frequency resolution.

See Also:
  Constant Field Values

#### DAILY

    public static final String DAILY

Day frequency resolution.

See Also:
  Constant Field Values

#### WEEKLY

    public static final String WEEKLY

Week frequency resolution.

See Also:
  Constant Field Values

#### MONTHLY

    public static final String MONTHLY

Month frequency resolution.

See Also:
  Constant Field Values

#### YEARLY

    public static final String YEARLY

Year frequency resolution.

See Also:
  Constant Field Values

#### KEY_MAX_INCREMENT_COUNT

    public static final String KEY_MAX_INCREMENT_COUNT

When calculating dates matching this recur (`getDates()` or `getNextDate`), 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:
  Constant Field Values

### Constructor Detail

#### Recur

    public Recur()

Default constructor.

#### Recur

    public Recur(String aValue)
          throws ParseException

Constructs a new instance from the specified string value.

Parameters:
  `aValue` - a string representation of a recurrence.
Throws:
  `ParseException` - thrown when the specified string contains an invalid representation of an UNTIL date value

#### Recur

    public Recur(String frequency,
         Date until)

Parameters:
  `frequency` - a recurrence frequency string
  `until` - maximum recurrence date

#### Recur

    public Recur(String frequency,
         int count)

Parameters:
  `frequency` - a recurrence frequency string
  `count` - maximum recurrence count

### Method Detail

#### getDayList

    public final WeekDayList getDayList()

Returns:
  Returns the dayList.

#### getHourList

    public final NumberList getHourList()

Returns:
  Returns the hourList.

#### getMinuteList

    public final NumberList getMinuteList()

Returns:
  Returns the minuteList.

#### getMonthDayList

    public final NumberList getMonthDayList()

Returns:
  Returns the monthDayList.

#### getMonthList

    public final NumberList getMonthList()

Returns:
  Returns the monthList.

#### getSecondList

    public final NumberList getSecondList()

Returns:
  Returns the secondList.

#### getSetPosList

    public final NumberList getSetPosList()

Returns:
  Returns the setPosList.

#### getWeekNoList

    public final NumberList getWeekNoList()

Returns:
  Returns the weekNoList.

#### getYearDayList

    public final NumberList getYearDayList()

Returns:
  Returns the yearDayList.

#### getCount

    public final int getCount()

Returns:
  Returns the count or -1 if the rule does not have a count.

#### getExperimentalValues

    public final Map getExperimentalValues()

Returns:
  Returns the experimentalValues.

#### getFrequency

    public final String getFrequency()

Returns:
  Returns the frequency.

#### getInterval

    public final int getInterval()

Returns:
  Returns the interval or -1 if the rule does not have an interval defined.

#### getUntil

    public final Date getUntil()

Returns:
  Returns the until or null if there is none.

#### getWeekStartDay

    public final String getWeekStartDay()

Returns:
  Returns the weekStartDay or null if there is none.

#### setWeekStartDay

    public final void setWeekStartDay(String weekStartDay)

Parameters:
  `weekStartDay` - The weekStartDay to set.

#### toString

    public final String toString()

Overrides:
  `toString` in class `Object`

#### getDates

    public final DateList getDates(Date periodStart,
                    Date periodEnd,
                    Value value)

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 period
  `periodEnd` - the end of the period
  `value` - the type of dates to generate (i.e. date/date-time)
Returns:
  a list of dates

#### getDates

    public final DateList getDates(Date seed,
                    Period period,
                    Value value)

Convenience method for retrieving recurrences in a specified period.

Parameters:
  `seed` - a seed date for generating recurrence instances
  `period` - the period of returned recurrence dates
  `value` - type of dates to generate
Returns:
  a list of dates

#### getDates

    public final DateList getDates(Date seed,
                    Date periodStart,
                    Date periodEnd,
                    Value value)

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 instance
  `periodStart` - the start of the period
  `periodEnd` - the end of the period
  `value` - the type of dates to generate (i.e. date/date-time)
Returns:
  a list of dates represented by this recur instance

#### getDates

    public final DateList getDates(Date seed,
                    Date periodStart,
                    Date periodEnd,
                    Value value,
                    int maxCount)

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 instance
  `periodStart` - the start of the period
  `periodEnd` - the end of the period
  `value` - the type of dates to generate (i.e. date/date-time)
  `maxCount` - 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

#### getNextDate

    public final Date getNextDate(Date seed,
                   Date startDate)

Returns the 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 instance
  `startDate` - the date to start the search
Returns:
  the next date in the recurrence series after startDate

#### setCount

    public final void setCount(int count)

Parameters:
  `count` - The count to set.

#### setFrequency

    public final void setFrequency(String frequency)

Parameters:
  `frequency` - The frequency to set.

#### setInterval

    public final void setInterval(int interval)

Parameters:
  `interval` - The interval to set.

#### setUntil

    public final void setUntil(Date until)

Parameters:
  `until` - The until to set.