Interface CalendarServerFlavour

All Known Implementing Classes:
PlainServerFlavour

public interface CalendarServerFlavour
What a calendar server product adds to the plain CalDAV the host speaks: which registrations are that product's, the write channels it may use besides CalDAV, and the per-account sessions it keeps outside the protocol.

How it is found. CalendarServerFlavourRegistry collects every bean implementing this interface, across web applications: a contributor is a Spring @Service, never final. The first flavour that recognises(org.exoplatform.caldav.model.CaldavServer) a registration is that registration's flavour; a registration nobody recognises is plain CalDAV (PlainServerFlavour).

What happens without one. A registration is plain CalDAV: only WriteChannel.CALDAV is accepted on save, and a stored channel no flavour allows is refused on the next save that states it and on every write (see CalendarWriteChannelPlugin), never silently switched back to CalDAV.

  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    Drops every session this product keeps, because a registration was written or removed under them.
    default void
    forgetSession(long userIdentityId, Long serverId)
    Drops whatever session this product keeps for one account, because eXo changed what that account is — a connection, a reconnection, a disconnection.
    id()
    The flavour's stable identifier, the same as the front end's server preset for the product.
    boolean
    recognises(org.exoplatform.caldav.model.CaldavServer server)
    Whether a registration stands for this product.
    Set<org.exoplatform.caldav.model.WriteChannel>
    The channels, besides WriteChannel.CALDAV, a registration of this product may declare.
  • Method Details

    • id

      String id()
      The flavour's stable identifier, the same as the front end's server preset for the product.
      Returns:
      the identifier, never blank
    • recognises

      boolean recognises(org.exoplatform.caldav.model.CaldavServer server)
      Whether a registration stands for this product.
      Parameters:
      server - the registration as posted or stored, may be null
      Returns:
      true when this flavour is the registration's
    • writeChannels

      Set<org.exoplatform.caldav.model.WriteChannel> writeChannels()
      The channels, besides WriteChannel.CALDAV, a registration of this product may declare.
      Returns:
      the channels, never null, possibly empty
    • forgetSession

      default void forgetSession(long userIdentityId, Long serverId)
      Drops whatever session this product keeps for one account, because eXo changed what that account is — a connection, a reconnection, a disconnection. Never throws for an account it keeps nothing for.
      Parameters:
      userIdentityId - the social identity of the connected user
      serverId - the registration the account was on, null for the legacy deployment property
    • forgetAllSessions

      default void forgetAllSessions()
      Drops every session this product keeps, because a registration was written or removed under them.