Klasse PutCalendarDispatcher

java.lang.Object
de.svws_nrw.davapi.api.PutCalendarDispatcher

public class PutCalendarDispatcher extends Object
Dispatcher-Klasse für die Verarbeitung von Requests auf das DAV-API mittels der HTTP-Methode REPORT auf die Ressource Kalender.
  • Konstruktordetails

    • PutCalendarDispatcher

      public PutCalendarDispatcher(IKalenderEintragRepository kalenderEintragRepository, DavUriParameter uriParameter)
      Erstellt einen neuen Dispatcher mit den angegebenen Repositorys und URI-Parametern
      Parameter:
      kalenderEintragRepository - das Repository für Kalendereinträge
      uriParameter - die URI-Parameter für im Response verwendete URIs
  • Methodendetails

    • dispatchUpdate

      public Object dispatchUpdate(InputStream inputStream, String ressourceCollectionId, String ressourceUID, String eTag)
      Aktualisiert einen vorhandenen Kalendereintrag in der gegebenen Ressourcensammlung mit der gegebenen RessourcenUID, sofern das gegebene eTag (die Version des Clients) der Version des Servers entspricht.
      Parameter:
      inputStream - der InputStream mit dem VCalendar payload
      ressourceCollectionId - die ID des Kalenders
      ressourceUID - die UID des Kalendereintrags
      eTag - eTag des Clients, also die Versionsnummer, die dem Client zuletzt bekannt war
      Gibt zurück:
      das aktuellste eTag des Servers nach aktualisieren (also die Versionsnummer) oder ein Error-Objekt im Fehlerfall
    • dispatchCreate

      public Object dispatchCreate(InputStream inputStream, String ressourceCollectionId, String ressourceUID)
      Erstellt einen neuen Kalendereintrag in der gegebenen Ressourcensammlung mit der gegebenen Ressourcen-UID.
      Parameter:
      inputStream - der InputStream mit dem VCalendar payload
      ressourceCollectionId - die ID des Kalenders
      ressourceUID - die UID des Kalendereintrags dem Client zuletzt bekannt war
      Gibt zurück:
      das aktuellste eTag des Servers nach Erstellen (also die Versionsnummer) oder ein Error-Objekt im Fehlerfall
    • createResourceNotFoundError

      protected Error createResourceNotFoundError(String message)
      Erzeugt ein Error-Rückgabeobjekt mit der angegebenen Message. Dieses Objekt wird von den Dispatchern zurückgegeben, wenn die angefragten Ressource nicht gefunden wurde.
      Parameter:
      message - Fehlermeldung
      Gibt zurück:
      Error-Objekt
    • createResponse

      protected static final Response createResponse(@NotNull @NotNull Prop propRequested, @NotNull @NotNull Prop propResponded)
      Erzeugt ein Response-Rückgabeobjekt. Diese wird dynamisch aufgebaut auf der Basis der im Request angefragten Properties zu einer Ressource und den tatsächlich gefundenen/ermittelten Properties. Nicht-gefundene Properties oder Ressourcen werden in einem speziellen Block (404) im Response aufgelistet.
      Parameter:
      propRequested - Angeforderte Properties zu einer Ressource
      propResponded - Gefundene/Ermittelte Properties zu einer Ressource
      Gibt zurück:
      Response-Objekt
    • getReadOnlyPrivilegeSet

      protected static final CurrentUserPrivilegeSet getReadOnlyPrivilegeSet()
      Erzeugt ein DAV-Objekt vom Typ CurrentUserPrivilegeSet, das alle erforderlichen Rechte (Privileges) für einen lesenden Zugriff auf DAV-Ressourcen enthält.
      Gibt zurück:
      CurrentUserPrivilegeSet mit Privileges für einen lesenden Zugriff.
    • getPrivilegeSet

      protected static final CurrentUserPrivilegeSet getPrivilegeSet(boolean darfLesen, boolean darfSchreiben)
      Erzeugt ein DAV-Objekt vom Typ CurrentUserPrivilegeSet, das alle erforderlichen Rechte (Privileges) für einen lesenden Zugriff auf DAV-Ressourcen enthält.
      Parameter:
      darfLesen - ob der angemeldete Nutzer den Kalender Lesen darf
      darfSchreiben - ob der angemeldete Nutzer auf dem Kalender schreiben darf
      Gibt zurück:
      CurrentUserPrivilegeSet mit Privileges für einen lesenden Zugriff.
    • adjustETags

      protected String adjustETags(String value)
      Homogenisiert eTag-Werte von unterschiedlichen Quellsystemen. In Abhängigkeit der Quellsysteme (z.B. Thunderbird, Outlook) werden teilweise Anführungszeichen als Bestandteil der Werte von eTags oder ifMatch-Headers mitgesendet oder nicht. Die DAV-Dispatcher benötigen diese Methode, um eine einheitliche Auswertung dieser Werte sicherzustellen.
      Parameter:
      value - String, kann Anführungszeichen enthalten
      Gibt zurück:
      String, enthält keine Anführungszeichen mehr