EMF генерирует не Java-код

Есть ли способ генерировать из кода модели ECore, который не является Java? У меня есть метамодель, которая представляет HTML-макет (формы, входы, кнопки), и я хочу сгенерировать HTML.

Как я могу это сделать? Какие еще инструменты я должен использовать? Ссылка на учебник была бы идеальной, потому что я еще не нашел.

2 ответа

Я думаю, что лучший способ подойти к этому - создать свою метамодель в Ecore, как вы уже сделали, затем сгенерировать код Java и, возможно, также редактор дерева EMF для создания моделей. (Обратите внимание, что код Java для метамодели должен быть сгенерирован так, чтобы результирующие модели могли проходить и интерпретироваться инструментами EMF. Таким образом, вы не генерируете другие языки непосредственно из Ecore - это делается на отдельном шаге как описано ниже),

Затем используйте XPand - язык шаблонов Xtext - для генерации HTML-кода из ваших моделей. Вот запись в блоге, которая объясняет, как создать форму HTML из модели:

http://www.peterfriese.de/getting-started-with-code-generation-with-xpand/

Скорее всего, вы можете пропустить шаг "создание метамодели" и просто использовать тот, который вы уже создали. Эта статья является хорошим введением в XPand, который является очень мощным языком и который, как полагают некоторые, лучше, чем Jet.

Я думаю, что ответ зависит от того, должны ли ваши сгенерированные вещи генерироваться вместе с текущими классами или в совершенно ином процессе.

Если это другой процесс, посмотрите на ответ Xpands - EMF генерирует не Java-код

В противном случае посмотрите на JET, поскольку он используется для генерации повторов артефактов из ecore. Это не красиво -Java внутри Java никогда не будет читабельным - но его довольно легко добавить к существующему генератору из .genmodel процесс.

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