Bonjour, je souhaite produire l'XMI correspondant à un une classe template (Java generique) avec Eclipse 3.3 installé il y a quelques jours.
Voici ce que je fais :
- je cree un "empty EMF project " (Create an empty Java project, setting up the classpath to use EMF)
- je cree le package "pk"
- je cree la classe "Map" dans "pk", puis edite sa definition textuelle pour avoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 package pk; public class Map<K,V> { }- Sur le projet je fais "Uml from Java". Comme celui-ci ne me permet pas d'exporter de l'XMI :
- Je cree un "EMF Model" (Create the Ecore and generator files for a new EMF model) en important le model UML
- sur le xx.genmodel je fais un "export model" et demande d'exporter le model UML
le resultat defini la classe en oubliant totalement qu'il s'agit d'un generique
Il faut dire que si je regarde le modèle cree par "Uml from Java" la classe est 'nue' et ne contient pas de [redefinable] template signature
Ai-je raté quelque chose ?
[edit]
J'ai essayé avec UmLet, MyEclipse, et Gentleware-apollo sans plus de succès dans la gestion des génériques.
Il faudrait leur dire que Java 6 est sorti et/ou qu'XMI 1.0 n'est pas la dernière version
En tout cas cela fait beaucoup de Mo téléchargés pour rien, heureusement qu'on peu desinstaller après. Moralité : plus je regarde les autres outils, plus j'aime Bouml
[/edit]
[edit2]
VIsual Paradigm for Uml a bien voulut reverser correctement un generique Java et produire de l'XMI, par contre celui-ci ne sait pas reverser l'utilisation d'un générique, donc avec :
MapCD hérite de Map sans plus, y compris au niveau de l'XMI produit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class Map<K,V> {} class C {} class D{} class MapCD extends Map<C,D>{ public Map<D,C> rev; }
rev est de type Map, y compris au niveau de l'XMI produit
[edit 2]
Si vous connaissez un outil autre que Bouml qui sais gérer les génériques et produire de l'XMI merci de me le signaler
Partager