All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kapott.hbci.concurrent.HBCIRunnable Maven / Gradle / Ivy

There is a newer version: 4.0.0
Show newest version
package org.kapott.hbci.concurrent;


import java.util.Properties;

import org.kapott.hbci.callback.HBCICallback;
import org.kapott.hbci.manager.HBCIHandler;
import org.kapott.hbci.manager.HBCIUtils;
import org.kapott.hbci.passport.HBCIPassport;

/**
 * Basis-Klasse für Implementierungen von {@link Runnable}, die typische Aufgaben mit einem {@link HBCIPassport}
 * ausführen sollen.
 *
 * 

Implementierungen müssen die Methode {@link #execute()} ergänzen.

* *

Bei Ausführung einer solchen {@link Runnable} passiert folgendes:

* *
    *
  1. {@link HBCIUtils.initThread(properties, callback)} wird mit den Parametern aus dem Constructor aufgerufen.
  2. *
  3. Das Passport wird von der {@link HBCIPassportFactory} abgefragt und darüber wird der {@link HBCIHandler} erzeugt.
  4. *
  5. {@link #execute()} wird aufgerufen.
  6. * {@link HBCIPassport} und {@link HBCIHandler} sind über die Variablen passport bzw. handler verfügbar. *
  7. Abschließend werden Handler und Passport geschlossen, sowie {@link HBCIUtils#doneThread()} aufgerufen.
  8. *
* * @author Hendrik Schnepel */ public abstract class HBCIRunnable implements Runnable { private final Properties properties; private final HBCICallback callback; private HBCIPassportFactory passportFactory; protected HBCIPassport passport = null; protected HBCIHandler handler = null; public HBCIRunnable(Properties properties, HBCICallback callback, HBCIPassportFactory passportFactory) { this.properties = properties; this.callback = callback; this.passportFactory = passportFactory; } @Override public final void run() { init(); try { prepare(); execute(); } catch (Exception e) { HBCIUtils.log(e); } finally { done(); } } private void init() { HBCIUtils.initThread(properties, callback); } private void prepare() throws Exception { passport = passportFactory.createPassport(); if (passport != null) { String version = passport.getHBCIVersion(); handler = new HBCIHandler((version.length() != 0) ? version : "plus", passport); } } protected abstract void execute() throws Exception; private void done() { if (handler != null) { handler.close(); } if (passport != null) { passport.close(); } HBCIUtils.doneThread(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy