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

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

3 голосов
/ 30 декабря 2010

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

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

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

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

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

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

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

0 голосов
/ 24 июня 2011

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

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

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

...