final java.util.TimeZone timeZone)
{
if (event.hasRecurrence() == false) {
return null;
}
final Recur recur = event.getRecurrenceObject();
if (recur == null) {
// Shouldn't happen:
return null;
}
final java.util.TimeZone timeZone4Calc = timeZone;
final String eventStartDateString = event.isAllDay() == true ? DateHelper.formatIsoDate(event.getStartDate(), timeZone) : DateHelper
.formatIsoTimestamp(event.getStartDate(), DateHelper.UTC);
Date eventStartDate = event.getStartDate();
if (event.isAllDay() == true) {
// eventStartDate should be midnight in user's time zone.
eventStartDate = DateHelper.parseIsoDate(eventStartDateString, timeZone);
}
if (log.isDebugEnabled() == true) {
log.debug("---------- startDate=" + DateHelper.formatIsoTimestamp(eventStartDate, timeZone) + ", timeZone=" + timeZone.getID());
}
final TimeZone ical4jTimeZone = ICal4JUtils.getTimeZone(timeZone4Calc);
final net.fortuna.ical4j.model.DateTime ical4jStartDate = new net.fortuna.ical4j.model.DateTime(startDate);
ical4jStartDate.setTimeZone(ical4jTimeZone);
final net.fortuna.ical4j.model.DateTime ical4jEndDate = new net.fortuna.ical4j.model.DateTime(endDate);
ical4jEndDate.setTimeZone(ICal4JUtils.getTimeZone(timeZone4Calc));
final net.fortuna.ical4j.model.DateTime seedDate = new net.fortuna.ical4j.model.DateTime(eventStartDate);
seedDate.setTimeZone(ICal4JUtils.getTimeZone(timeZone4Calc));
if (ical4jStartDate == null || ical4jEndDate == null || seedDate == null) {
log.error("Can't get recurrence events of event "
+ event.getId()
+ ". Not all three dates are given: startDate="
+ ical4jStartDate
+ ", endDate="
+ ical4jEndDate
+ ", seed="
+ seedDate);
return null;
}
final List<net.fortuna.ical4j.model.Date> exDates = ICal4JUtils.parseISODateStringsAsICal4jDates(event.getRecurrenceExDate(),
ical4jTimeZone);
final DateList dateList = recur.getDates(seedDate, ical4jStartDate, ical4jEndDate, Value.DATE_TIME);
final Collection<TeamEvent> col = new ArrayList<TeamEvent>();
if (dateList != null) {
OuterLoop: for (final Object obj : dateList) {
final net.fortuna.ical4j.model.DateTime dateTime = (net.fortuna.ical4j.model.DateTime) obj;
final String isoDateString = event.isAllDay() == true ? DateHelper.formatIsoDate(dateTime, timeZone) : DateHelper