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 33<br />
Listing 17 Sjabloon OCL if-then-else expressie<br />
return (< translation of boolean OCL expression >) ?<br />
: ;<br />
3.2.5 Vertaling van OCL let expressies<br />
In OCL let expressies zijn er lokale variabelen gedenieerd. De implementatie van de let<br />
expressie in JAVA gebeurt op dezelfde wijze. In de sjabloon voor de let expressie worden<br />
deze lokale variabelen ook gedenieerd. Er moet wel aandacht aan de scope van de lokale<br />
variabelen besteed worden. De typen van deze variabelen in de OCL let expressie moeten op<br />
de juiste JAVA typen afgebeeld worden. Dat is het variabel gedeelte voor de let sjabloon. In<br />
de JAVA code is dat te zien met bold-italic lettertypen.<br />
Listing 18 Een voorbeeld van een OCL let expressie<br />
let<br />
tmp1 : Integer = self.attribute1,<br />
tmp2: String = self.attribute2<br />
in<br />
if self.attr3 then<br />
tmp1 >= 18<br />
else tmp1 < 18<br />
endif<br />
De bovenstaande OCL let-expressie illustreert hoe de vertaling naar JAVA gebeurt. Er<br />
kunnen ook nog collectieiteratoren in het 'let' of 'in' deel van de let expressie voorkomen.<br />
In dit geval worden hulpmethoden voor deze collecties gegenereerd.<br />
Listing 19 Sjabloon voor OCL let expressie<br />
boolean result = false;<br />
int tmp1 = this.getAttribute1() ;<br />
String tmp2 = this.get Attribute2() ;<br />
result = (this.getA ttr3() ? tmp1 >= 18 : tmp1 < 18;<br />
return result;<br />
3.2.6 Vertaling van klasse-invarianten<br />
Elke invariant wordt vertaald in een publieke booleaanse methode. Bij de naam van deze<br />
booleaanse methoden wordt de naam van de invariant geconcateneerd. Op deze manier is er<br />
een garantie voor consistentie tussen de verschillende gegenereerde invarianten. De publieke<br />
visibiliteit van de methode zorgt voor dat instantiaties van de klasse waarin deze methode<br />
gedenieerd is een toegang tot deze methode krijgen. Hieronder tonen we een sjabloon van<br />
een methode voor een klasse-invariant die een vast en een variabel gedeelte heeft.