Bonjour à toutes et à tous,

Je suis actuellement en train de travailler sur un outils de rétro-ingénierie (génération de diagramme de classes UML à partir de code source e). J'ai à ma disposition un profile UML contenant les différents stéréotypes nécessaires à la modélisation de mes composants e (module, structure, ...).

Je peux utiliser ce profile via le clicodrome d'Eclipse donc il semblerait que les différents stéréotypes soient correctement configurés (je pense aux extensions entre autre). Mais lorsque je veux les appliquer via la méthode applyStereotype, j'ai une jolie remontée d'exception.

Voici un extrait du code que j'ai écrit en me basant sur les tutoriels http://www.eclipse.org/modeling/mdt/...s/article.html et http://www.eclipse.org/modeling/mdt/...2/article.html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
E2UML.registerResourceFactories();
 
Model model = E2UML.createModel("My_model");
 
// charge et applique le profile au model
Profile e_profile = E2UML.loadProfile(URI.createURI("./src/e/models").appendSegment("e").appendFileExtension(UMLResource.PROFILE_FILE_EXTENSION));
E2UML.applyProfile(model, e_profile);
 
//recuperation du stereotype
Stereotype moduleStereotype = e_profile.getOwnedStereotype("Module");
 
// module packet_module.e
org.eclipse.uml2.uml.Package packet_module_e = E2UML.createPackage(model, "packet_module.e");
E2UML.applyStereotype(packet_module_e, moduleStereotype); // c'est ici que cela coince ...
Lors de l'exécution, je récupère cette erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Exception in thread "main" java.lang.IllegalArgumentException: org.eclipse.uml2.uml.internal.impl.StereotypeImpl@8aeed0 (name: Module, visibility: <unset>) (isLeaf: false, isAbstract: false) (isActive: false)
	at org.eclipse.uml2.uml.internal.operations.ElementOperations.applyStereotype(ElementOperations.java:1411)
	at org.eclipse.uml2.uml.internal.impl.ElementImpl.applyStereotype(ElementImpl.java:510)
	at UML2Tools.E2UML.applyStereotype(E2UML.java:91)
	at UML2Tools.Main.main(Main.java:51)
Je ne vois vraiment pas d'où cela peut venir car lorsque je regarde les profiles appliqués au model, mon profile e est bien présent donc il a été correctement chargé.

Si vous avez une idée, je suis preneur car je cherche depuis plus de 2 jours et toutes les infos que j'ai trouvées me portent à croire que j'utilise la bonne méthode.

Merci d'avance et à bientôt