[Seasar-user:8655] Re: [S2Dao] Bean のプロパティに基本型以外を使う方法

Yasuo Higa [E-MAIL ADDRESS DELETED]
2007年 6月 25日 (月) 18:52:11 JST


ひがです。

> なかたです。
> 回答ありがとうございます。
> 
> まず、前提として、ビジネスロジックが操作する Entity クラスで
> Enum を使いたいのです。
> 
> String でまず受けておいて、Dxo を使って変換すればいいのは
> わかっていましたが、そのために、基本型のプロパティを持つ中間的な
> Bean を用意すると二重管理になってしまって、同期のための余計な
> 手間がかかりそうなのがイヤだったのです。そこで、直接 S2Dao の結果が
> Enum やユーザ定義型クラスになっているといいのになぁ、というのが
> そもそもです。
> 
> で、ちょっとソース追っかけましたが、
> org.seasar.framework.beans.impl.PropertyDescImpl クラスで、
> 216:        } else if (arg instanceof String &&
> !String.class.equals(propertyType)) {
> 217:            return convertWithStringConstructor(arg);
> 
> こういう処理をしていますね。ユーザ定義型の方はなんとかして、
> String を引数に取るコンストラクタを用意すればこの処理でインスタンスを
> 生成してくれるのでいいのですが、
> ・String を引数にできないクラス(Enum)
> ・arg が String でない場合
> のときに、
> 
> > > > > ・static で
> > > > > ・valueOf という名前で
> > > > > ・戻り値がそのクラスのインスタンス
> > > > > のメソッドがあれば、それを実行して格納する。
> なんてことはできないのでしょうか?

上記の仕様で対応しました。
https://www.seasar.org/issues/browse/CONTAINER-46
Seasar2.4.14から利用可能になります。

よろしくお願いします。

--
Yasuo Higa
[E-MAIL ADDRESS DELETED]



Seasar-user メーリングリストの案内