Class AbstractSynchronizeBackend<T extends SynchronizeJobProvider>
java.lang.Object
de.willuhn.jameica.hbci.synchronize.AbstractSynchronizeBackend<T>
- Type Parameters:
T
- der konkrete Typ des JobProviders.
- All Implemented Interfaces:
SynchronizeBackend
- Direct Known Subclasses:
HBCISynchronizeBackend
,ScriptingSynchronizeBackend
public abstract class AbstractSynchronizeBackend<T extends SynchronizeJobProvider>
extends Object
implements SynchronizeBackend
Abstrakte Basis-Implementierung fuer ein Synchronize-Backend.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
Abstrakte Basis-Klasse, die die Jobs nach Konten gruppiert und ausfuehrt.protected class
Container fuer alle auszufuehrenden Jobs gruppiert nach Konto.protected class
Implementierung des eigentlichen Worker-Threads. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final de.willuhn.util.I18N
protected AbstractSynchronizeBackend<T>.Worker
Fields inherited from interface de.willuhn.jameica.hbci.synchronize.SynchronizeBackend
QUEUE_ERROR, QUEUE_STATUS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<R> R
create
(Class<? extends SynchronizeJob> type, Konto konto) Kann ueberschrieben werden, um weitere Checks durchzufuehren oder weitere Context-Properties im Job zu setzen.protected abstract AbstractSynchronizeBackend<T>.JobGroup
Muss ueberschrieben werden, um dort eine Instanz der JobGroup zurueckzuliefern, in der die sync()-Funktion implementiert ist.execute
(List<SynchronizeJob> jobs) Kann ueberschrieben werden, um weitere Checks durchzufuehren.final SynchronizeSession
Liefert die aktuelle Session oder NULL wenn gerade keine laeuft.protected Class
<? extends SynchronizeJob> getImplementor
(Class<? extends SynchronizeJob> type, Konto konto) Liefert die passende Implementierung fuer den angegebenen Job.Liefert das Marker-Interface der Job-Provider des Backends.Liefert unsere Job-Provider.Liefert eine optionale Liste mit Property-Namen, die in Hibiscus in den Sync-Einstellungen als Eingabefelder fuer zusaetzliche Konfigurationsoptionen angezeigt werden sollen.final List
<SynchronizeJob> Liefert eine Liste der auszufuehrenden Synchronisierungsjobs auf dem angegebenen Konto.Liefert eine Liste der Konten, fuer die die Synchronisierung ausgefuehrt werden.boolean
supports
(Class<? extends SynchronizeJob> type, Konto konto) Kann ueberschrieben werden, um weitere Checks durchzufuehren.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface de.willuhn.jameica.hbci.synchronize.SynchronizeBackend
getName
-
Field Details
-
i18n
protected static final de.willuhn.util.I18N i18n -
worker
-
-
Constructor Details
-
AbstractSynchronizeBackend
public AbstractSynchronizeBackend()
-
-
Method Details
-
getSynchronizeKonten
Liefert eine Liste der Konten, fuer die die Synchronisierung ausgefuehrt werden. Die Funktion macht nichts anderes, als: - alle zur Synchronisierung aktiven zurueckzuliefern, wenn k=null ist - eine Liste mit nur dem angegebenen Konto zurueckzuliefern, wenn k!=null ist. Die Liste enthaelt jedoch generell nur Konten, die nicht deaktiviert sind. Kann ueberschrieben werden, um die Liste weiter einzuschraenken.- Parameters:
k
- das Konto.- Returns:
- die Liste der Konten.
-
getJobProviderInterface
Liefert das Marker-Interface der Job-Provider des Backends.- Returns:
- das Marker-Interface der Job-Provider des Backends.
-
createJobGroup
Muss ueberschrieben werden, um dort eine Instanz der JobGroup zurueckzuliefern, in der die sync()-Funktion implementiert ist.- Parameters:
k
- das Konto der Gruppe.- Returns:
- die Instanz der Gruppe.
-
getJobProviders
Liefert unsere Job-Provider.- Returns:
- unsere Job-Provider.
-
getImplementor
protected Class<? extends SynchronizeJob> getImplementor(Class<? extends SynchronizeJob> type, Konto konto) Liefert die passende Implementierung fuer den angegebenen Job.- Parameters:
type
- der Typ des Jobs.konto
- das Konto, fuer das der Job gesucht wird.- Returns:
- die passende Implementierung oder null, wenn keine Implementierung gefunden wurde.
-
create
public <R> R create(Class<? extends SynchronizeJob> type, Konto konto) throws de.willuhn.util.ApplicationException Kann ueberschrieben werden, um weitere Checks durchzufuehren oder weitere Context-Properties im Job zu setzen.- Specified by:
create
in interfaceSynchronizeBackend
- Parameters:
type
- der zu erstellende Job-Typ.konto
- das Konto.- Returns:
- die Instanz des Jobs.
- Throws:
de.willuhn.util.ApplicationException
- bei einem Anwendungsfehler.
-
supports
Kann ueberschrieben werden, um weitere Checks durchzufuehren.- Specified by:
supports
in interfaceSynchronizeBackend
- Parameters:
type
- der zu pruefende Job-Typ.konto
- das Konto.- Returns:
- true, wenn es ihn unterstuetzt, sonst false.
-
getSynchronizeJobs
Description copied from interface:SynchronizeBackend
Liefert eine Liste der auszufuehrenden Synchronisierungsjobs auf dem angegebenen Konto.- Specified by:
getSynchronizeJobs
in interfaceSynchronizeBackend
- 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
Description copied from interface:SynchronizeBackend
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 mittelsHibiscusDBObject.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.- Specified by:
getPropertyNames
in interfaceSynchronizeBackend
- Parameters:
k
- das Konto.- Returns:
- Liste von lesbaren Property-Namen. Die werden dem Benutzer 1:1 als Label von Eingabefeldern angezeigt.
-
execute
public SynchronizeSession execute(List<SynchronizeJob> jobs) throws de.willuhn.util.ApplicationException, de.willuhn.jameica.system.OperationCanceledException Kann ueberschrieben werden, um weitere Checks durchzufuehren.- Specified by:
execute
in interfaceSynchronizeBackend
- 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
Description copied from interface:SynchronizeBackend
Liefert die aktuelle Session oder NULL wenn gerade keine laeuft.- Specified by:
getCurrentSession
in interfaceSynchronizeBackend
- Returns:
- die aktuelle Session oder NULL wenn gerade keine laeuft.
-