2016-05-24 13 views
0

私はJavaで2つの異なるPOJOのフィールドをマッピングするためのマッパーを作成しています。私は単純なマッピングのためにDozerマッパーを使用しましたが、この場合、宛先オブジェクトに値を設定する際には少し複雑な戦略があります。ゲッタはシンプルですが、代わりに直接設定するので、値の処理をしたいと思います。JavaでのPOJOのマッパー

私の質問には、ドーザーマッパーを使用してもいいですか? 私のマッパーを実装するためにリフレクションを使用することはできません(これはxmlファイルでマッピングを定義し、マッパークラスでハードコードしたくないためです) ?このXMLに関連する

<mapping> 
    <field> 
    <!-- source --> 
    <field-a name="cat"> 
    <!-- destination --> 
    <field-b" name="dog"> 
    </field> 
</mapping> 

、私は次のことをしたい:余分な処理(someProcessing)ダウン

Source c; 
Destination d; 
d.setDog(someProcessing(c.getPsMessage())); 

注値を取得した後、宛先オブジェクトに設定する前に。

+1

あなたは、ネーミング・一例を入れてくださいできますか? –

+2

コードに関連するスニペットを含めるのは難しいです。 –

+0

コードスニペットを追加して、私が達成しようとしていることをもう少し明確にしました。また、少し質問を更新します。 –

答えて

3

own getters-setters methods with Dozerを設定できます。次のことが可能であってもマップが異なるタイプと名前を持つ属性!:

例:

<field> 
    <a>yourField</a> 
    <b set-method="nameOfYourFieldSetter(java.lang.String)"> 
     nameOfYourFieldInOtherClass 
    </b> 
</field> 

注ダウン値を取得した後、宛先オブジェクトに設定する前に、余分な処理(someProcessingを) 。

あなたは物事を過度に複雑している、使用KISSの原則:

Source c; 
Destination d; 
// String, Integer or what someProcessing returns! 
String name = someProcessing(c.getPsMessage()); 
d.setDog(name); 
+0

申し訳ありませんが、私は少し質問を編集しました。フィールドをデスティネーションオブジェクトに割り当てる前に、いくつかの処理を行う必要があります。 –

+0

@ObaidMaroof私の編集を確認してください、私はあなたのコードを簡素化し、それをそのまま使うことができると思います...;) –

関連する問題