Top Description Fields Constructors Methods
net.fortuna.ical4j.transform.recurrence

pack-priv abstract Class AbstractDateExpansionRule<T extends Temporal>

extends Object
implements Transformer<List<T extends Temporal>>, Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable, net.fortuna.ical4j.transform.Transformer, java.util.function.UnaryOperator, java.util.function.Function
Known Direct Subclasses
net.fortuna.ical4j.transform.recurrence.ByDayRule, net.fortuna.ical4j.transform.recurrence.ByHourRule, net.fortuna.ical4j.transform.recurrence.ByMinuteRule, net.fortuna.ical4j.transform.recurrence.ByMonthDayRule, net.fortuna.ical4j.transform.recurrence.ByMonthRule, net.fortuna.ical4j.transform.recurrence.BySecondRule, net.fortuna.ical4j.transform.recurrence.ByWeekNoRule, net.fortuna.ical4j.transform.recurrence.ByYearDayRule
Imports
net.fortuna.ical4j.model.Month, .TemporalAdapter, net.fortuna.ical4j.transform.Transformer, net.fortuna.ical4j.util.CompatibilityHints, .TimeZones, java.io.Serializable, java.time.DayOfWeek, java.time.temporal.Temporal, .TemporalField, java.util.List

Subclasses provide implementations to expand (or limit) a list of dates based on rule requirements as specified in RFC5545.
    3.3.10.  Recurrence Rule

      ...

      BYxxx rule parts modify the recurrence in some manner.  BYxxx rule
      parts for a period of time that is the same or greater than the
      frequency generally reduce or limit the number of occurrences of
      the recurrence generated.  For example, "FREQ=DAILY;BYMONTH=1"
      reduces the number of recurrence instances from all days (if
      BYMONTH rule part is not present) to all days in January.  BYxxx
      rule parts for a period of time less than the frequency generally
      increase or expand the number of occurrences of the recurrence.
      For example, "FREQ=YEARLY;BYMONTH=1,2" increases the number of
      days within the yearly recurrence set from 1 (if BYMONTH rule part
      is not present) to 2.

      If multiple BYxxx rule parts are specified, then after evaluating
      the specified FREQ and INTERVAL rule parts, the BYxxx rule parts
      are applied to the current set of evaluated occurrences in the
      following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
      BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
      evaluated.

      The table below summarizes the dependency of BYxxx rule part
      expand or limit behavior on the FREQ rule part value.

      The term "N/A" means that the corresponding BYxxx rule part MUST
      NOT be used with the corresponding FREQ value.

      BYDAY has some special behavior depending on the FREQ value and
      this is described in separate notes below the table.

   +----------+--------+--------+-------+-------+------+-------+------+
   |          |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.

Field Summary

Modifier and TypeField and Description
private final Frequency

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
pack-priv int
getDayOfMonth(T date)

pack-priv DayOfWeek
getDayOfWeek(T date)

pack-priv int
getDayOfYear(T date)

pack-priv Frequency
pack-priv int
getHour(T date)

pack-priv int
getMinute(T date)

pack-priv Month
getMonth(T date)

pack-priv int
getSecond(T date)

private int
pack-priv int
getYear(T date)

pack-priv T
withTemporalField(T date, TemporalField field, int value)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

frequencyback to summary
private final Frequency frequency

Constructor Detail

AbstractDateExpansionRuleback to summary
pack-priv AbstractDateExpansionRule(Frequency frequency)

Method Detail

getDayOfMonthback to summary
pack-priv int getDayOfMonth(T date)
getDayOfWeekback to summary
pack-priv DayOfWeek getDayOfWeek(T date)
getDayOfYearback to summary
pack-priv int getDayOfYear(T date)
getFrequencyback to summary
pack-priv Frequency getFrequency()
getHourback to summary
pack-priv int getHour(T date)
getMinuteback to summary
pack-priv int getMinute(T date)
getMonthback to summary
pack-priv Month getMonth(T date)
getSecondback to summary
pack-priv int getSecond(T date)
getTemporalFieldback to summary
private int getTemporalField(T date, TemporalField field)
getYearback to summary
pack-priv int getYear(T date)
withTemporalFieldback to summary
pack-priv T withTemporalField(T date, TemporalField field, int value)
Annotations
@SuppressWarnings:unchecked