Interface ReminderStorageProvider

All Known Implementing Classes:
AbstractReminderStorageProvider, ReminderStorageProviderWallet

public interface ReminderStorageProvider
Interface fuer einen Storage-Provider von Remindern.
  • Method Details

    • get

      Reminder get(String uuid) throws Exception
      Liefert den Reminder zur angegebenen UUID.
      Parameters:
      uuid - die UUID des Reminders.
      Returns:
      der Reminder oder NULL, wenn er nicht existiert.
      Throws:
      Exception
    • update

      void update(String uuid, Reminder reminder) throws Exception
      Aktualisiert einen vorhandenen Reminder.
      Parameters:
      uuid - die UUID des Reminders.
      reminder - der Reminder.
      Throws:
      Exception
    • add

      String add(Reminder reminder) throws Exception
      Fuegt einen neuen Reminder hinzu.
      Parameters:
      reminder - der zu speichernde Reminder.
      Returns:
      die vergebene UUID fuer den Reminder.
      Throws:
      Exception
    • delete

      Reminder delete(String uuid) throws Exception
      Loescht einen Reminder.
      Parameters:
      uuid - die UUID des Reminders.
      Returns:
      der geloeschte Reminder oder NULL, wenn er nicht gefunden wurde.
      Throws:
      Exception
    • find

      Map<String,Reminder> find(String queue, Date from, Date to) throws Exception
      Liefert eine Liste aller Reminder im angegebenen Zeitraum.

      Die Funktion findet auch wiederkehrende Reminder, insofern mindestens eine geplante Ausfuehrung im angegebenen Zeitraum liegt. Befinden sich in dem Zeitraum mehrere Termine fuer den Reminder, dann ist er in der Map dennoch nur einmal enthalten, da alle weiteren Termine dieses Reminders ja die selbe UUID haben und in der Map nur einmal auftreten koennen (weil Key=UUID). Es ist also Sache des Aufrufers, zu pruefen, ob unter den zurueckgelieferten Termine welche mit Wiederholungen enthalten sind und diese eventuell ebenfalls noch im Zeitfenster liegen. Das kann beispielsweise wie folgt geschehen:

      
       ReminderInterval ri = reminder.getReminderInterval();
       if (ri != null)
       {
         List<Date> termine = ri.getDates(reminder.getDate(),from,to);
       }
       

      Wiederkehrende Reminder mit Ende-Datum werden hier noch nicht beruecksichtigt. Sie werden also mit zurueckgeliefert, als wenn sie kein Ende-Datum haetten. Es ist dann Aufgabe des Aufrufers, diese rauszufischen, wenn das Ende-Datum ueberschritten ist.

      Parameters:
      queue - Angabe der Queue, in dem sich die Reminder befinden muessen (optional). Ist keine Queue angegeben, werden die Reminder aller Queues geliefert.
      from - Start-Datum des Zeitraumes (optional).
      to - End-Datum des Zeitraumes (optional).
      Returns:
      Map mit den Remindern. Key ist die UUID, Value der Reminder.
      Throws:
      Exception
    • getUUIDs

      String[] getUUIDs() throws Exception
      Liefert eine Lister der UUIDs aller Reminder in dem Storage-Provider.
      Returns:
      Liste der UUIDs aller Reminder in dem Storage-Provider
      Throws:
      Exception