Je travaille sur du code en utilisant le framework EMF en Java, mais il est vraiment difficile à utiliser, par exemple. Je ne peux pas implémenter une API de requête de type OCL au-dessus de EMF qui serait sécurisée.Pourquoi eGet dans EMF renvoie Object plutôt que EObject?
L'une des raisons est que eGet()
pour un EStructuralFeature
renvoie simplement un Object
, et non EObject
. Donc, tout ce que j'écrirais doit utiliser une grande partie des vérifications nuls, des vérifications de types et des transtypages qui sont dangereux, non performants et qui ne peuvent pas être généralisés de manière réutilisable. Pourquoi les champs électromagnétiques ne génèrent-ils pas des implémentations fictives avec des enveloppes EObject
pour une valeur arbitraire Object
?
L'implémentation des EObject
et donc les interfaces EClass
même avec le simple lancer UnsupportedOperationException
est vraiment pénible (les API sont trop grandes). La même chose vaut pour la méthode eContainer()
qui rend la navigation du modèle douloureuse.
Je viens de réaliser EMF a wrappers pour les types primitifs de Java et leurs équivalents d'objet, mais la question demeure, pourquoi l'API qui retourne des objets? –