org.kapott.hbci.GV
Class HBCIJob

java.lang.Object
  |
  +--org.kapott.hbci.GV.HBCIJob

public abstract class HBCIJob
extends java.lang.Object

Schnittstelle für alle Aufträge, die via HBCI ausgeführt werden sollen. Ein HBCIJob-Objekt wird nur innerhalb von HBCI4Java verwaltet. Durch Aufruf einer der Methoden HBCIHandler.newJob() oder HBCIHandler.newLowlevelJob() wird eine neue Instanz eines HBCIJobs erzeugt. Die konkrete Klasse dieser Instanz ist für den Anwendungsentwickler nicht von Bedeutung.

Die Anwendung muss nur die für diesen Job benötigten Parameter setzen (mit setParam()) und kann den fertig spezifizierten Job anschließend zum aktuellen HBCI-Dialog hinzufügen (HBCIHandler.addJob()).

Nach Ausführung des HBCI-Dialoges können die Rückgabedaten und Statusinformationen für diesen Job ermittelt werden. Dazu wird die Methoode getJobResult() benötigt, welche eine Instanz einer HBCIJobResult-Klasse zurückgibt. Die konkrete Klasse, um die es sich bei diesem Result-Objekt handelt, ist vom Typ des ausgeführten Jobs abhängig (z.B. gibt es eine Klasse, die Ergebnisdaten für Kontoauszüge enthält, eine Klasse für Saldenabfragen usw.). Eine Beschreibung der einzelnen Klassen für Result-Objekte findet sich im Package org.kapott.hbci.GV_Result. Eine Beschreibung, welcher Job welche Klasse zurückgibt, befindet sich in der Package-Dokumentation zu diesem Package (org.kapott.hbci.GV).


Method Summary
 java.util.Properties getJobRestrictions()
          Gibt für einen Job alle bekannten Einschränkungen zurück, die bei der Ausführung des jeweiligen Jobs zu beachten sind.
 HBCIJobResult getJobResult()
          Gibt ein Objekt mit den Rückgabedaten für diesen Job zurück.
 java.util.Properties getParams()
          Gibt alle für diesen Job gesetzten Parameter zurück.
 void setParam(java.lang.String paramName, java.util.Date date)
          Setzen eines Job-Parameters, bei dem ein Datums als Wert erwartet wird.
 void setParam(java.lang.String paramName, int i)
          Setzen eines Job-Parameters, bei dem ein Integer-Wert Da als Wert erwartet wird.
 void setParam(java.lang.String paramname, Konto acc)
          Setzen eines komplexen Job-Parameters (Kontodaten).
 void setParam(java.lang.String paramName, java.lang.String value)
          Setzen eines Job-Parameters.
 void setParam(java.lang.String paramname, Value v)
          Setzen eines komplexen Job-Parameters (Geldbetrag).
 

Method Detail

getJobRestrictions

public java.util.Properties getJobRestrictions()

Gibt für einen Job alle bekannten Einschränkungen zurück, die bei der Ausführung des jeweiligen Jobs zu beachten sind. Diese Daten werden aus den Bankparameterdaten des aktuellen Passports extrahiert. Sie können von einer HBCI-Anwendung benutzt werden, um gleich entsprechende Restriktionen bei der Eingabe von Geschäftsvorfalldaten zu erzwingen (z.B. die maximale Anzahl von Verwendungszweckzeilen, ob das Ändern von terminierten Überweisungen erlaubt ist usw.).

Die einzelnen Einträge des zurückgegebenen Properties-Objektes enthalten als Key die Bezeichnung einer Restriktion (z.B. "maxusage"), als Value wird der entsprechende Wert eingestellt. Die Bedeutung der einzelnen Restriktionen ist zur Zeit nur der HBCI-Spezifikation zu entnehmen. In späteren Programmversionen werden entsprechende Dokumentationen zur internen HBCI-Beschreibung hinzugefügt, so dass dafür eine Abfrageschnittstelle implementiert werden kann.

Returns:
Properties-Objekt mit den einzelnen Restriktionen

setParam

public void setParam(java.lang.String paramname,
                     Konto acc)
Setzen eines komplexen Job-Parameters (Kontodaten). Einige Jobs benötigten Kontodaten als Parameter. Diese müssten auf "normalem" Wege durch drei Aufrufe von setParam(String,String) erzeugt werden (je einer für die Länderkennung, die Bankleitzahl und die Kontonummer). Durch Verwendung dieser Methode wird dieser Weg abgekürzt. Es wird ein Kontoobjekt übergeben, für welches die entsprechenden drei setParam(String,String)-Aufrufe automatisch erzeugt werden.

Parameters:
paramname - die Basis der Parameter für die Kontodaten (für "my.country", "my.blz", "my.number" wäre das also "my")
acc - ein Konto-Objekt, aus welchem die zu setzenden Parameterdaten entnommen werden

setParam

public void setParam(java.lang.String paramname,
                     Value v)
Setzen eines komplexen Job-Parameters (Geldbetrag). Einige Jobs benötigten Geldbeträge als Parameter. Diese müssten auf "normalem" Wege durch zwei Aufrufe von setParam(String,String) erzeugt werden (je einer für den Wert und die Währung). Durch Verwendung dieser Methode wird dieser Weg abgekürzt. Es wird ein Value-Objekt übergeben, für welches die entsprechenden zwei setParam(String,String)-Aufrufe automatisch erzeugt werden.

Parameters:
paramname - die Basis der Parameter für die Geldbetragsdaten (für "btg.value" und "btg.curr" wäre das also "btg")
v - ein Value-Objekt, aus welchem die zu setzenden Parameterdaten entnommen werden

setParam

public void setParam(java.lang.String paramName,
                     java.util.Date date)
Setzen eines Job-Parameters, bei dem ein Datums als Wert erwartet wird. Diese Methode dient als Wrapper für setParam(String,String), um das Datum in einen korrekt formatierten String umzuwandeln. Das "richtige" Datumsformat ist dabei abhängig vom aktuellen Locale.

Parameters:
paramName - Name des zu setzenden Job-Parameters
date - Datum, welches als Wert für den Job-Parameter benutzt werden soll

setParam

public void setParam(java.lang.String paramName,
                     int i)
Setzen eines Job-Parameters, bei dem ein Integer-Wert Da als Wert erwartet wird. Diese Methode dient nur als Wrapper für setParam(String,String).

Parameters:
paramName - Name des zu setzenden Job-Parameters
i - Integer-Wert, der als Wert gesetzt werden soll

setParam

public void setParam(java.lang.String paramName,
                     java.lang.String value)

Setzen eines Job-Parameters. Für alle Highlevel-Jobs ist in der Package-Beschreibung zum Package org.kapott.hbci.GV eine Auflistung aller Jobs und deren Parameter zu finden. Für alle Lowlevel-Jobs kann eine Liste aller Parameter entweder mit dem Tool ShowLowlevelGVs oder zur Laufzeit durch Aufruf der Methode HBCIHandler.getLowlevelGVParameters() ermittelt werden.

Bei Verwendung dieser oder einer der anderen setParam()-Methoden werden zusätzlich einige der Job-Restriktionen (siehe getJobRestrictions()) analysiert. Beim Verletzen einer der überprüften Einschränkungen wird eine Exception mit einer entsprechenden Meldung erzeugt. Diese Überprüfung findet allerdings nur bei Highlevel-Jobs statt.

Parameters:
paramName - der Name des zu setzenden Parameters.
value - Wert, auf den der Parameter gesetzt werden soll

getParams

public java.util.Properties getParams()
Gibt alle für diesen Job gesetzten Parameter zurück. In dem zurückgegebenen Properties-Objekt sind werden die Parameter als Lowlevel-Parameter abgelegt. Außerdem hat jeder Lowlevel-Parametername zusätzlich ein Prefix, welches den Lowlevel-Job angibt, für den der Parameter gilt (also z.B. Ueb3.BTG.value

Returns:
aktuelle gesetzte Lowlevel-Parameter für diesen Job

getJobResult

public HBCIJobResult getJobResult()
Gibt ein Objekt mit den Rückgabedaten für diesen Job zurück. Das zurückgegebene Objekt enthält erst nach der Ausführung des Jobs gültige Daten.

Returns:
ein Objekt mit den Rückgabedaten und Statusinformationen zu diesem Job