2

ジェネレーターでスクリプト名を使用して、対応する Java ファイルを作成したいと考えています。たとえば、スクリプト ファイルが「WordCount.script」の場合、「WordCount.java」ファイルを作成します。「resource.className」を介してこれを公開していた以前のバージョンが見つかりましたが、2.3.1 では機能しませんでした。

override void doGenerate(...

   fsa.generateFile(magic_here + ".java", compile...)
4

3 に答える 3

4

ECoreUtil2 を使用して、リソースの正規化された URI にアクセスできます。例えば;

import static extension org.eclipse.xtext.EcoreUtil2.*

....
override void doGenerate(Resource input...

    fsa.generateFile(input.normalizedURI.lastSegment + ".java", compile...)

または、絶対パスが必要な場合は、lastSegment. 次のように、生成する前にファイル名の末尾 (「.mydsl」など) を削除したい場合があります。

    fsa.generateFile(input.normalizedURI.replace(".mydsl", ".java), compile...

あなたのユースケースに合ったものは何でも!

于 2013-05-17T09:34:22.280 に答える
0

リソースには、ファイルの名前をカプセル化するプロパティ URI があります。その #lastSegment にアクセスして、Java ファイルの名前を計算することができます。

于 2013-03-11T13:43:28.230 に答える
0

次に例を示します。

 fsa.generateFile(
    "src"+"/"+"com"+"/"+"stackoverflow"+"/"+"magic"+"/"+ //package
    "more_magic"+".java", //class name
    compile...)

パッケージは src フォルダーにあり、「com.stackoverflow.magic」になります。ファイルをプロジェクトにインポートすると、パッケージとしてのみ表示されます。

于 2013-03-13T00:49:57.100 に答える