Class AbstractSynchronizeBackend<T extends SynchronizeJobProvider>

    • Constructor Detail

      • AbstractSynchronizeBackend

        public AbstractSynchronizeBackend()
    • Method Detail

      • getSynchronizeKonten

        public java.util.List<Konto> getSynchronizeKonten​(Konto k)
        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

        protected abstract java.lang.Class<T> getJobProviderInterface()
        Liefert das Marker-Interface der Job-Provider des Backends.
        Returns:
        das Marker-Interface der Job-Provider des Backends.
      • createJobGroup

        protected abstract AbstractSynchronizeBackend.JobGroup createJobGroup​(Konto k)
        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

        protected java.util.List<T> getJobProviders()
        Liefert unsere Job-Provider.
        Returns:
        unsere Job-Provider.
      • getImplementor

        protected java.lang.Class<? extends SynchronizeJob> getImplementor​(java.lang.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​(java.lang.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 interface SynchronizeBackend
        Parameters:
        type - der zu erstellende Job-Typ.
        konto - das Konto.
        Returns:
        die Instanz des Jobs.
        Throws:
        de.willuhn.util.ApplicationException - bei einem Anwendungsfehler.
      • supports

        public boolean supports​(java.lang.Class<? extends SynchronizeJob> type,
                                Konto konto)
        Kann ueberschrieben werden, um weitere Checks durchzufuehren.
        Specified by:
        supports in interface SynchronizeBackend
        Parameters:
        type - der zu pruefende Job-Typ.
        konto - das Konto.
        Returns:
        true, wenn es ihn unterstuetzt, sonst false.
      • getSynchronizeJobs

        public final java.util.List<SynchronizeJob> getSynchronizeJobs​(Konto k)
        Description copied from interface: SynchronizeBackend
        Liefert eine Liste der auszufuehrenden Synchronisierungsjobs auf dem angegebenen Konto.
        Specified by:
        getSynchronizeJobs in interface SynchronizeBackend
        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

        public java.util.List<java.lang.String> getPropertyNames​(Konto k)
        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 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.
        Specified by:
        getPropertyNames in interface SynchronizeBackend
        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​(java.util.List<SynchronizeJob> jobs)
                                   throws de.willuhn.util.ApplicationException,
                                          de.willuhn.jameica.system.OperationCanceledException
        Kann ueberschrieben werden, um weitere Checks durchzufuehren.
        Specified by:
        execute in interface SynchronizeBackend
        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.