org.kapott.hbci.status.HBCIExecThreadedStatus Maven / Gradle / Ivy
Show all versions of hbci4j-core Show documentation
/* $Id: HBCIExecThreadedStatus.java,v 1.1 2011/05/04 22:38:02 willuhn Exp $
This file is part of HBCI4Java
Copyright (C) 2001-2008 Stefan Palme
HBCI4Java is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
HBCI4Java is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.kapott.hbci.status;
import java.util.Hashtable;
/** Wird für Status-Informationen bei Verwendung des threaded-callback-Mechanismus'
* benötigt. Für den threaded-callback-Mechanismus werden die Methoden
* {@link org.kapott.hbci.manager.HBCIHandler#executeThreaded()} und
* {@link org.kapott.hbci.manager.HBCIHandler#continueThreaded(String)}
* verwendet, die jeweils ein Objekt von HBCIExecThreadedStatus
* zurückgeben.
* Objekte dieser Klasse geben zunächst Auskunft darüber, warum
* executeThreaded()
bzw. continueThreaded()
* terminiert sind. Ursache kann zum einen sein, dass Callback-Daten benötigt
* werden - in diesem Fall enthält das HBCIExecThreadedStatus
-Objekt
* die Informationen zum aufgetretenen Callback. Andernfalls zeigt das
* HBCIExecThreadedStatus
-Objekt an, dass der HBCI-Dialog beendet
* ist - in diesem Fall sind die HBCI-Dialog-Status-Informationen als
* {@link HBCIExecStatus}-Objekt enthalten (analog zum Rückgabewert von
* {@link org.kapott.hbci.manager.HBCIHandler#execute()}.
*/
public class HBCIExecThreadedStatus
{
private Hashtable callbackData;
private HBCIExecStatus execStatus;
/** Callback-Daten in diesem Objekt speichern. Wird nur vom HBCI-Kernel
* aufgerufen. */
public void setCallbackData(Hashtable callbackData)
{
this.callbackData=callbackData;
}
/** Callback-Daten auslesen. Wenn {@link #isCallback()} true
* ist, bedeutet das, dass ein Callback aufgetreten ist, der behandelt
* werden muss. Die zurückgegebene Hashtable
enthält folgende
* Werte:
*
* - "
method
": ist im Moment immer "callback
"
* - "
passport
": enthält das Passport-Objekt, dessen HBCI-Dialog
* Callback-Daten benötigt.
* - "
reason
": enthält den Callback-Reason als
* Integer
-Objekt.
* - "
msg
": enthält die Callback-Message.
* - "
dataType
": enthält den erwarteten Datentyp der Antwort
* als Integer
-Objekt.
* - "
retData
": enthält das retData
-Objekt
* (StringBuffer
), in welches die Callback-Daten hineingeschrieben
* werden müssen.
*
*/
public Hashtable getCallbackData()
{
return this.callbackData;
}
/** Speichern des Dialog-Status. Wird nur vom HBCI-Kernel aufgerufen.*/
public void setExecStatus(HBCIExecStatus status)
{
this.execStatus=status;
}
/** Auslesen des HBCI-Dialog-Status. Falls die Methode {@link #isFinished()}
* true
zurückgibt, bedeutet das, dass der HBCI-Dialog beendet
* ist. In diesem Fall kann mit getExecStatus
das
* {@link HBCIExecStatus}-Objekt ausgelesen werden, welches den eigentlichen
* Status des HBCI-Dialoges anzeigt (analog zu
* {@link org.kapott.hbci.manager.HBCIHandler#execute()}). */
public HBCIExecStatus getExecStatus()
{
return this.execStatus;
}
/** Zeigt an, ob der HBCI-Dialog beendet ist (true
). */
public boolean isFinished()
{
return execStatus!=null;
}
/** Zeigt an, ob Callback-Daten benötigt werden (true
), oder
* ob der HBCI-Dialog beendet ist (false
). */
public boolean isCallback()
{
return callbackData!=null;
}
/** Gibt einen String mit allen gespeicherten Informationen zurück. */
public String toString()
{
StringBuffer ret=new StringBuffer();
String linesep=System.getProperty("line.separator");
ret.append("isCallback: "+isCallback()+linesep);
if (isCallback()) {
ret.append(" method: "+callbackData.get("method")+linesep);
ret.append(" reason: "+callbackData.get("reason")+linesep);
ret.append(" msg: "+callbackData.get("msg")+linesep);
}
ret.append("isFinished: "+isFinished()+linesep);
if (isFinished()) {
ret.append(getExecStatus().toString());
}
return ret.toString();
}
}