Dankwoord - martes
Dankwoord - martes
Dankwoord - martes
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3.2. BESCHRIJVING VAN DE METHODOLOGIE 29<br />
body waarde vergelijken. Indien geen enkel van deze waarden aan elkaar gelijk zijn geeft deze<br />
operatie als resultaat waar terug. Voor de volgende OCL expressie hebben we<br />
source->isUnique(body)<br />
De JAVA code ziet er zo uit:<br />
Listing 11 Sjabloon voor isUnique operatie<br />
Iterator it = source.iterator();<br />
List values = new ArrayList();<br />
while(it.hasNext()){<br />
ElementType elem = (ElementType) it.next();<br />
if(values.contains(body)){<br />
return false;<br />
}<br />
values.add(body);<br />
}<br />
return true;<br />
select operatie<br />
Zowel associaties als resultaten uit operaties kunnen een collectie teruggeven. Indien men in<br />
een deelverzameling van deze collectie geïnteresseerd is kan hij de select operatie gebruiken.<br />
Met andere woorden kan men in de body van deze operatie een lijst van criteria speciceren<br />
om een selectie te maken. Bijgevolg is de body van de select operatie een booleaanse expressie.<br />
Het resultaat van deze operatie resulteert in een deelverzameling van de oorspronkelijke<br />
collectie. In deze deelverzameling zijn alleen maar elementen uit de oorspronkelijke collectie<br />
geselecteerd die aan de voorwaarden van de body voldoen.<br />
Gegeven de volgende OCL expressie, is source een collectie en body een booleaanse expressie.<br />
De corresponderende JAVA sjabloon is hieronder getoond.<br />
source->select(body)<br />
De vertaling van de select operatie naar JAVA is als volgt:<br />
Listing 12 Sjabloon voor OCL select operatie<br />
Set result = new HashSet();<br />
Iterator it = source.iterator();<br />
while(it.hasNext()){<br />
ElementType elem = (ElementType) it.next();<br />
if(elem.body){<br />
result.add(elem);<br />
}<br />
}<br />
return result;