Я пытаюсь вызвать некоторый код Java в шаблоне с помощью Acceleo.
Код, указанный там: http://wiki.eclipse.org/Acceleo/FAQ#How_to_use_a_Java_service_in_Acceleo работает нормально, но мой код не работает, и я не нахожу никаких ошибок
Вот моя функция Java:
public String test(softo.Activite activity) {
return activity.getModXName();
}
и код шаблона:
[query public getTest(a : Activite) : String = invoke('org.eclipse.acceleo.softogen.files.Utility','test(softo.Activite activity)', Sequence{a}) /]
[template public createOperationUrl(activity : AccessibleActivite) ]
Result : [getTest(activity)/]
[/template]
Я также пытался заменить функцию возврата на 'foobar', но она тоже не работает.
У меня нет сообщений при генерации: файл просто содержит «Результат:».
Я также проверил пути и имена файлов, которые я использую.
Есть идеи решить проблему?
Редактировать:
Хорошо ! Я наконец нашел ответ ... это действительно глупо: в коде запроса не нужно указывать имя аргумента, только его тип, так что
[query public getTest(a : Activite) : String = invoke('org.eclipse.acceleo.softogen.files.Utility','test(softo.Activite activity)', Sequence{a}) /]
стало:
[query public getTest(a : Activite) : String = invoke('org.eclipse.acceleo.softogen.files.Utility','test(softo.Activite)', Sequence{a}) /]
и это работает ... Полезно знать =)