Package org.kapott.hbci.status

## Class HBCIDialogStatus

- java.lang.Object
- - org.kapott.hbci.status.HBCIDialogStatus

    public final class HBCIDialogStatus
    extends java.lang.Object

Status-Informationen für einen kompletten HBCI-Dialog. Objekte dieser Klasse werden von `HBCIExecStatus`-Objekten verwaltet. In einem `HBCIDialogStatus` werden alle Status-Informationen gespeichert, die während der Ausführung eines HBCI-Dialoges anfallen.

Die direkte Auswertung der Felder dieser Klasse ist i.d.R. nicht zu empfehlen. Statt dessen sollten die bereitgestellten Methoden benutzt werden, um alle relevanten Informationen zu extrahieren.

### Field Summary

Fields
`HBCIMsgStatus` `endStatus` Statusinformationen zur Dialog-Abschluss-Nachricht.
`HBCIMsgStatus` `initStatus` Statusinformationen zur Dialog-Initialisierungs-Nachricht.
`HBCIMsgStatus[]` `msgStatus` Status-Informationen zu den einzelnen Nachrichten zwischen Dialog-Initialisierung und Dialog-Abschluss ("Nutzdaten").

### Constructor Summary

Constructors
`HBCIDialogStatus()`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`java.lang.String` `getErrorString()` Gibt für einen Dialog alle Fehlermeldungen zurück.
`java.lang.Exception[]` `getExceptions()` Deprecated. wird nicht benutzt
`boolean` `hasExceptions()` Deprecated. wird nicht benutzt
`boolean` `isOK()` Gibt zurück, ob der Dialog als ganzes erfolgreich abgelaufen ist.
`void` `setEndStatus​(HBCIMsgStatus status)` Wird von der HBCI4Java-Dialog-Engine aufgerufen
`void` `setInitStatus​(HBCIMsgStatus status)` Wird von der HBCI4Java-Dialog-Engine aufgerufen
`void` `setMsgStatus​(HBCIMsgStatus[] status)` Wird von der HBCI4Java-Dialog-Engine aufgerufen
`java.lang.String` `toString()` Wandelt alle Statusinformationen zu einem Dialog in einen einzigen String um.

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

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

### Field Detail

#### msgStatus

    public HBCIMsgStatus[] msgStatus

Status-Informationen zu den einzelnen Nachrichten zwischen Dialog-Initialisierung und Dialog-Abschluss ("Nutzdaten"). Ein Element dieses Arrays enthält dabei die Status-Informationen über genau einen HBCI-Nachrichtenaustausch.

Die direkte Auswertung dieses Feldes ist aus folgendem Grund in den meisten Fällen nicht zu empfehlen: Sollen mehrere Geschäftsvorfälle innerhalb eines einzigen HBCI-Dialoges ausgeführt werden, so weiß die HBCI-Anwendung i.d.R. nicht, in welcher Nachricht sich ein bestimmter GV befindet bzw. wie viele Nachrichten überhaupt erzeugt werden, weil der HBCI-Kernel beim Hinzufügen von Geschäftsvorfällen u.U. selbstständig die Erzeugung einer zusätzlichen Nachricht auslöst. Es ist deshalb nicht ohne weiteres möglich, die zu einem bestimmten Geschäftsvorfall passende Nachrichtennummer zu ermitteln, um damit das entsprechende Element aus diesem Array zu extrahieren.

#### initStatus

    public HBCIMsgStatus initStatus

Statusinformationen zur Dialog-Initialisierungs-Nachricht. In diesem Feld werden alle Status-Informationen gespeichert, die die Dialog-Initialisierung betreffen.

#### endStatus

    public HBCIMsgStatus endStatus

Statusinformationen zur Dialog-Abschluss-Nachricht. In diesem Feld werden alle Status-Informationen gespeichert, die die Nachrichten zur Beendigung des Dialoges betreffen.

### Constructor Detail

#### HBCIDialogStatus

    public HBCIDialogStatus()

### Method Detail

#### setInitStatus

    public void setInitStatus​(HBCIMsgStatus status)

Wird von der HBCI4Java-Dialog-Engine aufgerufen

#### setMsgStatus

    public void setMsgStatus​(HBCIMsgStatus[] status)

Wird von der HBCI4Java-Dialog-Engine aufgerufen

#### setEndStatus

    public void setEndStatus​(HBCIMsgStatus status)

Wird von der HBCI4Java-Dialog-Engine aufgerufen

#### isOK

    public boolean isOK()

Gibt zurück, ob der Dialog als ganzes erfolgreich abgelaufen ist. Ein Dialog gilt dann als erfolgreich abgelaufen, wenn die Dialog-Initialisierung, alle Nachrichten mit Geschäftsvorfällen sowie der Dialog-Abschluss ohne Fehlermeldungen abgelaufen sind.

Sobald auch nur eine dieser Nachrichten einen Fehler erzeugt hat, gibt diese Methode `false` zurück. Es handelt sich also um einen sehr "strengen" Test. Falls diese Methode `true` zurückgibt, so könnte eine Überprüfung der einzelnen Geschäftsvorfälle auf eventuell aufgetretene Fehler entfallen (siehe jedoch unten). Beim Rückgabewert `false` müssen alle ausgeführten Geschäftsvorfälle überprüft werden, ob einer (oder mehrere) davon den (oder die) Fehler ausgelöst haben.

Achtung: Wenn diese Methode `true` zurückgibt, heißt das nicht zwangsläufig, dass auch alle geplanten `HBCIJobs` tatsächlich erfolgreich durchgeführt wurden. Diese Methode zeigt nur an, dass die `HBCIJobs`, die auch tatsächlich in einer der Auftragsnachrichten enthalten gewesen sind, erfolgreich durchgeführt wurden. Trat beim Hinzufügen eines `HBCIJobs` zu einer Azuftragsnachricht ein Fehler auf, so dass dieser `HBCIJob` gar nicht erst versandt wurde, so zeigt diese Methode u.U. trotzdem `true`, obwohl gar nicht alle geplanten Aufträge ausgeführt wurden (eben weil diese Methode nur anzeigt, ob bei der eigentlichen Ausführung von Aufträgen Fehler aufgetreten sind oder nicht).

Um also sicher zu gehen, dass alle gewünschten Aufträge auch wirklich erfolgreich ausgeführt wurden, sollte von jedem ursprünglich erzeugten `HBCIJob` der Status mit `HBCIJob.getJobResult()` und `HBCIJobResult.isOK()` geprüft werden.

Returns:
  `true`, wenn keine Nachricht des Dialoges einen Fehler erzeugt hat; `false`, wenn wenigstens ein Nachrichtenaustausch nicht fehlerfrei abgelaufen ist.

#### hasExceptions

    public boolean hasExceptions()

Deprecated.
wird nicht benutzt
Zeigt an, ob während der Dialogausführung Exceptions ausgetreten sind

Returns:
  `true`, wenn während der Dialogausführung Exceptions aufgetreten sind, sonst `false`

#### getExceptions

    public java.lang.Exception[] getExceptions()

Deprecated.
wird nicht benutzt
Gibt alle während der Dialogausführung aufgetretenen Exceptions zurück. Die hier erzeugte Menge von Exceptions schließt alle Exceptions ein, die während der Dialog-Initialisierung, der Ausführung der einzelnen Auftragsnachrichten bzw. während der Ausführung der Dialog-Ende-Nachricht aufgetreten sind

Returns:
  Array mit Exceptions, die während der Dialogausführung aufgetreten sind

#### getErrorString

    public java.lang.String getErrorString()

Gibt für einen Dialog alle Fehlermeldungen zurück. Für jede Nachricht des kompletten HBCI-Dialoges (Dialog-Initialisierung, Nutzdaten, Dialog-Abschluss) werden die jeweils aufgetretenen Fehlermeldungen gesammelt und zu dem Rückgabewert dieser Methode hinzugefügt. Trat bei einer Nachricht kein Fehler auf, so wird auch nichts zum Rückgabewert dieser Methode hinzugefügt.

Returns:
  einen String, der alle im Dialog aufgetretenen Fehler beschreibt

#### toString

    public java.lang.String toString()

Wandelt alle Statusinformationen zu einem Dialog in einen einzigen String um. Zu jeder einzelnen Nachricht des Dialoges werden alle Status-Informationen (aufgetretene Exceptions, Fehlermeldungen, Warnungen, Erfolgsmeldungen) gesammelt und aneinander gehängt.

Overrides:
  `toString` in class `java.lang.Object`
Returns:
  einen String, der die kompletten Status-Informationen für einen Dialog enthält