2011-10-28 7 views
2

私はDozerを使用しており、WebServiceから来るJAXBオブジェクトを、アプリケーションのサービス層にあるビジネスオブジェクトにマッピングしています。特定の場合には、文字列値のコードを人間が読める説明に文字列値でマップする必要があります。 例: "FLT"は "FLAT"にマップし、 "TRP"は "TRAP"にマップします。私はこれらの型マッピングをたくさん持っています。Dozer Converterマップ文字列から文字列へ

は私がDozerConverterを継承し、にconvertTo()とconvertFrom()2つの抽象メソッドを実装することにより、カスタムドーザーコンバータを実装しています。これらの中で、私はFLTとFLATをそれぞれFLTにマップしたいと思いましたが、無意識のうちにDozerは正しいをconvertTo()またはconvertFrom()メソッドと正しく呼んでいません。

他の誰もこの問題を抱えていますか、正しい方向で私を指摘できますか? ありがとう

答えて

0

この問題は、JAXBレベルで解決できます。これにXMLストリング(すなわちFLT)をオブジェクトストリング(すなわちFLAT)に変換したXmlAdapterを利用することができます。あなたがXMLスキーマからオブジェクト・モデルを生成している場合

以下が役立つことがあります。あなたがのPOJOを管理している場合は

2

は、あなたが列挙型としてこれらの文字列を扱うことができます。 Webサービス側とビジネスロジック側のenumを定義する必要がありますが、コンバータやxmladapterを使用するよりも洗練されたソリューションだと思います。

列挙例:

public enum ENUM_WS { 
    @XmlEnumValue("TRP") TRAP, 
    @XmlEnumValue("FLT") FLAT 
} 

public enum ENUM_BL { 
    @XmlEnumValue("TRAP") TRAP, 
    @XmlEnumValue("FLAT") FLAT 
} 
関連する問題