!--a11y-->
Das ResultList-Objekt 
Dieses Objekt dient bei erweiterten benutzerdefinierten Funktionen dazu, das Ergebnis der Funktion zurückzugeben. Speichern Sie bei der benutzerdefinierten Funktion die gesamte Queue vor dem Aufruf, geben Sie mit dem Objekt eine Queue zurück, ansonsten eine nur einen Kontext einer Queue.
Methoden des Objekts Container
|
Methode |
Verwendung |
|
void addValue(String value); |
Hängt einen Wert an die Ergebnisliste an. |
|
void addContextChange(); |
Hängt einen Kontextwechsel an die Liste an. Sie können dies auch erreichen, indem Sie mit addValue() die Konstante ResultList.CC anhängen. |
|
void addSuppress(); |
Hängt die Konstante ResultList.SUPPRESS an die Liste. Für solche Einträge wird die Generierung des Zielfeldes und dessen Unterknoten unterdrückt. |
|
void clear(); |
Löscht alle bisher angehängten Werte wieder aus der Liste. |
Sie können Kontextwechsel über die Konstante ResultList.CC im Eingabe-Array ausfindig machen, der der Funktion übergeben wurde, zum Beispiel:
a[index].equals(ResultList.CC)
Folgende Kontextwechsel sind immer implizit vorhanden und nicht Teil der Eingabe-Arrays:
· Wenn Sie vor dem Aufruf von erweiterten Funktionen nur einen Kontext in einen Eingabe-Array einlesen, sind nur Werte und keine Kontextwechsel im Array enthalten.
· Wenn Sie vor dem Aufruf von erweiterten Funktionen eine gesamte Queue in einen Eingabe-Array einlesen, sind am Anfang und am Ende des Arrays keine Kontextwechsel vorhanden.
Dieses Beispiel zeigt die Verwendung von ResultList.SUPPRESS, indem die Standardfunktion createIf() als erweiterte benutzerdefinierte Funktion nachprogrammiert wird. Diese Standardfunktion arbeitet intern auch mit der SUPPRESS-Konstante:
· Bei der Eingabe true wird ein leerer String für das zu erzeugende Feld erzeugt
· Bei der Eingabe false erzeugt createIf() die Konstante ResultList.SUPPRESS
Wenn man diese Funktion als erweiterte benutzerdefinerte Funktion implementiert, genügt es, einen Kontext vor dem Aufruf von myCreateIf() einzulesen. Die Funktion hat folgenden Quelltext:
public void
myCreateIf(String[] a,
ResultList
result,
Container
container)
{
for (
int i = 0; i < a.length; i++ )
{
if(
a[i].equals("true"))
result.addValue(
“” );
else
result.addSuppress();
}
}