Package de.willuhn.jameica.hbci.server.hbci

# Class AbstractHBCIJob

java.lang.Object
de.willuhn.jameica.hbci.server.hbci.AbstractHBCIJob

Direct Known Subclasses:
  `AbstractHBCISepaSammelTransferJob`, `HBCIAuslandsUeberweisungJob`, `HBCIKontoauszugJob`, `HBCIQuittungJob`, `HBCISaldoJob`, `HBCISepaDauerauftragDeleteJob`, `HBCISepaDauerauftragListJob`, `HBCISepaDauerauftragStoreJob`, `HBCISepaLastschriftJob`, `HBCIUmsatzJob`

public abstract class AbstractHBCIJob extends Object
Basis-Klasse fuer die HBCI-Jobs. Ein HBCI-Job muss quasi atomar sein. Das heisst, in dessen `handleResult` nimmt er auch gleich ggf. notwendige Aenderungen und Speicherungen an den betroffenen Fachobjekten vor. Grund: Es darf nicht sein, dass zB. eine Ueberweisung ausgefuehrt wird, ihr Status jedoch in der DB nicht auf "ausgefuehrt" gesetzt wird.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final de.willuhn.util.I18N`
`i18n`

## Constructor Summary

Constructors
Constructor
Description
`AbstractHBCIJob()`

## Method Summary

Modifier and Type
Method
Description
`protected abstract HibiscusDBObject`
`getContext()`
Liefert den zugehoerigen Auftrag von Hibiscus - insofern verfuegbar.
`List<AbstractHBCIJob>`
`getFollowerJobs()`
Liefert ein oder mehrere Nachfolge-Jobs, die ausgefuehrt werden sollen, nachdem dieser ausgefuehrt wurde.
`abstract String`
`getIdentifier()`
HBCI4Java verwendet intern eindeutige Job-Namen.
`protected final org.kapott.hbci.GV_Result.HBCIJobResult`
`getJobResult()`
Liefert das Job-Resultat.
`abstract String`
`getName()`
Liefert einen sprechenden Namen fuer diesen Job.
`final void`
`handleResult()`
Diese Funktion wird von der HBCIFactory nach Beendigung der Kommunikation mit der Bank ausgefuehrt.
`boolean`
`isExclusive()`
Legt fest, ob der HBCI-Job exclusive (also in einer einzelnen HBCI-Nachricht) gesendet werden soll.
`protected void`
`markCancelled()`
Wird aufgerufen, wenn der User den Vorgang abgebrochen hat.
`protected abstract void`
`markExecuted()`
Markiert den Auftrag als erledigt.
`protected abstract String`
`markFailed(String error)`
Markiert den Auftrag als fehlerhaft.
`void`
`setExclusive(boolean exclusive)`
Legt fest, ob der HBCI-Job exclusive (also in einer einzelnen HBCI-Nachricht) gesendet werden soll.
`void`
`setJob(org.kapott.hbci.GV.HBCIJob job)`
Diese Funktion wird vom HBCISynchronizeBackend intern aufgerufen.
`protected final void`
`setJobParam(String name, double value, String currency)`
Speichern eines Geld-Betrages Bitte diese Funktion fuer Betraege verwenden, damit sichergestellt ist, dass der Kernel die Werte typsicher erhaelt und Formatierungsfehler aufgrund verschiedener Locales fehlschlagen.
`protected final void`
`setJobParam(String name, int i)`
Speichern eines Int-Wertes.
`protected final void`
`setJobParam(String name, Integer index, double value, String currency)`
Speichern eines Geld-Betrages Bitte diese Funktion fuer Betraege verwenden, damit sichergestellt ist, dass der Kernel die Werte typsicher erhaelt und Formatierungsfehler aufgrund verschiedener Locales fehlschlagen.
`protected final void`
`setJobParam(String name, Integer index, String value)`
Ueber diese Funktion koennen die konkreten Implementierungen ihre zusaetzlichen Job-Parameter setzen.
`protected final void`
`setJobParam(String name, Integer index, Date date)`
Speichern eines Datums.
`protected final void`
`setJobParam(String name, Integer index, org.kapott.hbci.structures.Konto konto)`
Speichern eines komplexes Objektes
`protected final void`
`setJobParam(String name, String value)`
Ueber diese Funktion koennen die konkreten Implementierungen ihre zusaetzlichen Job-Parameter setzen.
`protected final void`
`setJobParam(String name, Date date)`
Speichern eines Datums.
`protected final void`
`setJobParam(String name, org.kapott.hbci.structures.Konto konto)`
Speichern eines komplexes Objektes
`protected void`
`setJobParamUsage(Transfer t)`
Setzt die Job-Parameter fuer die Verwendungszweck-Zeilen.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### i18n

protected static final de.willuhn.util.I18N i18n

## Constructor Details

### AbstractHBCIJob

public AbstractHBCIJob()

## Method Details

### getIdentifier

public abstract String getIdentifier()
HBCI4Java verwendet intern eindeutige Job-Namen. Diese Funktion liefert genau den Namen fuer genau den gewuenschten Job.

Returns:
  Job-Identifier.

### getName

public abstract String getName() throws RemoteException
Liefert einen sprechenden Namen fuer diesen Job.

Returns:
  sprechender Name.
Throws:
  `RemoteException`

### markExecuted

protected abstract void markExecuted() throws RemoteException, de.willuhn.util.ApplicationException
Markiert den Auftrag als erledigt.

Throws:
  `RemoteException`
  `de.willuhn.util.ApplicationException`

### markFailed

protected abstract String markFailed(String error) throws RemoteException, de.willuhn.util.ApplicationException
Markiert den Auftrag als fehlerhaft.

Parameters:
  `error` - der Fehlertext aus der HBCI-Nachricht.
Returns:
  der Fehlertext, wie er weitergeworfen werden soll. Hier kann der Implementierer noch weitere Informationen zum Job hinzufuegen.
Throws:
  `RemoteException`
  `de.willuhn.util.ApplicationException`

### getContext

protected abstract HibiscusDBObject getContext()
Liefert den zugehoerigen Auftrag von Hibiscus - insofern verfuegbar.

Returns:
  der zugehoerige Auftrag von Hibiscus - insofern verfuegbar.

### getFollowerJobs

public List<AbstractHBCIJob> getFollowerJobs() throws RemoteException, de.willuhn.util.ApplicationException
Liefert ein oder mehrere Nachfolge-Jobs, die ausgefuehrt werden sollen, nachdem dieser ausgefuehrt wurde.

Returns:
  ein oder mehrere Nachfolge-Jobs, die ausgefuehrt werden sollen, nachdem dieser ausgefuehrt wurde.
Throws:
  `RemoteException`
  `de.willuhn.util.ApplicationException`

### markCancelled

protected void markCancelled() throws RemoteException, de.willuhn.util.ApplicationException
Wird aufgerufen, wenn der User den Vorgang abgebrochen hat. Kann von den Jobs implementiert werden, muss aber nicht. Die Funktion wird nur genau dann aufgerufen, wenn der Job noch abbrechbar war - sprich, wenn er noch nicht an die Bank uebertragen wurde. Wurde er jedoch bereits an die Bank gesendet, dann wird entweder markFailed() oder markExecuted() aufgerufen.

Throws:
  `RemoteException`
  `de.willuhn.util.ApplicationException` - BUGZILLA 690

### setJob

public void setJob(org.kapott.hbci.GV.HBCIJob job) throws RemoteException, de.willuhn.util.ApplicationException
Diese Funktion wird vom HBCISynchronizeBackend intern aufgerufen. Sie uebergibt hier den erzeugten HBCI-Job der Abfrage.

Parameters:
  `job` - der erzeugte Job.
Throws:
  `RemoteException`
  `de.willuhn.util.ApplicationException`

### getJobResult

protected final org.kapott.hbci.GV_Result.HBCIJobResult getJobResult()
Liefert das Job-Resultat.

Returns:
  Job-Resultat.

### handleResult

public final void handleResult() throws de.willuhn.util.ApplicationException, RemoteException
Diese Funktion wird von der HBCIFactory nach Beendigung der Kommunikation mit der Bank ausgefuehrt. Sie prueft globalen Status und Job-Status und ruft entsprechend markExecuted() oder markFailed(String) auf.

Throws:
  `RemoteException`
  `de.willuhn.util.ApplicationException`

### setJobParam

protected final void setJobParam(String name, String value)
Ueber diese Funktion koennen die konkreten Implementierungen ihre zusaetzlichen Job-Parameter setzen.

Parameters:
  `name` - Name des Parameters.
  `value` - Wert des Parameters.

### setJobParam

protected final void setJobParam(String name, Integer index, String value)
Ueber diese Funktion koennen die konkreten Implementierungen ihre zusaetzlichen Job-Parameter setzen.

Parameters:
  `name` - Name des Parameters.
  `index` - optionaler Index des Parameters.
  `value` - Wert des Parameters.

### setJobParam

protected final void setJobParam(String name, org.kapott.hbci.structures.Konto konto)
Speichern eines komplexes Objektes

Parameters:
  `name` - Name des Parameters.
  `konto` - das Konto.

### setJobParam

protected final void setJobParam(String name, Integer index, org.kapott.hbci.structures.Konto konto)
Speichern eines komplexes Objektes

Parameters:
  `name` - Name des Parameters.
  `index` - optionaler Index des Parameters.
  `konto` - das Konto.

### setJobParam

protected final void setJobParam(String name, int i)
Speichern eines Int-Wertes. Bitte diese Funktion verwenden, damit sichergestellt ist, dass der Kernel die Werte typsicher erhaelt und Formatierungsfehler aufgrund verschiedener Locales fehlschlagen.

Parameters:
  `name` - Name des Parameters.
  `i` - Wert.

### setJobParam

protected final void setJobParam(String name, double value, String currency)
Speichern eines Geld-Betrages Bitte diese Funktion fuer Betraege verwenden, damit sichergestellt ist, dass der Kernel die Werte typsicher erhaelt und Formatierungsfehler aufgrund verschiedener Locales fehlschlagen.

Parameters:
  `name` - Name des Parameters.
  `value` - Geldbetrag.
  `currency` - Waehrung.

### setJobParam

protected final void setJobParam(String name, Integer index, double value, String currency)
Speichern eines Geld-Betrages Bitte diese Funktion fuer Betraege verwenden, damit sichergestellt ist, dass der Kernel die Werte typsicher erhaelt und Formatierungsfehler aufgrund verschiedener Locales fehlschlagen.

Parameters:
  `name` - Name des Parameters.
  `index` - optionaler Index des Parameters.
  `value` - Geldbetrag.
  `currency` - Waehrung.

### setJobParam

protected final void setJobParam(String name, Date date)
Speichern eines Datums. Bitte diese Funktion verwenden, damit sichergestellt ist, dass der Kernel die Werte typsicher erhaelt und Formatierungsfehler aufgrund verschiedener Locales fehlschlagen.

Parameters:
  `name` - Name des Parameters.
  `date` - Datum.

### setJobParam

protected final void setJobParam(String name, Integer index, Date date)
Speichern eines Datums. Bitte diese Funktion verwenden, damit sichergestellt ist, dass der Kernel die Werte typsicher erhaelt und Formatierungsfehler aufgrund verschiedener Locales fehlschlagen.

Parameters:
  `name` - Name des Parameters.
  `index` - optionaler Index des Parameters.
  `date` - Datum.

### setJobParamUsage

protected void setJobParamUsage(Transfer t) throws RemoteException
Setzt die Job-Parameter fuer die Verwendungszweck-Zeilen. Sie werden auf die Job-Parameter usage, usage_2, usage_3,... verteilt. Wenn zwischendrin welche fehlen, werden die hinteren nach vorn geschoben.

Parameters:
  `t` - der Auftrag.
Throws:
  `RemoteException`

### isExclusive

public boolean isExclusive()
Legt fest, ob der HBCI-Job exclusive (also in einer einzelnen HBCI-Nachricht) gesendet werden soll. Standardmaessig ist ein Job nicht exclusiv.

Returns:
  true, wenn er exclusiv gesendet werden soll.

### setExclusive

public void setExclusive(boolean exclusive)
Legt fest, ob der HBCI-Job exclusive (also in einer einzelnen HBCI-Nachricht) gesendet werden soll. Standardmaessig ist ein Job nicht exclusiv.

Parameters:
  `exclusive` -