Class IcsReader

java.lang.Object
org.exoplatform.caldav.ics.IcsReader

@Component public class IcsReader extends Object
Reads a remote calendar object into the occurrences it produces over a window.

Two shapes arrive here and both must be handled, because which one a deployment sees is the server's choice, not ours. A server honouring CALDAV:expand answers one VEVENT per occurrence, times rewritten to UTC and the rule gone — the shape the browser connector has always parsed, since Stalwart expands. A server that ignores expand answers the stored object, rule and all, and the occurrences have to be produced here.

The second branch is the one that matters for the migration: whether a given server expands is unproven for BlueMind, and an engine that only worked against expanding servers would fail silently — not by erroring, but by showing a single event where a weekly series should be.

  • Constructor Details

    • IcsReader

      public IcsReader()
  • Method Details

    • read

      public List<org.exoplatform.caldav.model.RemoteIcsEvent> read(String ics, Instant from, Instant to)
      The occurrences a calendar object produces within a window.
      Parameters:
      ics - the calendar object as the server returned it
      from - start of the window, inclusive
      to - end of the window, exclusive
      Returns:
      the occurrences, in the order the object presents them
      Throws:
      IcsParseException - when the document is not readable iCalendar