Interface SynchronizeBackend

All Known Implementing Classes:
AbstractSynchronizeBackend, HBCISynchronizeBackend, ScriptingSynchronizeBackend

public interface SynchronizeBackend
Interface fuer ein Backend, welches Bank-Geschaeftsvorfaelle ausfuehren kann. Die Standard-Implementierung von Hibiscus verwendet HBCI. Es koennen aber weitere hinzugefuegt werden. Eine weitere verwendet z.Bsp. die Scripting-Funktionen.
  • Field Details

    • QUEUE_STATUS

      static final String QUEUE_STATUS
      Queue, an die der aktuelle Prozess-Status der Synchronisierung (RUNNING, ERROR, DONE, CANCEL) geschickt wird.
      See Also:
    • QUEUE_ERROR

      static final String QUEUE_ERROR
      Queue, die im Fehlerfall benachrichtigt wird. Die Message wird synchron als QueryMessage geschickt. Enthaelt sie in getData() als Rueckgabe-Wert TRUE, wird die Synchronisierung trotz Fehler nur in diesem Fall beim naechsten Konto dennoch fortgesetzt. Andernfalls wird sie abgebrochen.
      See Also:
  • Method Details

    • supports

      boolean supports(Class<? extends SynchronizeJob> type, Konto konto)
      Liefert true, wenn das Backend den angegebenen Job-Typ fuer das angegebene Konto unterstuetzt.
      Parameters:
      type - der zu pruefende Job-Typ.
      konto - das Konto.
      Returns:
      true, wenn es ihn unterstuetzt, sonst false.
    • create

      <T> T create(Class<? extends SynchronizeJob> type, Konto konto) throws de.willuhn.util.ApplicationException
      Liefert eine Instanz des angegebenen Job-Typs.
      Parameters:
      type - der zu erstellende Job-Typ.
      konto - das Konto.
      Returns:
      die Instanz des Jobs.
      Throws:
      de.willuhn.util.ApplicationException - bei einem Anwendungsfehler.
    • getSynchronizeJobs

      List<SynchronizeJob> getSynchronizeJobs(Konto k)
      Liefert eine Liste der auszufuehrenden Synchronisierungsjobs auf dem angegebenen Konto.
      Parameters:
      k - das Konto. Wenn kein Konto angegeben ist, werden die Jobs aller Konten zurueckgeliefert.
      Returns:
      Liste der auszufuehrenden Jobs. Die Funktion darf auch NULL liefern.
    • getPropertyNames

      List<String> getPropertyNames(Konto k)
      Liefert eine optionale Liste mit Property-Namen, die in Hibiscus in den Sync-Einstellungen als Eingabefelder fuer zusaetzliche Konfigurationsoptionen angezeigt werden sollen. Wird z.Bsp. vom ScriptingBackend verwendet, um dort die Zugangsdaten zur Webseite hinterlegen zu koennen, ohne dafuer Kontonummer, Benutzerkennung, usw. des Kontos "missbrauchen" zu muessen. Die vom Benutzer eingegebenen Werte werden als Meta-Daten zum Konto gespeichert. Sie koennen mittels HibiscusDBObject.getMeta(String, String) wieder abgerufen werden. Besitzt ein Property den Suffix "(true/false)" wird es als Checkbox angezeigt. Besitzt ein Property den Suffix "(pwd)" oder "(password)" wird es als Passwort-Eingabe angezeigt. Der Suffix wird vor dem Speichern des Property in den Meta-Daten des Konto entfernt.
      Parameters:
      k - das Konto.
      Returns:
      Liste von lesbaren Property-Namen. Die werden dem Benutzer 1:1 als Label von Eingabefeldern angezeigt.
    • execute

      SynchronizeSession execute(List<SynchronizeJob> jobs) throws de.willuhn.util.ApplicationException, de.willuhn.jameica.system.OperationCanceledException
      Fuehrt die uebergebenen Jobs auf dem Backend aus.
      Parameters:
      jobs - die auszufuehrenden Jobs.
      Returns:
      die neue Session.
      Throws:
      de.willuhn.util.ApplicationException - bei einem Anwendungsfehler.
      de.willuhn.jameica.system.OperationCanceledException - wenn der User die Synchronisierung abgebrochen hat.
    • getCurrentSession

      SynchronizeSession getCurrentSession()
      Liefert die aktuelle Session oder NULL wenn gerade keine laeuft.
      Returns:
      die aktuelle Session oder NULL wenn gerade keine laeuft.
    • getName

      String getName()
      Liefert einen sprechenden Namen fuer das Backend.
      Returns:
      sprechender Name fuer das Backend.