Dankwoord - martes
Dankwoord - martes
Dankwoord - martes
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
3.2. BESCHRIJVING VAN DE METHODOLOGIE 23<br />
3.2.2.3 String type<br />
Voor de vertaling van operaties over strings kan een groot deel van de java.lang.String API<br />
opnieuw gebruikt worden. De operatie size() moet naar de methode length() in JAVA<br />
vertaald worden. Indien we de gelijkheid van twee strings willen nagaan kunnen we in JAVA<br />
gebruik maken van de equals() methode. Dit is samengevat in tabel 3.3.<br />
Operaties Notaties Java vertaling Resultaat<br />
concatenation str.concat(str) str.concat(str) String<br />
size str.size() str.length() Integer<br />
to lower case str.toLower() str.toLowerCase() String<br />
to upper case str.toUpper() str.toUpperCase() String<br />
substring str.substring(int,int) str.substring(int,int) String<br />
equals str1 = str2 str1.equals(str2) Boolean<br />
not equals str1 str2 ! str1.equals(str2) Boolean<br />
Tabel 3.3: Standaardoperaties voor String type<br />
3.2.3 Vertaling van OCL collectieoperaties<br />
Voor we aan de vertaling van collectieoperaties beginnen moeten we eerst iets over OCL collectietypes<br />
zeggen. Deze OCL collectietypes moeten op de collectietypen van een doeltaal<br />
afgebeeld worden. Gelukkig biedt JAVA een brede waaier van collectietypes aan. Een mogelijke<br />
afbeelding is voorgesteld in tabel 3.4.<br />
OCL collectietype Java type Concreet Java type<br />
Set Set HashSet<br />
Sequence List ArrayList<br />
Bag List ArrayList<br />
OrderedSet List ArrayList<br />
Tabel 3.4: Afbeelding van OCL collectie typen naar JAVA collectie typen<br />
Een Set in OCL stelt een wiskundige verzameling voor. Deze Set bevat elementen zonder<br />
duplicaten. Een OrderedSet is een Set waarbij zijn elementen geordend zijn. Bovendien een<br />
OrderedSet bevat geen duplicaten.<br />
Een Bag is een collectie waarbij duplicaten wel toegelaten zijn. Met andere woorden kan een<br />
object meerdere keren een element van een Bag worden. In een Bag is er geen volgorde.<br />
Een Sequence is een collectie waarbij de elementen geordend zijn. Een element kan meer dan<br />
een keer deel van een Sequence maken.<br />
In OCL hebben we twee typen van operaties over collecties. Operaties die over collecties<br />
itereren en operaties die dat niet doen. De eerste soort noemt men collectieiteratoren en<br />
de tweede eenvoudige collectieoperaties. We zullen eerst de vertaling van de tweede soort<br />
beschrijven.