Package de.willuhn.jameica.hbci.synchronize

# 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 Summary

Fields
Modifier and Type
Field
Description
`static final String`
`QUEUE_ERROR`
Queue, die im Fehlerfall benachrichtigt wird.
`static final String`
`QUEUE_NEXT`
Queue, die benachrichtigt wird, um das nächste Backend zu starten.
`static final String`
`QUEUE_STATUS`
Queue, an die der aktuelle Prozess-Status der Synchronisierung (RUNNING, ERROR, DONE, CANCEL) geschickt wird.

## Method Summary

Modifier and Type
Method
Description
`<T> T`
`create(Class<? extends SynchronizeJob> type, Konto konto)`
Liefert eine Instanz des angegebenen Job-Typs.
`SynchronizeSession`
`execute(List<SynchronizeJob> jobs)`
Fuehrt die uebergebenen Jobs auf dem Backend aus.
`SynchronizeSession`
`getCurrentSession()`
Liefert die aktuelle Session oder NULL wenn gerade keine laeuft.
`String`
`getName()`
Liefert einen sprechenden Namen fuer das Backend.
`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.
`List<SynchronizeJob>`
`getSynchronizeJobs(Konto k)`
Liefert eine Liste der auszufuehrenden Synchronisierungsjobs auf dem angegebenen Konto.
`boolean`
`supports(Class<? extends SynchronizeJob> type, Konto konto)`
Liefert true, wenn das Backend den angegebenen Job-Typ fuer das angegebene Konto unterstuetzt.

## 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:
  - Constant Field Values

### QUEUE_NEXT

static final String QUEUE_NEXT
Queue, die benachrichtigt wird, um das nächste Backend zu starten.

See Also:
  - Constant Field Values

### 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:
  - Constant Field Values

## 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.