Dxo -- Setterが呼び出されたものだけを変換して欲しい


画面 → BUSINESS → DAO というレイヤ割りのArchitectureがあったとして

更新画面において画面からBUSINESSへDataを渡す際に、
BUSINESSの提供するEntityにDxoで渡します。
そしてBUSINESSはDAOにその渡されたEntityからDAOのEntityにDxoで渡します。

BUSINESSの提供するEntityは別に画面専用のEntityではないので、
画面に存在しない項目を持っていたりします。
(どちらかと言うとDBのTable構造の形をしている)
なので何も考えずにDxoを使うと、画面に存在していない項目がnullで更新されてしまいます。
そこで、BUSINESS → DAOのDxoでは、ExcludeNullを採用することが思いつきます。
すると、画面に存在していない項目はnull値なので、更新対象になりません。
しかし、今度は画面からnull更新が出来なくなってしまいます。

一番良いのは、BUSINESSの提供するEntityに「Setter呼び出しFLAG」があって、
それをDxoが検知して「BUSINESS → DAO」の変換を行えれば一番だと思います。

何かAnnotationで、「Setter呼び出しFLAG」のMethod名の目印を指定すれば、
それがTRUEの項目だけを変換するって仕様があればうれしいなと・・・

dxo.diconを差し替えて、ConverterFactoryImplを差し替えて、
initialize()をOverrideして、独自のBeanConverter作れば、
Application側で独自に作ることも出来るかもしれない。

※initialize()をOverrideするのはちょとつらい...
list.addAll(Arrays.asList(BUILTIN_CONVERTERS));だけ
protectedの別Methodになって欲しい...


#
# 無論「画面 → DAO」というArchitectureの時は全然問題無いですけど
#