Class CalendarRecurrenceHelper
- java.lang.Object
-
- org.alfresco.service.cmr.calendar.CalendarRecurrenceHelper
-
public class CalendarRecurrenceHelper extends Object
This class provides helper functions for when working with recurringCalendarEntryinstances. It provides support for working with key parts of the Outlook/SharePoint recurrence rules- Since:
- 4.0
- Author:
- Nick Burch
-
-
Field Summary
Fields Modifier and Type Field Description protected static Map<String,Integer>d2cdstatic StringDAYstatic Map<String,Integer>DAY_NAMES_TO_CALENDAR_DAYSThe lookup from the day strings to Calendar Day entriesprotected static Map<Integer,String>WEEK_NUMBER_TO_WEEK_NAMEstatic StringWEEKDAYSstatic StringWEEKENDS
-
Constructor Summary
Constructors Constructor Description CalendarRecurrenceHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static voidbuildDailyRecurrences(Calendar currentDate, long duration, List<Date> dates, Map<String,String> params, Date onOrAfter, Date until, boolean firstOnly, int interval)static Map<String,String>buildLocalRecurrenceDaysOfTheWeek(Locale locale)Returns a lookup from recurrence rule days of the week, to the proper days of the week in the specified localestatic Map<Integer,String>buildLocalRecurrenceWeekNames(Locale locale)The lookup from the week in month number to week in month name in the specified localeprotected static voidbuildMonthlyRecurrences(Calendar currentDate, long duration, List<Date> dates, Map<String,String> params, Date onOrAfter, Date until, boolean firstOnly, int monthInterval)protected static voidbuildWeeklyRecurrences(Calendar currentDate, long duration, List<Date> dates, Map<String,String> params, Date onOrAfter, Date until, boolean firstOnly, int interval)protected static voidbuildYearlyRecurrences(Calendar currentDate, long duration, List<Date> dates, Map<String,String> params, Date onOrAfter, Date until, boolean firstOnly, int interval)static Map<String,String>extractRecurrenceRule(CalendarEntry entry)Returns the parsed calendar recurrence rule WARNING - Alfresco use only.protected static Map<String,String>fixOutlookRecurrenceQuirks(Map<String,String> params)Outlook does some crazy stuff, which is only just about permitted by the specification, and is hard to parse, especially for yearly events.static List<Date>getRecurrencesOnOrAfter(String recurrenceRule, Date eventStart, Date eventEnd, Date lastRecurrence, Date onOrAfter, Date until, boolean firstOnly, Set<Date> ignoredDates)For the given Calendar Entry, return its subsequent Recurrence on or after the specified date, until the given limit.static List<Date>getRecurrencesOnOrAfter(CalendarEntry entry, Date onOrAfter, Date until, boolean firstOnly, Set<Date> ignoredDates)For the given Calendar Entry, return its subsequent Recurrence on or after the specified date, until the given limit.
-
-
-
Field Detail
-
DAY_NAMES_TO_CALENDAR_DAYS
public static final Map<String,Integer> DAY_NAMES_TO_CALENDAR_DAYS
The lookup from the day strings to Calendar Day entries
-
DAY
public static final String DAY
- See Also:
- Constant Field Values
-
WEEKDAYS
public static final String WEEKDAYS
- See Also:
- Constant Field Values
-
WEEKENDS
public static final String WEEKENDS
- See Also:
- Constant Field Values
-
-
Method Detail
-
buildLocalRecurrenceDaysOfTheWeek
public static Map<String,String> buildLocalRecurrenceDaysOfTheWeek(Locale locale)
Returns a lookup from recurrence rule days of the week, to the proper days of the week in the specified locale
-
buildLocalRecurrenceWeekNames
public static Map<Integer,String> buildLocalRecurrenceWeekNames(Locale locale)
The lookup from the week in month number to week in month name in the specified locale
-
extractRecurrenceRule
public static Map<String,String> extractRecurrenceRule(CalendarEntry entry)
Returns the parsed calendar recurrence rule WARNING - Alfresco use only. Return type will likely shift to a real object in the near future
-
fixOutlookRecurrenceQuirks
protected static Map<String,String> fixOutlookRecurrenceQuirks(Map<String,String> params)
Outlook does some crazy stuff, which is only just about permitted by the specification, and is hard to parse, especially for yearly events. Fix these to more normal cases where possible TODO: This method modifies the input, returning the Map perhaps implies a copy is returned. Decide whether this should be of return type 'void', or make a defensive copy before modification.
-
getRecurrencesOnOrAfter
public static List<Date> getRecurrencesOnOrAfter(CalendarEntry entry, Date onOrAfter, Date until, boolean firstOnly, Set<Date> ignoredDates)
For the given Calendar Entry, return its subsequent Recurrence on or after the specified date, until the given limit. If it doesn't have any recurrences on or after the start date (either no recurrence rules, or the last recurrence date is before then), null will be returned. (The onOrAfter and until dates are treat as inclusive) If requested, can stop after the first hit- Returns:
- The next recurrence on or after the given date, or null if there aren't any
-
getRecurrencesOnOrAfter
public static List<Date> getRecurrencesOnOrAfter(String recurrenceRule, Date eventStart, Date eventEnd, Date lastRecurrence, Date onOrAfter, Date until, boolean firstOnly, Set<Date> ignoredDates)
For the given Calendar Entry, return its subsequent Recurrence on or after the specified date, until the given limit. If it doesn't have any recurrences on or after the start date (either no recurrence rules, or the last recurrence date is before then), null will be returned. (The onOrAfter and until dates are treat as inclusive) If requested, can stop after the first hit- Returns:
- The next recurrence on or after the given date, or null if there aren't any
-
buildDailyRecurrences
protected static void buildDailyRecurrences(Calendar currentDate, long duration, List<Date> dates, Map<String,String> params, Date onOrAfter, Date until, boolean firstOnly, int interval)
-
buildWeeklyRecurrences
protected static void buildWeeklyRecurrences(Calendar currentDate, long duration, List<Date> dates, Map<String,String> params, Date onOrAfter, Date until, boolean firstOnly, int interval)
-
buildMonthlyRecurrences
protected static void buildMonthlyRecurrences(Calendar currentDate, long duration, List<Date> dates, Map<String,String> params, Date onOrAfter, Date until, boolean firstOnly, int monthInterval)
-
-