public class HBCICallbackUnsupported extends Object implements HBCICallback
UnsupportedOperationException wirft.
Diese Klasse vereinfacht die Initialisierung der HBCI4Java-Umgebung in Multithread- Anwendungen, die im Haupt-Thread keine echte Interaktion mit HBCI4Java erwarten bzw. sogar sicherstellen wollen.
HBCIUtils.init(new Properties(), new HBCICallbackUnsupported());
//...
CLOSE_CONNECTION, HAVE_CHIPCARD, HAVE_CRC_ERROR, HAVE_ERROR, HAVE_HARDPIN, HAVE_IBAN_ERROR, HAVE_INST_MSG, HAVE_NEW_MY_KEYS, NEED_BLZ, NEED_CHIPCARD, NEED_CONNECTION, NEED_COUNTRY, NEED_CUSTOMERID, NEED_FILTER, NEED_HARDPIN, NEED_HOST, NEED_INFOPOINT_ACK, NEED_NEW_INST_KEYS_ACK, NEED_PASSPHRASE_LOAD, NEED_PASSPHRASE_SAVE, NEED_PORT, NEED_PROXY_PASS, NEED_PROXY_USER, NEED_PT_PHOTOTAN, NEED_PT_PIN, NEED_PT_SECMECH, NEED_PT_TAN, NEED_PT_TANMEDIA, NEED_REMOVE_CHIPCARD, NEED_SIZENTRY_SELECT, NEED_SOFTPIN, NEED_USERID, STATUS_DIALOG_END, STATUS_DIALOG_END_DONE, STATUS_DIALOG_INIT, STATUS_DIALOG_INIT_DONE, STATUS_INIT_SIGID, STATUS_INIT_SIGID_DONE, STATUS_INIT_SYSID, STATUS_INIT_SYSID_DONE, STATUS_INIT_UPD, STATUS_INIT_UPD_DONE, STATUS_INST_BPD_INIT, STATUS_INST_BPD_INIT_DONE, STATUS_INST_GET_KEYS, STATUS_INST_GET_KEYS_DONE, STATUS_LOCK_KEYS, STATUS_LOCK_KEYS_DONE, STATUS_MSG_CREATE, STATUS_MSG_CRYPT, STATUS_MSG_DECRYPT, STATUS_MSG_PARSE, STATUS_MSG_RAW_RECV, STATUS_MSG_RAW_SEND, STATUS_MSG_RECV, STATUS_MSG_SEND, STATUS_MSG_SIGN, STATUS_MSG_VERIFY, STATUS_SEND_INFOPOINT_DATA, STATUS_SEND_KEYS, STATUS_SEND_KEYS_DONE, STATUS_SEND_TASK, STATUS_SEND_TASK_DONE, TYPE_BOOLEAN, TYPE_NONE, TYPE_SECRET, TYPE_TEXT, USERID_CHANGED, WRONG_PIN| Constructor and Description |
|---|
HBCICallbackUnsupported() |
| Modifier and Type | Method and Description |
|---|---|
void |
callback(HBCIPassport passport,
int reason,
String msg,
int datatype,
StringBuffer retData)
Wird vom HBCI-Kernel aufgerufen, wenn die Interaktion mit der
Anwendung erforderlich ist.
|
void |
log(String msg,
int level,
Date date,
StackTraceElement trace)
Wird aufgerufen, wenn der HBCI-Kernel eine Log-Ausgabe
erzeugt.
|
void |
status(HBCIPassport passport,
int statusTag,
Object o)
Kurzform für
HBCICallback.status(HBCIPassport, int, Object[]) für den Fall,
dass das Object[] nur ein einziges Objekt enthält |
void |
status(HBCIPassport passport,
int statusTag,
Object[] o)
Wird vom HBCI-Kernel aufgerufen, um einen bestimmten Status der
Abarbeitung bekanntzugeben.
|
boolean |
useThreadedCallback(HBCIPassport passport,
int reason,
String msg,
int datatype,
StringBuffer retData)
Legt fest, ob ein Callback asynchron oder über den threaded-callback-Mechanismus
behandelt werden soll.
|
public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
HBCICallbackreason) übergeben, der anzeigt, welche Ursache
dieser Callbackaufruf hat, d.h. welche Daten oder Aktionen erwartet werden.
Falls Daten erwartet werden (z.B. ein Passwort, eine Benutzerkennung, ...),
so ist legt der Parameter datatype fest, wie diese Daten erwartet
werden. Die eigentlichen Daten muss die Anwendung im Objekt retData
ablegen (keinen neuen StringBuffer erzeugen, sondern den Inhalt von retData
überschreiben!). Bei einigen Callbacks übergibt HBCI4Java einen vorgeschlagenen
default-Wert für die Nutzereingabe im retData-Objekt. Diese Tatsache ist
besonders bei der Auswertung des Callbacks HBCICallback.HAVE_CRC_ERROR zu beachten!callback in interface HBCICallbackpassport - enthält das Passport-Objekt, bei dessen Benutzung der
Callback erzeugt wurde. Falls also in einer Anwendung mehrere
Passport-Objekte gleichzeitig benutzt werden, so kann anhand
dieses Parameters festgestellt werden, welches Passport
(und damit welches HBCIHandle) HBCI4Java gerade benutzt.reason - gibt den Grund für diesen Aufruf an. Dieser Parameter kann
alle Werte annehmen, die als "Ursache des Callback-Aufrufes" in der Dokumentation
aufgeführt sind. Je nach Wert dieses Parameters werden vom Nutzer
Aktionen oder Eingaben erwartet.msg - ein Hinweistext, der den Grund des Callbacks näher beschreibt.
Dieser Parameter muss nicht ausgewertet werden, der Parameter
reason ist bereits eindeutig. Er dient nur dazu,
bei Anwendungen, die nicht für jeden Ursache des Callback-Aufrufes einen eigenen
Hinweistext bereitstellen wollen, eine Art default-Wert für den
anzuzeigenden Text bereitzustellen.datatype - legt fest, welchen Datentyp die vom HBCI-Kernel erwarteten
Antwortdaten haben müssen. Ist dieser Wert gleich
TYPE_NONE, so werden keine Antwortdaten (also keine
Nutzereingabe) erwartet, bei TYPE_SECRET und
TYPE_TEXT wird ein normaler String erwartet.TYPE_SECRET sensible Daten (Passwörter usw.) eingegeben
werden sollen, so dass die Eingaberoutine evtl. anders arbeiten
muss (z.B. Sternchen anstatt dem eingegebenen Text darstellen).retData - In diesem StringBuffer-Objekt müssen die Antwortdaten
abgelegt werden. Beim Aufruf der Callback-Methode von HBCI4Java wird dieser
StringBuffer u.U. mit einem vorgeschlagenen default-Wert für die Nutzereingabe
gefüllt.public void status(HBCIPassport passport, int statusTag, Object o)
HBCICallbackHBCICallback.status(HBCIPassport, int, Object[]) für den Fall,
dass das Object[] nur ein einziges Objekt enthältstatus in interface HBCICallbackpublic void status(HBCIPassport passport, int statusTag, Object[] o)
HBCICallbackstatus in interface HBCICallbackpassport - gibt an, welches Passport (und damit welches HBCIHandle)
benutzt wurde, als der Callback erzeugt wurde (siehe auch
HBCICallback.callback(org.kapott.hbci.passport.HBCIPassport,int,String,int,StringBuffer)).statusTag - gibt an, welche Stufe der Abarbeitung gerade erreicht
wurde (alle oben beschriebenen Konstanten, die mit STATUS_
beginnen)o - ein Array aus Objekten, das zusätzliche Informationen zum jeweiligen
Status enthält. In den meisten Fällen handelt es sich um einen
String, der zusätzliche Informationen im Klartext enthält. Welche Informationen
das jeweils sind, ist der Beschreibung zu den einzelnen STATUS_*-Tag-Konstanten
zu entnehmen.public void log(String msg, int level, Date date, StackTraceElement trace)
HBCICallbacklog(...) an die Anwendung. Diese muss selbst
entscheiden, was mit der Information geschehen soll (einfach ignorieren,
abspeichern, dem Nutzer anzeigen, ...).log in interface HBCICallbackmsg - die eigentliche Text-Meldung des HBCI-Kernelslevel - Loglevel, welcher die "Wichtigkeit" dieser Meldung angibt. Die
möglichen Werte dafür sind in HBCIUtils
definiert und lauten
LOG_CHIPCARDLOG_DEBUGLOG_INFOLOG_WARNLOG_ERRdate - Zeitpunkt, zu dem die Logausgabe generiert wurdetrace - ein StackTrace-Element, welches die Stelle
im Code beschreibt, an der die Logausgabe erzeugt wurde
(kann benutzt werden, um die Klasse, Methode, Zeilennummer etc.
des Aufrufes zu ermitteln)public boolean useThreadedCallback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
HBCICallbackLegt fest, ob ein Callback asynchron oder über den threaded-callback-Mechanismus
behandelt werden soll. Im "Normalfall" gibt diese Methode false
zurück, womit die asynchrone Callback-Behandlung aktiviert wird. Für
bestimmte Anwendungsfälle ist jedoch eine synchrone Callback-Behandlung
sinnvoll. Dazu muss zunächst das zu verwendende Callback-Objekt in einer
Instanz der Klasse HBCICallbackThreaded
gekapselt werden. AuÃerdem muss diese Methode so überschrieben werden,
dass sie für alle Callbacks, die synchron behandelt werden sollen,
true zurückgibt.
Die übergebenen Parameter entsprechen denen der Methode
HBCICallback.callback(HBCIPassport, int, String, int, StringBuffer). Der
Rückgabewert gibt ab, ob dieser Callback synchron (true) oder
asynchron (false) behandelt werden soll.
Mehr Informationen dazu in der Datei README.ThreadedCallbacks.
useThreadedCallback in interface HBCICallbackCopyright © 2017. All rights reserved.