1

ここで説明されている xtext に似た xtext ファイルがあります: (www.ebpml.org/blog2/index.php/2010/11/05/mde-xtext-and-json)

JSONDataSource: root = Object ;
Object: '{' firstObject=TerminalObject (',' objects+=TerminalObject)* '}';
Array: '['firstItem=ObjectValue (',' items+=ObjectValue)* ']';
EmptyObject: isEmpty?= '{}' ;
EmptyArray: isEmpty?= '[]' ;
ObjectValue: value=STRING | Object | Array | EmptyObject | EmptyArray ;
TerminalObject: element=STRING ':' (content = ObjectValue) ;

したがって、コードを生成した後、すべてのオブジェクトが Java で生成されます。生成された Java ファイルにさらにメソッドを追加したいと考えています。

そうするための最良の方法は何ですか?
ありがとう :)

4

1 に答える 1

0

さて、これらのクラスをカスタマイズする簡単な方法はありません。基本的に2つのことができます。

  1. 独自のEMF(Ecore)モデルを作成し、Ecoreモデルを再利用する方法で文法を作成します。このようにして、新しい操作を定義し、それらの実装を手動で作成できます。
  2. 内容を入力するEcoreモデルジェネレーター用のポストプロセッサーを設定することもできます。詳細については、 http://christiandietrich.wordpress.com/2011/07/22/customizing-xtext-metamodel-inference-using-xtend2/を参照してください。ただし、モデルの推論ではカスタムコードを直接出力できないため、変更してください。生成されたコードの本体を作成するためのEMFgenmodel-annotationベースの方法がいくつかあります(詳細については、http://jevopisdeveloperblog.blogspot.hu/2011/03/implement-tostring-with-xtexts.htmlの最後の部分を参照してください)。

全体として、生成されたEMFモデルをカスタマイズすることは非常に困難であり、それを行うことはお勧めしません。新しいヘルパークラスを導入する必要はないようですが、技術的にははるかに簡単です。

于 2012-10-28T17:39:19.590 に答える