Die Funktion collection.every( ) gibt wahr zurück, wenn alle Elemente in der Collection den Test, angegeben in MethodenName, erfolgreich durchlaufen haben.
Standardmäßig testet collection.every( ) die gesamte Collection. Optional können Sie in StartAb den Index des Elements übergeben, ab dem der Test starten soll.
- Ist StartAb >= Länge der Collection, wird falsch zurückgegeben, d.h. die Collection wird nicht getestet.
- Ist StartAb < 0, wird es als Versatz vom Ende der Collection gewertet (StartAb:=StartAb+Länge).
- Ist StartAb = 0, wird die gesamte Collection getestet (Standard).
In MethodenName übergeben Sie den Namen der Methode zum Bewerten der Collection Elemente, zusammen mit den Parametern in param (optional). MethodenName kann jeden Test mit oder ohne die Parameter durchführen. Diese Methode empfängt einen Parameter Object in $1 und muss $1.result für jedes Element, das den Test erfüllt, auf wahr setzen.
MethodenName empfängt folgende Parameter:
- in $1.value: Elementwert zum Bewerten
- in $2: param
- in $N...: param2...paramN
MethodenName setzt folgende Parameter:
- $1.result (boolean): wahr, bei erfolgreicher Bewertung des Elementwerts, sonst falsch.
- $1.stop (boolean, optional): wahr, um Aufruf der Methode zu stoppen. Der zurückgegebene Wert ist der letzte bewertete Wert.
In allen Fällen gilt: An der Stelle, wo die Funktion collection.every( ) das erste Collection Element findet, das in $1.result falsch zurückgibt, stoppt sie das Aufrufen von MethodenName und gibt falsch zurück.
C_COLLECTION($c)
$c:=New collection
$c.push(5;3;1;4;6;2)
$b:=$c.every("NumberGreaterThan0")
$c.push(-1)
$b:=$c.every("NumberGreaterThan0")
Der Code der Methode NumberGreaterThan0 lautet:
$1.result:=$1.value>0
Dieses Beispiel testet, ob alle Elemente einer Collection vom Typ Zahl sind:
Der Code der Methode TypeLookUp lautet:
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=$2)
$1.result:=True
End if