effectivement
[edit]
Finalement je n'en plus si sure:
- vu la définition de RedefinableTemplateSignature, je me demande s'il ne s'agit pas ici de meta classes et non de classes (au sens template C++, generic Java)
- de plus fig 17.18 (UMl 2.1.1) on voit que Classifier hérite de TempleteableElement, et donc un Classifier peut aussi avoir un TemplateSignature
- enfin, une classe template peut également avoir des actuals, et cela n'est possible que via un TempleteableElement, pas au 'niveau' d'un Classifier. Comme je ne vois pas pourquoi il faudrait que la définition des formals et les actuals ne soient pas au même 'niveau' pour une classe mon coeur re-balance du coté de l'utilisation de TemplateSignature,
Qu'en penses-tu ?
Il y a autre chose qui me semble également bizarre : un actual est un ParameterableElement, on a l'impression de tourner en rond ...
[/edit]
[edit 2]
Bon, Visual Paradigm for UML génère aussi un RedefinableTemplateSignature, alors je m'incline
c'est le seul outils (a part Bouml of course) qui 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]
là je ne comprends pas : je ne vois pas ou je mets deux fois le parameter, peut etre que tu as crus que je mettais à la fois parameter="xxx" et <parameter xmi:idref="xxx"> ?
Sinon, comme une signature peut avoir plusieurs parameters, je préfère l'utilisation de <parameter xmi:idref="xxx">
comme c'est un ownedParameter je trouve cela redondantIl ne faut pas oublier la propriété signature de l'objet TemplateParameter
comme c'est un ownedParameteredElement je trouve cela redondant.Il ne faut pas oublier l'attribut owningTemplateParameter du ParametereableElement
En fait je ne genère jamais de owningXXX car j'utilise des ownedXXX. C'est une erreur ?
Partager