Acceleo を使用して、テンプレートで Java コードを呼び出そうとしています。そこに与えられたコード: 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]
また、return 関数を return '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}) /]
そしてそれは機能します...知っておくとよい=)