Package org.kapott.hbci.callback
Class HBCICallbackIOStreams
- java.lang.Object
-
- org.kapott.hbci.callback.AbstractHBCICallback
-
- org.kapott.hbci.callback.HBCICallbackIOStreams
-
- All Implemented Interfaces:
HBCICallback
- Direct Known Subclasses:
HBCICallbackConsole
public class HBCICallbackIOStreams extends AbstractHBCICallback
Callback-Klasse für Ein-/Ausgabe über IO-Streams. Dabei handelt es sich eine Callback-Klasse, die Ausgaben auf einem PrintStream ausgibt und Eingaben über einen BufferedReader liest. Die KlasseHBCICallbackConsoleist eine abgeleitete Klasse, welche STDOUT und STDIN für die beiden I/O-Streams verwendet.
-
-
Field Summary
-
Fields inherited from interface org.kapott.hbci.callback.HBCICallback
CLOSE_CONNECTION, HAVE_CHIPCARD, HAVE_CRC_ERROR, HAVE_ERROR, HAVE_HARDPIN, HAVE_IBAN_ERROR, HAVE_INST_MSG, NEED_BLZ, NEED_CHIPCARD, NEED_CONNECTION, NEED_COUNTRY, NEED_CUSTOMERID, NEED_HARDPIN, NEED_HOST, NEED_INFOPOINT_ACK, NEED_PASSPHRASE_LOAD, NEED_PASSPHRASE_SAVE, NEED_PORT, NEED_PROXY_PASS, NEED_PROXY_USER, NEED_PT_PHOTOTAN, NEED_PT_PIN, 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 Summary
Constructors Constructor Description HBCICallbackIOStreams(PrintStream outStream, BufferedReader inStream)Instanz mit vorgegebenem OUT- und INPUT-Stream erzeugen.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcallback(int reason, List<String> msg, int datatype, StringBuilder retData)Diese Methode reagiert auf alle möglichen Callback-Ursachen.protected StringcreateDefaultLogLine(String msg, int level, Date date, StackTraceElement trace)Erzeugt einen Log-Eintrag.protected BufferedReadergetInStream()Gibt des INPUT-Stream zurück.protected PrintStreamgetOutStream()Gibt den verwendeten OUTPUT-Stream zurück.voidlog(String msg, int level, Date date, StackTraceElement trace)Schreiben von Logging-Ausgaben in einenPrintStream.StringneedTAN()protected voidsetInStream(BufferedReader in)TODO: docprotected voidsetOutStream(PrintStream out)TODO: docvoidstatus(int statusTag, Object[] o)Wird diese Methode von HBCI4Java aufgerufen, so wird der aktuelle Bearbeitungsschritt (mit evtl.voidtanChallengeCallback(String orderRef, String challenge, String challenge_hhd_uc, HHDVersion.Type type)-
Methods inherited from class org.kapott.hbci.callback.AbstractHBCICallback
status
-
-
-
-
Constructor Detail
-
HBCICallbackIOStreams
public HBCICallbackIOStreams(PrintStream outStream, BufferedReader inStream)
Instanz mit vorgegebenem OUT- und INPUT-Stream erzeugen.- Parameters:
outStream- Stream, welcher für die Ausgabe verwendet wird.inStream- Stream, der für das Einlesen von Antworten verwendet wird
-
-
Method Detail
-
getInStream
protected BufferedReader getInStream()
Gibt des INPUT-Stream zurück.
-
setInStream
protected void setInStream(BufferedReader in)
TODO: doc
-
getOutStream
protected PrintStream getOutStream()
Gibt den verwendeten OUTPUT-Stream zurück.
-
setOutStream
protected void setOutStream(PrintStream out)
TODO: doc
-
log
public void log(String msg, int level, Date date, StackTraceElement trace)
Schreiben von Logging-Ausgaben in einenPrintStream. Diese Methode implementiert die Logging-Schnittstelle desHBCICallback-Interfaces. Die Log-Informationen, die dieser Methode übergeben werden, werden formatiert auf dem jeweiligenoutStreamausgegeben. In dem ausgegebenen String sind in enthalten das Log-Level der Message, ein Zeitstempel im Format "yyyy.MM.dd HH:mm:ss.SSS", die Namen der ThreadGroup und des Threads, aus dem heraus die Log-Message erzeugt wurde, der Klassenname der Klasse, welche die Log-Ausgabe erzeugt hat sowie die eigentliche Log-Message
-
callback
public void callback(int reason, List<String> msg, int datatype, StringBuilder retData)Diese Methode reagiert auf alle möglichen Callback-Ursachen. Bei Callbacks, die nur Informationen an den Anwender übergeben sollen, werden diese auf demoutStreamausgegeben. Bei Callbacks, die Aktionen vom Anwender erwarten (Einlegen der Chipkarte), wird eine entsprechende Aufforderung ausgegeben. Bei Callbacks, die eine Eingabe vom Nutzer erwarten, wird die entsprechende Eingabeaufforderung ausgegeben und die Eingabe vominStreamgelesen.- Specified by:
callbackin interfaceHBCICallback- Overrides:
callbackin classAbstractHBCICallback- Parameters:
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.datatype- legt fest, welchen Datentyp die vom HBCI-Kernel erwarteten Antwortdaten haben müssen. Ist dieser Wert gleichTYPE_NONE, so werden keine Antwortdaten (also keine Nutzereingabe) erwartet, beiTYPE_SECRETundTYPE_TEXTwird ein normaler String erwartet.
Der Unterschied zwischen beiden ist der, dass beiTYPE_SECRETsensible 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.
-
tanChallengeCallback
public void tanChallengeCallback(String orderRef, String challenge, String challenge_hhd_uc, HHDVersion.Type type)
- Specified by:
tanChallengeCallbackin interfaceHBCICallback- Overrides:
tanChallengeCallbackin classAbstractHBCICallback
-
needTAN
public String needTAN()
- Specified by:
needTANin interfaceHBCICallback- Overrides:
needTANin classAbstractHBCICallback
-
status
public void status(int statusTag, Object[] o)Wird diese Methode von HBCI4Java aufgerufen, so wird der aktuelle Bearbeitungsschritt (mit evtl. vorhandenen zusätzlichen Informationen) aufoutStreamausgegeben.- Specified by:
statusin interfaceHBCICallback- Overrides:
statusin classAbstractHBCICallback- Parameters:
statusTag- gibt an, welche Stufe der Abarbeitung gerade erreicht wurde (alle oben beschriebenen Konstanten, die mitSTATUS_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 einzelnenSTATUS_*-Tag-Konstanten zu entnehmen.
-
createDefaultLogLine
protected String createDefaultLogLine(String msg, int level, Date date, StackTraceElement trace)
Erzeugt einen Log-Eintrag. Diese Methode wird von den mitgelieferten Callback-Klassen für die Erzeugung von Log-Einträgen verwendet. Um ein eigenes Format für die Log-Eintrage zu definieren, kann diese Methode mit einer eigenen Implementierung überschrieben werden.
Die Parameter entsprechen denen derlog-Methode- Returns:
- ein Log-Eintrag
-
-