0

Xpand メソッドが入力に応じて指定されたテキスト文字列を出力できるようにするルールを設定することは可能ですか。例えば:

«FOR a:e.attributes»
 Type = «a.eClass.name»
 Value = «a.name.toFirstUpper»

«ENDFOR»

上記のコードは次のように出力されます。

Type = StringAttribute
Value = String1

Type = IntegerAttribute
Value = 123

この出力を作成するにはどうすればよいですか:

Type = String
Value = String1

Type = int
Value = 123

これはifステートメントで実行できることは知っていますが、多かれ少なかれ自動化できるようにしたいと考えています。これらの詳細を同じファイルに出力する必要があるたびに、そのようなルールを指定しなければならないのはもったいないでしょう。これを達成するために使用できるコードの種類を誰かに教えてもらえますか? ありがとうございました。

4

1 に答える 1

0

再利用可能なXtendヘルパーを作成することをお勧めします

toSimpleName(String inp):
    switch (inp) {
        case "StringAttribute"  : "String"
        case "IntegerAttribute" : "int"
        // ...more cases here...
        default                 : inp
    }
;

次に、次のように Xpand テンプレートから呼び出します。

«FOR a:e.attributes»
 Type = «a.eClass.name.toSimpleName()»
 Value = «a.name.toFirstUpper»

«ENDFOR»
于 2013-02-08T22:42:39.400 に答える