Object Constraint Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 33:
 
:<code><b>context</b> Persona <b>inv:</b><br></code>
:<code>genitori->size()=2 and genitori->forAll(genitore:Persona | età<genitore.età)</code>
 
Il [[quantificatore esistenziale]] è rappresentato dall'operatore <code>->exists<code>. Questo operatore ritorna un valore [[logica booleana|booleano]] (''vero'' o ''falso'') a seconda che nella collezione esista almeno una istanza che soddisfa una certa condizione. La condizione viene espressa facendo riferimento agli attributi e i metodi dell'istanza da selezionare. Nel seguente esempio, si indica che deve esistere un genitore ''il cui'' sesso è maschile, e uno ''il cui'' sesso è femminile.
 
:<code><b>context</b> Persona <b>inv:</b><br></code>
:<code>genitori->size()=2 and genitori->exists(sesso=m) and
genitori->exists(sesso=f)</code>
 
L'operatore <code>->select</code> ha una sintassi analoga all'<code>exists-></code>; anziché produrre un valore booleano, questo operatore produce una collezione (la collezione di tutte le istanze che soddisfano la condizione specificata). L'operatore <code>->includes</code> torna invece un valore booleano a seconda che una certa collezione includa o meno un determinato oggetto.
 
==Voci correlate==