Итак, вот моя проблема, у меня есть проект Eclipse EMF, и я построил модель, сгенерировал соответствующий код, а также вручную запрограммировал некоторые базовые классы, которые соответствуют модели.
Я использовал мастер eclipse, чтобы адаптировать проект к проекту преобразования Java Emitter Template (JET) (и заметил, что это не генерирует те же конфигурации в MANIFEST, что проект JET, созданный с нуля, делает ... )
Я создал файл JET, который создает класс Java для генерации кода для основного класса приложения на основе ввода, который входит в «аргумент».
Затем я создал экземпляр Dynamic и заполнил созданный файл .xmi несколькими узлами в соответствии с моделью.
Теперь я создал рабочую конфигурацию JET Transformation, и я пытаюсь передать в качестве входного файла .xmi и использовать одну из двух доступных вещей в поле со списком Transformation ID ...
Если я выберу Transformation ID для jet2, я получу этот вывод в консоли:
templates/main.jet(8,1): <c:setVariable var='org.eclipse.jet.taglib.control.iterateSetsContext' select='true()'>
Trace: completed action.
templates/main.jet(29,1): <c:if test='isVariableDefined(''org.eclipse.jet.resource.project.name'')'>
Trace: processing body
templates/dump.jet(2,1): <c:dump select='/*' format='true' entities='true'>
Trace: completed action.
templates/main.jet(30,5): <ws:file template='templates/dump.jet' path='{$org.eclipse.jet.resource.project.name}/dump.xml'>
Trace: completed action.
Successful Execution
И если вместо этого я выбираю Transformation ID как org.eclipse.jet.transforms.taglib.doc (единственный доступный другой вариант), я получаю:
templates/control.jet(8,1): <c:setVariable var='jetPluginNS' select='''org.eclipse.jet'''>
Trace: completed action.
templates/control.jet(9,1): <c:setVariable var='tagLibrariesXP' select='concat($jetPluginNS, ''.tagLibraries'')'>
Trace: completed action.
templates/control.jet(15,1): <c:setVariable var='pluginNS' select='$org.eclipse.jet.resource.project.name'>
Trace: completed action.
templates/control.jet(16,1): <c:setVariable var='docPlugin' select='concat($org.eclipse.jet.resource.project.name, ''.doc'')'>
Trace: completed action.
templates/control.jet(21,5): <c:iterate select='/plugin/extension[@point = $tagLibrariesXP]' var='extension'>
Trace: loop initialized
templates/control.jet(21,5): <c:iterate select='/plugin/extension[@point = $tagLibrariesXP]' var='extension'>
Trace: finished loop
templates/control.jet(69,5): <c:iterate select='/plugin/extension[@point = $tagLibrariesXP]' var='extension'>
Trace: loop initialized
templates/control.jet(69,5): <c:iterate select='/plugin/extension[@point = $tagLibrariesXP]' var='extension'>
Trace: finished loop
Successful Execution
В любом случае, я не получаю сгенерированный Java-класс из метода generate, и тем не менее оба говорят, что они успешны ... также, с помощью консольных сообщений в первом случае, я вижу, что генерируется файл dump.xml с переводом этого файла из xmi в xml, но без какой-либо связи с Java или какими-либо методами, которые я определил для создания в классе генерации JET ...
Кроме того, если после создания упомянутого файла dump.xml я пытаюсь использовать его в качестве входных данных, он говорит мне, что мой объект Application не найден или является абстрактным. На самом деле тот из сгенерированного пакета действительно является интерфейсом, но даже если я пытаюсь использовать Impl, я получаю ту же ошибку, и я даже не знаю, работает ли он правильно из-за всей этой процедуры, которую я предпринял, чтобы добраться до Файл dump.xml.
Что я делаю не так? Может кто-нибудь, пожалуйста, помогите мне?
Заранее спасибо!