Class RemoteCalendar

java.lang.Object
org.exoplatform.caldav.model.RemoteCalendar

public class RemoteCalendar extends Object
A calendar of the connected account, in the shape agenda expects from any connector.

The identity is the collection href and never the display name: a user renaming a calendar in their own client must not detach whatever eXo has associated with it, and nothing stops two collections sharing a name.

Since EXO-90237 a calendar also says whether it is shared with the user rather than theirs, and by whom when that can be told. shared is distinct from readOnly: a calendar of the user's own can be read-only because the server grants no write, and a share is read-only because it is somebody else's — agenda groups on the first and locks on the second. The owner travels in three fields, all null when unknown and always null when shared is false — the user's own calendar names nobody, read-only or not. For a colleague's eXo calendar the deployment knows the owner as one of its users, and names them by identity, login and full name; for a share the server alone reported, the owner is named the same way when exactly one user of this deployment is connected to that server as the owner principal (EXO-90243), and otherwise only a display name is known — the owner principal's DAV:displayname, or the last segment of its path — and the identity fields stay null. Naming the owner to the viewer is acceptable because the viewer already holds read access the owner granted; what is never exposed is more than the server itself told the viewer, which is why a DAV login is shown only as the server spelled it in the principal path.

  • Constructor Summary

    Constructors
    Constructor
    Description
    RemoteCalendar(String id, String name, String color, boolean readOnly)
    A calendar nothing is said about beyond its own properties: not shared, no owner named — the shape every caller built before ownership was carried (EXO-90237), kept so that a calendar built by hand never classifies as a share by accident.
    RemoteCalendar(String id, String name, String color, boolean readOnly, boolean shared, Long ownerIdentityId, String ownerUsername, String ownerDisplayName)
    A calendar with its owner named and its kind derived: a share belongs to a person unless said otherwise — the shape every caller built before the kind was carried (EXO-90275).
  • Method Summary

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RemoteCalendar

      public RemoteCalendar(String id, String name, String color, boolean readOnly, boolean shared, Long ownerIdentityId, String ownerUsername, String ownerDisplayName)
      A calendar with its owner named and its kind derived: a share belongs to a person unless said otherwise — the shape every caller built before the kind was carried (EXO-90275).
      Parameters:
      id - the collection href
      name - its display name
      color - a usable colour
      readOnly - whether events may be written into it
      shared - whether it is somebody else's
      ownerIdentityId - the owner's identity, when a user of this deployment
      ownerUsername - the owner's login, under the same condition
      ownerDisplayName - how to name the owner
    • RemoteCalendar

      public RemoteCalendar(String id, String name, String color, boolean readOnly)
      A calendar nothing is said about beyond its own properties: not shared, no owner named — the shape every caller built before ownership was carried (EXO-90237), kept so that a calendar built by hand never classifies as a share by accident.
      Parameters:
      id - the collection href
      name - its display name
      color - a usable colour
      readOnly - whether events may be written into it