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.
28 HOOFDSTUK 3. METHODOLOGIE<br />
source->exists(body)<br />
dan is de corresponderende JAVA code in Listing 9 te zien. Hier source is een collectie en<br />
daarvoor gebruiken we de JAVA interface Iterator om over deze collectie te kunnen itereren.<br />
De JAVA code ziet er zo uit:<br />
Listing 9 Sjabloon voor OCL exists operatie<br />
Iterator it = source.iterator();<br />
while(it.hasNext()){<br />
ElementType elem = (ElementType) it.next();<br />
if(elem.body){<br />
return true;<br />
}<br />
}<br />
return false;<br />
forAll operatie<br />
Soms wil men dat er een beperking voor alle elementen uit een collectie geldt. In dat geval kan<br />
hij de forall operatie gebruiken. Indien de OCL expressie in de body van de operatie voor<br />
een of meer elementen uit de collectie faalt geeft de forall operatie niet waar als resultaat<br />
terug. Gegeven de volgende OCL expressie<br />
source->forall(body)<br />
De vertaling van de OCL expressie naar JAVA die de forall operatie bevat is te zien in de<br />
volgende sjabloon:<br />
Listing 10 Sjabloon voor OCL forAll operatie<br />
Iterator it = source.iterator();<br />
while(it.hasNext()){<br />
ElementType elem = (ElementType) it.next();<br />
if(! elem.body){<br />
return false;<br />
}<br />
}<br />
return true;<br />
isUnique operatie<br />
Indien men in een collectie van elementen een unieke waarde voor ieder element in deze<br />
collectie wenst moet hij de isUnique operatie gebruiken. De body van deze operatie is meestal<br />
een expressie over een bepaalde eigenschap van het type van de betrokkene elementen in de<br />
collectie. Het resultaat van deze operatie geeft een booleaanse waarde terug. Deze operatie zal<br />
over alle elementen itereren en zal voor elk element de gevraagd waarde met de meegegeven