O método collection.every( ) devolve true se todos os elementos na coleção passaram com sucesso uma prova implementada no método nomMet passado.
De forma pré-determinada, collection.every( ) prova toda a coleção. Opcionalmente, pode passar em posicIni o índice do elemento desde o qual começaaa prova.
- Se posicIni >= longitude da coleção, se devolve false, o que significa que a coleção não se prova.
- Se posicIni < 0, o fim da coleção se considera como ponto de inicio do cálculo da posição ( posicIni :=posicIni +length).
- Se posicIni = 0, se busca em toda a coleção (como padrão).
Em nomMet, passe o nome do método a usar para avaliar os elementos da coleção, junto com seus parâmetros em param (opcional). nomMet pode realizar qualquer prova, com ou sem os parâmetros. Este método recebe um parâmetro Object em $1 e deve definir $1.result como true para cada elemento que cumpra a prova.
nomMet recebe os parâmetros abaixo:
- en $1.value: valor do elemento a avaliar
- en $2: param
- en $N...: param2...paramN
nomMet define os parâmetros abaixo:
- $1.result (booleano): true se a avaliação do valor do elemento for exitosa, do contrário, é false.
- $1.stop (booleano, opcional): true para deter a retrochamada do método. O valor devolvido é o último calculado.
Em todos os casos, no momento em que a função collection.every( ) encontrar o primeiro elemento da coleção que devolver false em $1.result, deixa de chamar a nomMet e devolve false.
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")
Com o método abaixo NumberGreaterThan0:
$1.result:=$1.value>0
Este exemplo prova que todos os elementos de uma coleção sejam do tipo real:
Com o método abaixo TypeLookUp:
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=$2)
$1.result:=True
End if