use of net.fortuna.ical4j.model.property.ExDate in project openolat by klemens.
the class CalendarUtils method getRecurrenceExcludeDates.
/**
* Create list with excluded dates based on the exclusion rule.
* @param recurrenceExc
* @return list with excluded dates
*/
public static List<Date> getRecurrenceExcludeDates(String recurrenceExc) {
List<Date> recurExcDates = new ArrayList<>();
if (recurrenceExc != null && !recurrenceExc.equals("")) {
try {
net.fortuna.ical4j.model.ParameterList pl = new net.fortuna.ical4j.model.ParameterList();
ExDate exdate = new ExDate(pl, recurrenceExc);
DateList dl = exdate.getDates();
for (Object date : dl) {
Date excDate = (Date) date;
recurExcDates.add(excDate);
}
} catch (ParseException e) {
log.error("cannot restore recurrence exceptions", e);
}
}
return recurExcDates;
}
use of net.fortuna.ical4j.model.property.ExDate in project OpenOLAT by OpenOLAT.
the class ICalFileCalendarManager method getRecurringsInPeriod.
private final DateList getRecurringsInPeriod(Date periodStart, Date periodEnd, KalendarEvent kEvent) {
DateList recurDates = null;
String recurrenceRule = kEvent.getRecurrenceRule();
if (StringHelper.containsNonWhitespace(recurrenceRule)) {
try {
Recur recur = new Recur(recurrenceRule);
net.fortuna.ical4j.model.Date periodStartDate = CalendarUtils.createDate(periodStart);
net.fortuna.ical4j.model.Date periodEndDate = CalendarUtils.createDate(periodEnd);
net.fortuna.ical4j.model.Date eventStartDate = CalendarUtils.createDate(kEvent.getBegin());
recurDates = recur.getDates(eventStartDate, periodStartDate, periodEndDate, Value.DATE);
} catch (ParseException e) {
log.error("cannot restore recurrence rule: " + recurrenceRule, e);
}
String recurrenceExc = kEvent.getRecurrenceExc();
if (recurrenceExc != null && !recurrenceExc.equals("")) {
try {
ExDate exdate = new ExDate();
// see OLAT-5645
if (recurrenceExc.length() > 8) {
exdate.setValue(recurrenceExc);
} else {
exdate.getParameters().replace(Value.DATE);
exdate.setValue(recurrenceExc);
}
for (Object date : exdate.getDates()) {
if (recurDates.contains(date))
recurDates.remove(date);
}
} catch (ParseException e) {
log.error("cannot restore excluded dates for this recurrence: " + recurrenceExc, e);
}
}
}
return recurDates;
}
use of net.fortuna.ical4j.model.property.ExDate in project OpenOLAT by OpenOLAT.
the class ICalFileCalendarManager method createKalendarEventRecurringOccurence.
@Override
public KalendarEvent createKalendarEventRecurringOccurence(KalendarRecurEvent recurEvent) {
KalendarEvent rootEvent = recurEvent.getCalendar().getEvent(recurEvent.getID(), null);
VEvent vEvent = getVEvent(recurEvent);
PropertyList vEventProperties = vEvent.getProperties();
for (Iterator<?> objIt = vEventProperties.iterator(); objIt.hasNext(); ) {
Object property = objIt.next();
if (property instanceof RRule || property instanceof ExDate) {
objIt.remove();
}
}
try {
Kalendar calendar = recurEvent.getCalendar();
Date startDate = recurEvent.getOccurenceDate();
String startString = CalendarUtils.formatRecurrenceDate(startDate, rootEvent.isAllDayEvent());
RecurrenceId recurId;
if (rootEvent.isAllDayEvent()) {
recurId = new RecurrenceId(tz);
recurId.setDate(CalendarUtils.createDate(startDate));
} else {
recurId = new RecurrenceId(startString, tz);
}
vEventProperties.add(recurId);
KalendarEvent kEvent = getKalendarEvent(vEvent);
kEvent.setKalendar(calendar);
return kEvent;
} catch (ParseException e) {
log.error("", e);
return null;
}
}
use of net.fortuna.ical4j.model.property.ExDate in project OpenOLAT by OpenOLAT.
the class CalendarUtils method getRecurrenceExcludeRule.
/**
* Create exclusion rule based on list with dates.
* @param dates
* @return string with exclude rule
*/
public static String getRecurrenceExcludeRule(List<Date> dates) {
if (dates != null && dates.size() > 0) {
DateList dl = new DateList();
for (Date date : dates) {
net.fortuna.ical4j.model.Date dd = CalendarUtils.createDate(date);
dl.add(dd);
}
ExDate exdate = new ExDate(dl);
return exdate.getValue();
}
return null;
}
use of net.fortuna.ical4j.model.property.ExDate in project OpenOLAT by OpenOLAT.
the class CalendarUtils method getRecurrenceExcludeDates.
/**
* Create list with excluded dates based on the exclusion rule.
* @param recurrenceExc
* @return list with excluded dates
*/
public static List<Date> getRecurrenceExcludeDates(String recurrenceExc) {
List<Date> recurExcDates = new ArrayList<>();
if (recurrenceExc != null && !recurrenceExc.equals("")) {
try {
net.fortuna.ical4j.model.ParameterList pl = new net.fortuna.ical4j.model.ParameterList();
ExDate exdate = new ExDate(pl, recurrenceExc);
DateList dl = exdate.getDates();
for (Object date : dl) {
Date excDate = (Date) date;
recurExcDates.add(excDate);
}
} catch (ParseException e) {
log.error("cannot restore recurrence exceptions", e);
}
}
return recurExcDates;
}
Aggregations