22.11.2013 Views

Dankwoord - martes

Dankwoord - martes

Dankwoord - martes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

24 HOOFDSTUK 3. METHODOLOGIE<br />

3.2.3.1 Eenvoudige collectieoperaties<br />

De implementatie van eenvoudige collectieoperaties is meestal niet zo moeilijk. De meeste van<br />

deze operaties hebben een tegenhanger in de JAVA API over collectietypen. Indien dat niet<br />

het geval is zullen we voor deze operaties een aparte implementatie voorzien. Daarvoor zullen<br />

we een soort van sjablonen gebruiken. In tabel 3.5 tonen we de meest gebruikte standaard<br />

OCL operaties over alle collectietypen en hun JAVA tegenhangers.<br />

OCL operatie Java Tegenhanger Omschrijving<br />

excludes(object) ! contains(object) Geeft waar terug indien het object<br />

geen element van de collectie is<br />

excludesAll(collection) ! containsAll(collection) Geeft waar terug indien alle<br />

elementen van de gegeven<br />

collectie niet aanwezig<br />

in de huidige collectie zijn<br />

includes(object) contains(object) Geeft waar terug indien het object<br />

een element van de collectie is<br />

includesAll(collection) containsAll(collection) Geeft waar terug indien alle<br />

elementen van de gegeven<br />

collectie aanwezig in<br />

de huidige collectie zijn<br />

isEmpty() isEmpty() Geeft waar terug indien de collectie<br />

geen enkel element bevat<br />

notEmpty() ! isEmpty() Geeft waar terug indien de collectie<br />

een of meerdere elementen bevat<br />

size() size() Geeft het aantal elementen<br />

in de collectie terug<br />

Tabel 3.5: Standaardoperaties over alle soorten van collectie typen<br />

3.2.3.2 Collectieiteratoren<br />

Collectieiteratoren laten ons om over collecties te itereren. De collecties waarop deze operaties<br />

toegepast zijn noemen we hier source. Ieder element van de source wordt tegen een expressie<br />

geëvalueerd. Deze expressie noemen we body. In tabel 3.6 tonen we de collectieiteratoroperaties<br />

over alle collectietypen.<br />

Omdat de collectieiteratoren altijd over collecties itereren moet men deze iteraties in termen<br />

van de doeltaal genereren. Bijvoorbeeld, zijn iteraties meestal in JAVA geimplementeerd met<br />

behulp van de interface Iterator. We zullen hier namelijk deze constructie gebruiken om over<br />

collectie te kunnen itereren.<br />

De OCL collectieiteratoren (zie tabel 3.6) hebben geen tegenhangers in de JAVA Collection<br />

API. Bijgevolg moeten we voor elke collectieiterator een methode creëren. Hiervoor zullen we<br />

een soort van sjablonen gebruiken. In deze sjablonen zullen we een vaste en een variërende<br />

stukcode hebben. De variërende code zullen we met een bold-italic lettertype noteren.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!