Rapport de fin de phase I - Haute école du paysage, d'ingénierie et ...
Rapport de fin de phase I - Haute école du paysage, d'ingénierie et ...
Rapport de fin de phase I - Haute école du paysage, d'ingénierie et ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
• S<strong>et</strong>(Vélo) n’est pas conforme à Bag(Vélo)<br />
• S<strong>et</strong>(Vélo) n’est pas conforme à Sequence(Vélo)<br />
Les <strong>de</strong>ux <strong>de</strong>rnière règles s’expliquent par le fait que S<strong>et</strong> <strong>et</strong> Sequence sont au même<br />
niveau dans la hiérarchie <strong>de</strong>s collections d’OCL.<br />
Opérations génériques sur les collections<br />
Les opérations sur les collections ne peuvent pas modifier le contenu d’une<br />
collection.<br />
L’opérateur -> perm<strong>et</strong> d’accé<strong>de</strong>r à une opération sur une collection.<br />
collection -> operation()<br />
« select » <strong>et</strong> « reject »<br />
select(exprBool) : Collection<br />
C<strong>et</strong>te fonction r<strong>et</strong>ourne une nouvelle collection restreinte aux éléments satisfaisant la<br />
condition. La nouvelle collection est une sous-collection <strong>de</strong> la collection <strong>de</strong> départ.<br />
Il existe trois syntaxes différentes pour exprimer la condition :<br />
select(exprBool)<br />
context Personne :: nbFilles() : entier<br />
post: result = self.enfants<br />
-> select(sexe = Sexe :: feminin) -> size<br />
select(iterateur | exprBool)<br />
context Personne :: nbFilles() : entier<br />
post: result = self.enfants<br />
-> select(fille | fille.sexe = Sexe :: feminin)<br />
-> size<br />
select(iterateur : type | exprBool)<br />
context Personne :: nbFilles() : entier<br />
post: result = self.enfants<br />
-> select(fille : Personne |<br />
fille.sexe = Sexe :: feminin) -> size<br />
L’utilisation d’une syntaxe sans itérateur explicite implique malgré tout un itérateur<br />
implicite anonyme.<br />
22.06.2005 22/78