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 27<br />
source->collect(body)<br />
De JAVA code ziet er zo uit:<br />
Listing 7 Sjabloon voor OCL collect operatie<br />
List result = new ArrayList();<br />
Iterator it = source.iterator();<br />
while(it.hasNext()){<br />
ElementType elem = (ElementType) it.next();<br />
Object bodyObj = elem.body;<br />
if(bodyObj != null){<br />
result.add(bodyObj);<br />
}<br />
}<br />
return result;<br />
iterate operatie<br />
De iterate operatie is de meest fundamentele en ingewikkelde operatie die over collecties<br />
itereert maar bijzonder generisch. De operaties reject, select, forAll, exists, collect<br />
kunnen allemaal in termen van iterate beschrijven worden. De collect operatie beschreven<br />
in termen van iterate is als volgt:<br />
Listing 8 collect operatie in termen van iterate<br />
collection->collect(x:T|x.property)<br />
is identiek aan :<br />
collection->iterate(x:T; acc: T2= Bag{}|<br />
acc->including(x.property))<br />
In deze thesis hebben we geen sjabloon voor iterate voorgesteld. We vinden dat wat men met<br />
iterate wil uitdrukken kan in de meeste gevallen ook uitgedrukt worden met een specieke<br />
collectieiterator. Bovendien is veel makkelijker en overzichtelijker indien we een collectieiterator<br />
gebruiken dan gewoon de OCL iterate operatie bij run-time OCL. Indien we de OCL<br />
expressies van Listing 8 met elkaar vergelijken dan is duidelijk dat de eerste indrukking overzichtelijker<br />
is die de collectieiterator collect gebruikt. In werkelijkheid zal een implementatie<br />
van de iterate operatie op zichzelf niet zo veel werk vragen.<br />
exists operatie<br />
Meestal wil men speciceren dat er minstens een element in een collectie is die aan een bepaalde<br />
conditie voldoet. De exists operatie kan hiervoor gebuikt worden. Deze operatie geeft een<br />
booleaans resultaat terug. Met andere woorden is het resultaat van deze operatie waar indien<br />
er minstens een element in de collectie bestaat dat aan de voorwaarden gespeciceerd in de<br />
body van de operatie voldoet. Indien we de volgende OCL expressie hebben