Как перенести генерацию кода из xpand в xtend(2)?

Мы хотим переопределить старый проект, который использовал генерацию кода через xtext и xpand. Xpand должен быть заменен на Xtend(2), а старый рабочий процесс плагина fornax должен быть удален, заменен на xtext и xtend maven. В старом проекте мы используем два проекта Maven. Первый - это xtext-проект, который содержит определение языка для "ownLanguage" и должен использоваться только как скомпилированная зависимость, если это возможно. Второй содержит файл с моделью на описанном языке, старый рабочий процесс для файлов xpand и xpt. Старый рабочий процесс использовал этот main.xpt в качестве записи:

«IMPORT ownLanguage»
«DEFINE main FOR Model-»    
    «EXPAND AttributeInterfaces::attributeInterfaces FOR this»
«ENDDEFINE»

И здесь ссылаются AttributesInterfaces.xpt

«IMPORT ownLanguage»
«DEFINE attributeInterfaces FOR Model»
    «EXPAND attributeInterface FOREACH this.fieldDefs»  
«ENDDEFINE»

«DEFINE attributeInterface FOR FieldDef»
    «FILE "com/package/attributes/" + this.name.toFirstUpper() + "Attribute.java"»
        package ....attributes;     

        public interface «this.name.toFirstUpper()»Attribute {

           «this.type.mappedTypeNullable.fullName» get«this.name.toFirstUpper()»OrNull();

       }
    «ENDFILE»
«ENDDEFINE»

Используется для генерации интерфейсов из списка "fieldDef". Этот список "fieldDef" взят из файла model.ownLaguage, который использует язык зависимости.

Есть ли способ переписать эти файлы.xpt в файлы.xtend, чтобы использовать их в новом проекте с помощью комбинации плагинов xtext и xtend maven для создания тех же файлов, что и в старом проекте?

1 ответ

Вы можете использовать внедрение зависимостей, чтобы импортировать другие вещи в ваш класс

@Inject extension Xxx 

Или же

@Inject Xxx xxx

А потом назовите его из богатой строки

'''«method»'''

Нет никакого стандартного компонента maven или рабочего процесса, но это не должно быть проблемой, чтобы написать немного кода клея

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