Search in sources :

Example 6 with Recur

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);
}
Also used : WeekDayList(net.fortuna.ical4j.model.WeekDayList) Recur(net.fortuna.ical4j.model.Recur)

Example 7 with 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);
}
Also used : WeekDay(net.fortuna.ical4j.model.WeekDay) Recur(net.fortuna.ical4j.model.Recur)

Example 8 with 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;
    }
}
Also used : DtStart(net.fortuna.ical4j.model.property.DtStart) RDate(net.fortuna.ical4j.model.property.RDate) ExDate(net.fortuna.ical4j.model.property.ExDate) Recur(net.fortuna.ical4j.model.Recur)

Example 9 with Recur

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;
}
Also used : WeekDay(net.fortuna.ical4j.model.WeekDay) HashSet(java.util.HashSet) Recur(net.fortuna.ical4j.model.Recur)

Example 10 with Recur

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);
}
Also used : NumberList(net.fortuna.ical4j.model.NumberList) Recur(net.fortuna.ical4j.model.Recur)

Aggregations

Recur (net.fortuna.ical4j.model.Recur)25 ParseException (java.text.ParseException)13 ExDate (net.fortuna.ical4j.model.property.ExDate)9 RRule (net.fortuna.ical4j.model.property.RRule)9 DateTime (net.fortuna.ical4j.model.DateTime)8 Date (java.util.Date)6 NumberList (net.fortuna.ical4j.model.NumberList)4 WeekDay (net.fortuna.ical4j.model.WeekDay)4 WeekDayList (net.fortuna.ical4j.model.WeekDayList)4 Date (net.fortuna.ical4j.model.Date)3 TimeZone (net.fortuna.ical4j.model.TimeZone)3 VEvent (net.fortuna.ical4j.model.component.VEvent)3 CalFacadeException (org.bedework.calfacade.exc.CalFacadeException)3 URISyntaxException (java.net.URISyntaxException)2 PropertyList (net.fortuna.ical4j.model.PropertyList)2 Contact (net.fortuna.ical4j.model.property.Contact)2 Created (net.fortuna.ical4j.model.property.Created)2 Description (net.fortuna.ical4j.model.property.Description)2 LastModified (net.fortuna.ical4j.model.property.LastModified)2 Location (net.fortuna.ical4j.model.property.Location)2