Bonjour,
Cette discussion est ouverte pour recueillir les commentaires de l'article suivant :
Surcharger proprement du code EMF généré
Toute remarque est bienvenue.
Olivier
Bonjour,
Cette discussion est ouverte pour recueillir les commentaires de l'article suivant :
Surcharger proprement du code EMF généré
Toute remarque est bienvenue.
Olivier
Bonjour Olivier,
Est-ce que ça gère les chaines d'héritage?
Typiquement, si on a "Développeur" qui hérite de "Personne" et que je customise le code de la méthode "getAdresse()" de "Personne" en utilisant la classe générée dans le code src, est-ce que lorsque que j'appelerai "monDev.getAdresse()", j'appelerai bien mon code surchargé?
Le factory_override ne fonctionne que pour les classes feuilles, il faut faire attention...
Ici on utilise EGF (EMF generation factories) pour modifier les templates Jet servant à la génération EMF, c'est une autre façon de faire...
Cordialement,
Bonsoir,
Je me permets de répondre pour Olivier: le plugin ne gère pour l'instant pas la surcharge quand on a des chaines d'héritage comme ce que tu décris. Il y a une issue d'ailleurs ouverte sur le sujet sur le github du projet :
https://github.com/opcoach/genModelAddon/issues/13
Si tu as une idée de comment la résoudre on prend volontiers
Alain
Bonjour Alain,
La solution est simple!
Il suffit de modifier la chaine d'héritage existante:
Person<-PersonImpl<-OverridenPersonImpl
Person<-{Developper,PersonImpl}<-DevelopperImpl<-OverridenDevelopperImpl
Par celle-ci:
Person<-PersonImpl<-OverridenPersonImpl
Person<-{Developper,OverridenPersonImpl}<-DevelopperImpl<-OverridenDevelopperImpl
Ca force à mettre le code généré et le code de surcharge dans le même plugin, mais ça fonctionne!
Il n'y à plus qu'à modifier les patterns JET de génération EMF pour prendre en compte cette modification comme explicité dans la 'Bible' EMF:http://www.informit.com/store/emf-ec...-9780321331885
Cordialement,
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager