2012-01-10 8 views
5

Eclipseを使用して任意の2つのクラス間のマッピングにコードジェネレータを記述しようとしています。このアイデアは、ユーザーがプロパティをマッピングする必要がある2つのクラスを選択するウィザードを提示することです。次に、すべての可能性のある一致を表示し、ユーザーが大丈夫ならば、必要なClass1.setXXX(Class2.getXXX())を行うメソッドマップを1つだけ持つClassMapperクラスを作成します。マッパを生成するEclipseコードジェネレータ

どのようにこれを行うことができますか?あなたがやろうとしているものを

おかげ

+0

Dozer(http://dozer.sourceforge.net/)のようなBeanマッパーのフレームワークはあなたにとってうまくいかないでしょうか? – Daff

+0

面白い..私はちょうどそれを行うためにスイングプログラムを書くつもりだった。あなたがこれを得ることから設定しなければならない回数。たくさんの入力...しかし、それは問題の価値がなかったので停止しました。あなたが1つを見つけたら教えてください。 – sethu

+0

ドーザーは私たちに何をするようですしかし、あるクラスから別のクラスへの静的マッピング。複数のクラス間で変数をマップする必要がある場合は、コードを書く/生成する必要があります。 – sethu

答えて

2

これはドーザーと同様の機能を提供していますが、静的コードは、それが高速であることは、この優位性を持っている、それだけでコードのロジックを含み、フィールドの使用法を見つけることが容易ですIDEのコール階層を介して。

一般的に、Eclipseのプラグインは、GUIを投影でき、Eclipse自体によって表示されるだけでなく、Javaコードを操作するための優れたツールにアクセスできるため、最良の方法です。

しかし、悪い部分は構成1になると思います。 Dozerには、標準タイプ間の最も一般的な変換を処理するプリミティブマッパー(プリミティブ型とネイティブJava型を変換する方法のプリミティブ)がありますが、構成する必要はありません。たとえば、ブール値を表す文字列は、 't'と 'f'、 'true'と 'false'、 '1'と '0'、または他の言語の単語です。日付にはさまざまな形式などがあります。したがって、このプラグインではさまざまなマッパーを構成する必要があります。具体的には、特定の変換を処理する独自のコードスニペットを定義する方法です。

ただし、これを行うと、非常に高く評価されます。 私は最近、何かを探していました。それは、マッピングを作成して、コードが一致するdtoと、オブジェクトのサブタイプがさまざまなクラスによって表されるときに、デザインのクラス階層をマージする可能性があるということです。しかし、結果は無く、jsonトランスポートの方が優れています。

関連する問題