UM 2 TP2 Facult´e des Sciences
2 Manipulation de mod`eles en EMF/Java
Objectif
— G´en´erer le code d’un m´eta-mod`ele donn´e.
— Charger et manipuler des mod`eles (fichier xmi) en Java/EMF.
2.1 G´en´eration du code
R´ecup´erez le m´eta-mod`ele maps.ecore http: // www2. lirmm. fr/ ~ferdjoukh/ cv. html .
Pour g´en´erer le code du m´eta-mod`ele maps, suivez les ´etapes suivantes :
— Cr´eer un nouveau EMF Empty project nomm´e maps.
— Copier le fichier maps.ecore dans le dossier model du projet maps.
— Cr´eer un fichier maps.genmodel.
— Menu contextuel sur maps.ecore →New →Other,
— EMF Generator Model →Nommer puis Next →Choisir Ecore Model puis Next,
— Appuyer sur Load (pas d’erreurs) puis Next →Finish.
— Ouvrir le fichier cr´e´e et menu contextuel sur la racine →Generate Model Code.
— Regarder le dossier src du projet, 3 nouveaux packages ont ´et´e cr´e´es. Ils contiennent des
classes pour instancier le m´eta-mod`ele et manipuler ses mod`eles conformes.
2.2 Charger une instance
— Cr´eer un nouveau package java dans le dossier src et le nommer test.
—Copier le fichier test.java dans le package src/test.
—Copier l’instance map.xmi dans le dossier model.
— Ex´ecuter le programme test.java pour voir ce qu’il fait.
2.3 Travail demand´e
Utiliser la m´ethode chargerModele contenue dans test.java pour ´ecrire les m´ethodes suivantes :
— R´ecup´erer et afficher les noms de toutes les rues (Street) d’une map donn´ee.
— R´ecup´erer toutes les rues pietonnes (Pedetrian) dont la longueur d´epasse 1000m.
— Pour un nom de boulevard donn´e (Boulevard), trouver tous les noms des routes adjacentes.
— Pour un nom de place (Square) donn´e, trouver tous les noms des routes la bordant.
Astuce G´en´erer le ECore Diagram du m´eta-mod`ele pour mieux voir les classes et r´ef´erences.
UM Septembre 2015 Facult´e des Sciences