use of net.fortuna.ical4j.model.Recur in project ofbiz-framework by apache.
the class ICalRecurConverter method visit.
@SuppressWarnings("unchecked")
@Override
public void visit(TemporalExpressions.DayOfWeekRange expr) {
int startDay = expr.getStartDay();
int endDay = expr.getEndDay();
WeekDayList dayList = new WeekDayList();
dayList.add(dayOfWeekArray[startDay - 1]);
while (startDay != endDay) {
startDay++;
if (startDay > Calendar.SATURDAY) {
startDay = Calendar.SUNDAY;
}
dayList.add(dayOfWeekArray[startDay - 1]);
}
Recur recur = new Recur(Recur.DAILY, 0);
recur.getDayList().addAll(dayList);
this.state.addRecur(recur);
}
use of net.fortuna.ical4j.model.Recur in project ofbiz-framework by apache.
the class ICalRecurConverter method visit.
@Override
public void visit(TemporalExpressions.DayInMonth expr) {
Recur recur = new Recur(Recur.MONTHLY, 0);
recur.getDayList().add(new WeekDay(dayOfWeekArray[expr.getDayOfWeek() - 1], expr.getOccurrence()));
this.state.addRecur(recur);
}
use of net.fortuna.ical4j.model.Recur in project ofbiz-framework by apache.
the class ICalRecurConverter method visit.
@Override
public void visit(TemporalExpressions.Frequency expr) {
if (this.dateStart == null) {
this.dateStart = new DtStart(new net.fortuna.ical4j.model.Date(expr.getStartDate()));
}
int freqCount = expr.getFreqCount();
int freqType = expr.getFreqType();
switch(freqType) {
case Calendar.SECOND:
this.state.addRecur((new Recur(Recur.SECONDLY, freqCount)));
break;
case Calendar.MINUTE:
this.state.addRecur((new Recur(Recur.MINUTELY, freqCount)));
break;
case Calendar.HOUR:
this.state.addRecur((new Recur(Recur.HOURLY, freqCount)));
break;
case Calendar.DAY_OF_MONTH:
this.state.addRecur((new Recur(Recur.DAILY, freqCount)));
break;
case Calendar.MONTH:
this.state.addRecur((new Recur(Recur.MONTHLY, freqCount)));
break;
case Calendar.YEAR:
this.state.addRecur((new Recur(Recur.YEARLY, freqCount)));
break;
default:
break;
}
}
use of net.fortuna.ical4j.model.Recur in project ofbiz-framework by apache.
the class ICalRecurConverter method consolidateRecurs.
@SuppressWarnings("unchecked")
protected Recur consolidateRecurs(List<Recur> recurList) {
// Try to consolidate a list of Recur instances into one instance
Set<Integer> monthList = new HashSet<>();
Set<Integer> monthDayList = new HashSet<>();
Set<WeekDay> weekDayList = new HashSet<>();
Set<Integer> hourList = new HashSet<>();
Set<Integer> minuteList = new HashSet<>();
String freq = null;
int freqCount = 0;
for (Recur recur : recurList) {
monthList.addAll(recur.getMonthList());
monthDayList.addAll(recur.getMonthDayList());
weekDayList.addAll(recur.getDayList());
hourList.addAll(recur.getHourList());
minuteList.addAll(recur.getMinuteList());
if (recur.getInterval() != 0) {
freq = recur.getFrequency();
freqCount = recur.getInterval();
}
}
if (freq == null && monthList.size() > 0) {
freq = Recur.MONTHLY;
} else if (freq == null && (monthDayList.size() > 0 || weekDayList.size() > 0)) {
freq = Recur.DAILY;
} else if (freq == null && hourList.size() > 0) {
freq = Recur.HOURLY;
} else if (freq == null && minuteList.size() > 0) {
freq = Recur.MINUTELY;
}
if (freq == null) {
throw new IllegalStateException("Unable to convert intersection");
}
Recur newRecur = new Recur(freq, 0);
if (freqCount != 0) {
newRecur.setInterval(freqCount);
}
newRecur.getMonthList().addAll(monthList);
newRecur.getMonthDayList().addAll(monthDayList);
newRecur.getDayList().addAll(weekDayList);
newRecur.getHourList().addAll(hourList);
newRecur.getMinuteList().addAll(minuteList);
return newRecur;
}
use of net.fortuna.ical4j.model.Recur in project ofbiz-framework by apache.
the class ICalRecurConverter method visit.
@SuppressWarnings("unchecked")
@Override
public void visit(MinuteRange expr) {
NumberList minuteList = new NumberList();
minuteList.addAll(expr.getMinuteRangeAsSet());
Recur recur = new Recur(Recur.MINUTELY, 0);
recur.getMinuteList().addAll(minuteList);
this.state.addRecur(recur);
}
Aggregations