
Envoyé par
alt3
Peut-être, mais ça m'oblige à browser tout les objets du ou des modèles (ce qui n'est pas trivial). Enfin, ça ne me donne pas les dérivés , mais les objets parents - conceptuellement parlant.
Salut
D'un côté il faut que tu précises ta question
parce que l'arbre d'héritage d'un objet ne signifie pas grand chose. Au mieux, tu peux récupérer tous l'arbre d'héritage du type de l'objet avec :
myEObject.eClass().getEAllSuperTypes()
Si tu veux un arbre (au sens structure de données) il faut utiliser getESuperTypes() et itérer pour obtenir les niveaux supérieurs.
Si tu veux récupérer le méta modèle :
myEObject.eClass().getEPackage()
Si tu veux récupérer tous les types (instance de EClassifier) du méta modèle :
myEObject.eClass().getEPackage().getEClassifiers()
Si c'est autre chose, il faut préciser parce que dans l'état ça ne vaut pas dire grand chose.
Si c'est pour faire du check sur la cohérence d'un modèle il faut se tourner vers OCL et/ou EMF Validation (qui a un support pour OCL et Java).
Pour du requêtage il y a plusieurs solutions (Java pur avec API EMF, EMF Query, OCL)
Yann
Partager