Comment hériter d'une classe non-décrite dans le modèle
Je suis en train de travailler sur le support de l'héritage multiple dans Wikitty et j'ai un problème. Pour gérer l'héritage multiple entre deux business entity, je dois, pour une entité donnée, prendre toutes les opérations des entités mères pour les copier dans la fille. Jusqu'ici tout va bien, ça marche. Le problème survient dans le modèle de Vradi, il y a des entités qui héritent de TreeNode et de WikittyUser, deux classes que je ne génère pas et qui ne sont pas décrites dans le modèle de Vradi. Si je prend l'exemple de VradiUser (qui étend WikittyUser), je dois copier les opérations contenus dans WikittyUser dans VradiUser. Or, dans les scripts de génération je ne peux pas deviner les opérations de WikittyUser puisque elles ne sont pas décrites dans le modèle. Avant, avec les générateurs, on faisait "VradiUser extends WikittyUser" et ça marche mais du coup on ne peut pas faire d'héritage multiple si on hérite de plusieurs entités non-décrites dans le modèle. Comment faire pour implémenter l'héritage depuis une entité qui n'est pas décrite dans le modèle ? Y'a toujours la possibilité d'essayer de trouver la classe dans le class-path et de faire de la réflexion mais ça pose plusieurs problèmes. J'ajoute que dans le module generators, je n'ai pas la dépendance vers wikitty-API (où se trouve les classes WikittyUser et TreeNode) et je ne peux pas ajouter cette dépendance car on la dépendance inverse (du coup, on introduirait un cycle.
On Mon, 16 Aug 2010 15:58:55 +0200 Brendan Le Ny <bleny@codelutin.com> wrote:
Le problème survient dans le modèle de Vradi, il y a des entités qui héritent de TreeNode et de WikittyUser, deux classes que je ne génère pas et qui ne sont pas décrites dans le modèle de Vradi.
Si personne n'a fait disparaître la fonctionnalité: - Dans le modèle vradi tu crées les deux classes dont tu as besoins mais sans aucune info (seulement leur nom + package) en leur mettant le stéréotype <<external>> (ou extern, ou un truc dans le genre) - il faut ensuite que lors de la génération vradi qu'il y ait aussi lecture du modèle wikitty - le générateur (text2model) va fusionner tout ça, et donc dans le modèle mémoire tu devrais avoir des classes complètement renseignées Donc le problème est comment lire le modele wikitty en meme temps que vradi ? 1) copier le modèle wikitty à coté du modèle vradi 2) avec uml d'eclipse tu peux faire des imports de fichiers externes (mais pas portable et on prefere utiliser argo) 3) dans le plugin de génération dans vradi, réussir a lui dire que ton modèle vradi a une dépendance vers le modèle wikitty (c pas fait mais je pense que c la bonne solution). Donc en gros tu fais un ticket pour le 3, et pour l'instant tu utilises le 1 :) Quelqu'un voit une autre solution ? -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Quelqu'un voit une autre solution ? Ajouter le fichier objectmodel de wikitty dans les jar wikitty et dans vradi configurer le plugin maven eugene
Le 16/08/2010 16:29, Benjamin POUSSIN a écrit : pour aller lire des modèles dans le classpath. -- Éric<chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
Le 23/08/2010 09:53, Eric Chatellier a écrit :
Quelqu'un voit une autre solution ? Ajouter le fichier objectmodel de wikitty dans les jar wikitty et dans vradi configurer le plugin maven eugene
Le 16/08/2010 16:29, Benjamin POUSSIN a écrit : pour aller lire des modèles dans le classpath.
Ticket fait pour cette fonctionnalité : http://www.nuiton.org/issues/show/879 -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
participants (3)
-
Benjamin POUSSIN -
Brendan Le Ny -
Eric Chatellier