Interface SchedulingIntf

All Superinterfaces:
org.bedework.calsvci.SchedulingI, Serializable
All Known Implementing Classes:
AttendeeSchedulingHandler, FreeAndBusyHandler, ImplicitSchedulingHandler, IScheduleHandler, OrganizerSchedulingHandler, OutboundSchedulingHandler, OutBoxHandler, Scheduling, SchedulingBase

public interface SchedulingIntf extends org.bedework.calsvci.SchedulingI
Author:
douglm
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.bedework.calsvci.SchedulingI

    org.bedework.calsvci.SchedulingI.FbGranulatedResponse, org.bedework.calsvci.SchedulingI.FbResponses
  • Method Summary

    Modifier and Type
    Method
    Description
    org.bedework.base.response.Response
    addEvent(org.bedework.calfacade.svc.EventInfo ei, String namePrefix, int calType, boolean noInvites)
    Save the event which is all set up except for the name.
    org.bedework.calfacade.svc.EventInfo
    copyEventInfo(org.bedework.calfacade.svc.EventInfo ei, org.bedework.calfacade.BwPrincipal<?> owner)
    Copy an event to send as a request or a response.
    org.bedework.calfacade.ScheduleResult
    implicitSchedule(org.bedework.calfacade.svc.EventInfo ei, boolean noInvites)
    For adding the event we already have the scheduling method set.

    Methods inherited from interface org.bedework.calsvci.SchedulingI

    aggregateFreeBusy, attendeeRespond, declineCounter, findUserAttendee, getFreeBusy, getFreebusySet, getStoredMeeting, granulateFreeBusy, requestRefresh, schedule, scheduleResponse, sendReply, setupReschedule
  • Method Details

    • implicitSchedule

      org.bedework.calfacade.ScheduleResult implicitSchedule(org.bedework.calfacade.svc.EventInfo ei, boolean noInvites)
      For adding the event we already have the scheduling method set. If we are updating the event then the action depends upon the new and old methods. The scheduling result is set in the UpdateResult object.

      If we already cancelled the event then we do no scheduling. (What if we want to resend?)

      If we want to refresh we just resend it.

      If we want to cancel we send cancels.

      Parameters:
      ei - event to schedule
      noInvites - - suppresses the sending of invitations. Does NOT suppress the sending of CANCEL to disinvited attendees
    • copyEventInfo

      org.bedework.calfacade.svc.EventInfo copyEventInfo(org.bedework.calfacade.svc.EventInfo ei, org.bedework.calfacade.BwPrincipal<?> owner)
      Copy an event to send as a request or a response. Non-recurring is easy, we just copy it.

      Recurring events introduce a number of complications. We are only supposed to send as much as the recipient needs to know, that is, if an attendee has been disinvited from one instance we should not send that instance but instead add an EXDATE. For that case we will have an override that does not include the attendee.

      For the case that an attendee has been added we should remove any rules and add RDATES for all instances in which the attendee is present.

      Parameters:
      ei - to copy
      owner - of new event
      Returns:
      a copy of the event.
    • addEvent

      org.bedework.base.response.Response addEvent(org.bedework.calfacade.svc.EventInfo ei, String namePrefix, int calType, boolean noInvites)
      Save the event which is all set up except for the name. If we get a conflict we add a suffix and try again
      Parameters:
      ei - to add
      namePrefix - for name
      calType - type
      noInvites - true for send no invites
      Returns:
      null if added, error code otherwise