Генерация Java-кода с использованием Xtend и Sirius

Итак, моя цель - создать графический DSL. Я создал модель ecore с использованием Eclipse Modeling Framework, после чего я использовал Sirius для создания инструмента графического моделирования, и у меня возникли проблемы с последним этапом - генерацией кода Java. Я хотел бы использовать Xtend для его генерации. Какие-нибудь предложения, что было бы лучшим способом сделать это, или некоторые полезные ссылки?

1 ответ

Решение

Есть два аспекта:

  1. сам генератор Xtend, который может быть разработан и испытан независимо от Сириуса. Он будет принимать в качестве входных данных ваши файлы / модели DSL (не .aird или же .odesign файлы с Сириуса) и произведите что хотите. Я не могу помочь в этом аспекте.
  2. интеграция поколения с моделером на основе Сириуса.

Предполагая, что вы знаете, как программно вызывать генератор Xtend, есть несколько способов запустить его изнутри Сириуса. Например, вы можете использовать инструмент типа всплывающего меню, чтобы добавить запись в контекстное меню вашего разработчика моделей, которая затем может вызвать любой код Java и запустить генератор оттуда.

Это то, что Ecore Tools делает для запуска EMF GenModel code gen: оно объявляет всплывающее меню, которое вызывает этот класс Java для выполнения фактической генерации.

Другие вопросы по тегам