я создаю редактор для управления графическими элементами, каждый элемент должен представлять тип элемента в спецификации API.
Элементы API в основном представляют собой интерфейсы некоторых классов, они имеют определенные ограничения использования, например, элемент A не может быть дочерним элементом элемента B или не может быть связан с элементом C и т. д.
Редактор должен позволять вам генерировать код в соответствии с тем, что вы нарисовали, и сгенерированный код должен быть реализацией API, который соответствует тому, что вы нарисовали.
я ничего не знаю (на практике) об архитектуре, управляемой моделью, и о том, как я могу генерировать код из графической модели для некоторой реализации.
я не хочу смешивать графическую модель (содержащую графическую информацию, такую как размер и координаты и т. д.) с бизнес-моделью, реализующей спецификацию API.
Я использую eclipse GEF для создания редактора, вот проблемы, с которыми я сталкиваюсь:
Поскольку графическая модель и бизнес-модель разделены, я думал об определении модели ЭДС, редактор будет редактором для этой модели ЭДС. Можно ли тогда преобразовать модель, нарисованную в редакторе, используя модель emf в качестве основных элементов конструкции, в соответствующую реализацию спецификации API?
я знаю, поскольку графическая модель и бизнес-модель разделены, я должен реализовать какой-то грамматик, разделяющий ограничения использования: antlr хорошо подходит для того, что я хочу сделать (говоря о генерации кода и грамматике), или мне следует использовать xtext?
какой инструмент eclipse framework поможет мне делать то, что я хочу?