Pregunta

Estoy trabajando en algo de código utilizando el marco de la FEM en Java, pero es realmente difícil de utilizar, por ejemplo, No puedo poner en práctica OCL-como API de consulta en la parte superior de la FEM que sería de tipo seguro.

Una de las razones es que eGet() durante EStructuralFeature vuelve sólo una Object, no EObject. Así que cualquier cosa que iba a escribir debe utilizar gran parte de la comprobación nula, la verificación de tipos y el tipo de colada que no es seguro, no performant y no se puede generalizar de forma reutilizable.

¿Por qué no generan campos electromagnéticos implementaciones ficticias con envolturas para EObject valor Object arbitraria?

La aplicación de la EObject y por tanto las interfaces de EClass incluso con UnsupportedOperationException sencilla tiro es realmente un dolor (las API son demasiado grandes). Lo mismo vale para el método eContainer() que hace que la navegación por el modelo hacia arriba doloroso.

¿Fue útil?

Solución

El mismo método se utiliza para acceder a valores de atributo simples (que puede ser de cualquier tipo Java) y relaciones de poligonal a otros objetos modelados, y los que puede ser simple o con varios valores.

EMF proporciona mecanismos genéricos para comprobar si un objeto es una instancia de un EClass, o si un EClass es asignable a otro, así que no veo el problema con eso.

Otros consejos

método

El EGET () es parte de la API reflectante EMF. Como EMF puede envolver cualquier objeto serializable no se puede restringir el objeto devuelto de un API tal reflectante.

¿Por qué es necesario utilizar esta API de reflexión en lugar de la aplicación Java generado de su modelo ecore? De esta manera usted tendrá toda la API directa bien escritos para manipular los objetos de dominio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top