IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Platform Discussion :

Reflection EMF au runtime


Sujet :

Eclipse Platform

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Points : 89
    Points
    89
    Par défaut Reflection EMF au runtime
    Bonjour,

    je cherche des pistes pour effectuer des checks sur mon modèle EMF au runtime (par exemple, obtenir l'arbre d'héritage d'un objet).

    Est-ce possible ? Par quel moyen ?

    Merci, alt3.

  2. #2
    Membre averti Avatar de Aurelien Pupier
    Homme Profil pro
    Senior Software Engineer
    Inscrit en
    Décembre 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Senior Software Engineer

    Informations forums :
    Inscription : Décembre 2007
    Messages : 278
    Points : 369
    Points
    369
    Par défaut
    Bonjour,

    tu peux utiliser eContainer et eAllContents je pense
    Aurélien Pupier
    Eclipse GMF-Runtime Committer
    R&D Eclipse Engineer, Studio Project Leader
    BonitaSoft S.A.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Scratsh Voir le message
    Bonjour,
    tu peux utiliser eContainer et eAllContents je pense
    Il ne me semble pas (ou je n'ai pas été clair):
    Je veux obtenir des relations de dérivation entre objets, pas des informations de composition ou d'agrégation - ce que me fournissent eContainer et eAllContents.

    Ces méthodes donnent accès à des informations sur des instances de classes.

    Or, je veux des informations sur les classes elles même.

  4. #4
    Membre averti Avatar de Aurelien Pupier
    Homme Profil pro
    Senior Software Engineer
    Inscrit en
    Décembre 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Senior Software Engineer

    Informations forums :
    Inscription : Décembre 2007
    Messages : 278
    Points : 369
    Points
    369
    Par défaut
    ok alors tu as un eClass et un eContainingFeature si je me souviens bien
    Aurélien Pupier
    Eclipse GMF-Runtime Committer
    R&D Eclipse Engineer, Studio Project Leader
    BonitaSoft S.A.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Scratsh Voir le message
    ok alors tu as un eClass et un eContainingFeature si je me souviens bien
    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.

  6. #6
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Citation Envoyé par alt3 Voir le message
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myEObject.eClass().getEPackage()
    Si tu veux récupérer tous les types (instance de EClassifier) du méta modèle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Erreur EMF et plugins org.eclipse.core.runtime.Path
    Par abderahime_13 dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 11/04/2008, 17h27
  2. [LG]runtime error 202
    Par picsou123 dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2003, 22h53
  3. Reflections
    Par Laurent Gomila dans le forum DirectX
    Réponses: 4
    Dernier message: 25/07/2003, 14h42
  4. Runtime VC++ ou MFC
    Par Elodie_nl dans le forum MFC
    Réponses: 9
    Dernier message: 03/12/2002, 17h23
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo