Как перенести генерацию кода из 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 или рабочего процесса, но это не должно быть проблемой, чтобы написать немного кода клея