Search in sources :

Example 11 with DateTime

use of net.fortuna.ical4j.model.DateTime in project bw-calendar-engine by Bedework.

the class BwDateTime method makeBwDateTime.

/**
 * @param val
 * @return initialised BwDateTime
 * @throws CalFacadeException
 */
public static BwDateTime makeBwDateTime(final Date val) throws CalFacadeException {
    String tzid = null;
    boolean dateType = true;
    if (val instanceof DateTime) {
        dateType = false;
        TimeZone tz = ((DateTime) val).getTimeZone();
        if (tz != null) {
            tzid = tz.getID();
        }
    }
    return makeBwDateTime(dateType, val.toString(), tzid);
}
Also used : TimeZone(net.fortuna.ical4j.model.TimeZone) DateTime(net.fortuna.ical4j.model.DateTime)

Example 12 with DateTime

use of net.fortuna.ical4j.model.DateTime in project bw-calendar-engine by Bedework.

the class BwResource method updateLastmod.

/**
 * Update last mod fields
 * @param val
 */
public void updateLastmod(final Timestamp val) {
    DateTime dt = new DateTime(val);
    setLastmod(new LastModified(dt).getValue());
    setSequence(val.getNanos() / 100000);
}
Also used : LastModified(net.fortuna.ical4j.model.property.LastModified) DateTime(net.fortuna.ical4j.model.DateTime)

Example 13 with DateTime

use of net.fortuna.ical4j.model.DateTime in project bw-calendar-engine by Bedework.

the class SimpleFilterParser method makeTimeRange.

private TimeRange makeTimeRange(final String startStr, final String endStr) throws ParseFailed {
    try {
        DateTime start = null;
        DateTime end = null;
        if (startStr != null) {
            start = new DateTime(startStr);
        }
        if (endStr != null) {
            end = new DateTime(endStr);
        }
        return new TimeRange(start, end);
    } catch (final Throwable t) {
        throw parseResult.setCfe(new CalFacadeException(t));
    }
}
Also used : TimeRange(org.bedework.caldav.util.TimeRange) DateTime(net.fortuna.ical4j.model.DateTime) CalFacadeException(org.bedework.calfacade.exc.CalFacadeException)

Example 14 with DateTime

use of net.fortuna.ical4j.model.DateTime in project bw-calendar-engine by Bedework.

the class BwLastMod method updateLastmod.

/* ====================================================================
   *                   Convenience methods
   * ==================================================================== */
/**
 * Update last mod fields
 * @param val
 */
public void updateLastmod(final Timestamp val) {
    DateTime dt = new DateTime(val);
    setTimestamp(new LastModified(dt).getValue());
    setSequence(val.getNanos() / 100000);
}
Also used : LastModified(net.fortuna.ical4j.model.property.LastModified) DateTime(net.fortuna.ical4j.model.DateTime)

Example 15 with DateTime

use of net.fortuna.ical4j.model.DateTime in project bw-calendar-engine by Bedework.

the class RecurUtil method getLatestRecurrenceDate.

/**
 * Return the absolute latest end date for this event. Note that
 * exclusions may mean the actual latest date is earlier.
 *
 * @param evprops
 * @param vstart
 * @param enddt
 * @param d
 * @param maxRangeEnd
 * @return date
 * @throws CalFacadeException
 */
private static Date getLatestRecurrenceDate(final PropertyList evprops, final DtStart vstart, final DtEnd enddt, final Duration d, final Date maxRangeEnd) throws CalFacadeException {
    boolean debug = getLog().isDebugEnabled();
    try {
        Date start = vstart.getDate();
        Date until = null;
        /* Get the duration of the event to get us past the end
       */
        Dur dur;
        if (d != null) {
            dur = d.getDuration();
        } else {
            Date evend;
            if (enddt == null) {
                evend = start;
            } else {
                evend = enddt.getDate();
            }
            dur = new Dur(start, evend);
        }
        /* Make a new duration incremented a little to avoid any boundary
          conditions */
        if (dur.getWeeks() != 0) {
            dur = new Dur(dur.getWeeks() + 1);
        } else {
            dur = new Dur(dur.getDays() + 1, dur.getHours(), dur.getMinutes(), dur.getSeconds());
        }
        PropertyList rrules = evprops.getProperties(Property.RRULE);
        PropertyList rdts = evprops.getProperties(Property.RDATE);
        if ((rrules == null) && (rdts == null)) {
            // Not a recurring event
            return null;
        }
        if (rrules != null) {
            Iterator rit = rrules.iterator();
            while (rit.hasNext()) {
                RRule r = (RRule) rit.next();
                Date nextUntil = getLastDate(r.getRecur(), start, maxRangeEnd);
                if (nextUntil == null) {
                    /* We have a rule without an end date so it's infinite.
             */
                    return null;
                }
                if (debug) {
                    debugMsg("Last date for recur=" + nextUntil);
                }
                if ((until == null) || (nextUntil.after(until))) {
                    until = nextUntil;
                }
            }
            /* We have some rules - none have an end date so it's infinite.
         */
            if (until == null) {
                // infinite
                return null;
            }
        }
        if (rdts != null) {
            // Get the latest date from each
            // XXX are these sorted?
            Iterator rit = rdts.iterator();
            while (rit.hasNext()) {
                RDate r = (RDate) rit.next();
                if (Value.PERIOD.equals(r.getParameter(Parameter.VALUE))) {
                    PeriodList pl = r.getPeriods();
                    Iterator it = pl.iterator();
                    while (it.hasNext()) {
                        Period p = (Period) it.next();
                        // Not sure if a single date gives a null end
                        Date nextUntil = p.getEnd();
                        if (nextUntil == null) {
                            nextUntil = p.getStart();
                        }
                        if ((until == null) || (nextUntil.after(until))) {
                            until = nextUntil;
                        }
                    }
                } else {
                    // date or datetime
                    DateList startDates = r.getDates();
                    for (int j = 0; j < startDates.size(); j++) {
                        Date startDate = (Date) startDates.get(j);
                        Date endDate = new Date(dur.getTime(startDate));
                        if ((until == null) || (endDate.after(until))) {
                            until = endDate;
                        }
                    }
                }
            }
        }
        if (debug) {
            debugMsg("Last date before fix=" + until);
        }
        /* Now add the duration of the event to get us past the end
       */
        if (until instanceof DateTime) {
            until = new DateTime(dur.getTime(until));
            ((DateTime) until).setUtc(true);
        } else {
            until = new Date(dur.getTime(until));
        }
        if (debug) {
            debugMsg("Last date after fix=" + until);
        }
        return until;
    } catch (Throwable t) {
        throw new CalFacadeException(t);
    }
}
Also used : Dur(net.fortuna.ical4j.model.Dur) RDate(net.fortuna.ical4j.model.property.RDate) RRule(net.fortuna.ical4j.model.property.RRule) PeriodList(net.fortuna.ical4j.model.PeriodList) Period(net.fortuna.ical4j.model.Period) RDate(net.fortuna.ical4j.model.property.RDate) Date(net.fortuna.ical4j.model.Date) DateTime(net.fortuna.ical4j.model.DateTime) BwDateTime(org.bedework.calfacade.BwDateTime) CalFacadeException(org.bedework.calfacade.exc.CalFacadeException) PropertyList(net.fortuna.ical4j.model.PropertyList) Iterator(java.util.Iterator) DateList(net.fortuna.ical4j.model.DateList)

Aggregations

DateTime (net.fortuna.ical4j.model.DateTime)70 Period (net.fortuna.ical4j.model.Period)20 VEvent (net.fortuna.ical4j.model.component.VEvent)18 BwDateTime (org.bedework.calfacade.BwDateTime)15 CalFacadeException (org.bedework.calfacade.exc.CalFacadeException)15 Date (java.util.Date)13 TimeZone (net.fortuna.ical4j.model.TimeZone)13 ParseException (java.text.ParseException)12 DtStart (net.fortuna.ical4j.model.property.DtStart)11 Date (net.fortuna.ical4j.model.Date)10 Dur (net.fortuna.ical4j.model.Dur)10 PeriodList (net.fortuna.ical4j.model.PeriodList)10 PropertyList (net.fortuna.ical4j.model.PropertyList)9 DtStamp (net.fortuna.ical4j.model.property.DtStamp)9 LastModified (net.fortuna.ical4j.model.property.LastModified)9 Uid (net.fortuna.ical4j.model.property.Uid)9 Calendar (net.fortuna.ical4j.model.Calendar)8 Recur (net.fortuna.ical4j.model.Recur)8 ExDate (net.fortuna.ical4j.model.property.ExDate)8 GregorianCalendar (java.util.GregorianCalendar)7