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

Nakata Kouji [E-MAIL ADDRESS DELETED]
2007年 6月 26日 (火) 13:53:10 JST


なかたです。
返信ありがとうございます。

07/06/26 に Yasuo Higa<[E-MAIL ADDRESS DELETED]> さんは書きました:
> ひがです。
>
> > なかたです。
> > 対応ありがとうございます。
> >
> > うーん。そうなると Enum はバッチリですが、DB にString 以外で格納している
> > 場合のユーザ定義型データクラスをどうするか、が残っています。
> > 例えば今私のプロジェクトでいうと、権限レベルを int で管理しており、
> > 業務に割り当てられた権限レベルとユーザの権限レベルなどから計算によって、
> > 権限を持っているか判断しています。
> > 権限クラスを用意し、DBに格納された値を保持し、権限レベルに権限を有するかの
> > 判定メソッドを持っています。(判定機能を Authority クラスにカプセル化したい)
> > Authority#valueOf(int) で権限クラスのインスタンスを生成し、
> > user.getAuthority().available(int) で判定するような形です。
> > データアクセスの結果 PropertyDescImpl#convertIfNeed に渡される arg は
> > int であるため、String のコンストラクタや valueOf(String)
> > を用意しても意味がありません。
>
> Authority#valueOf(String)も用意し、
> public static Authority valueOf(String arg) {
>  return valueOf(Integer.parseInt(arg));
> }
> のように実装するというのはいかがでしょうか。
> String#valueOf()もいろいろな型の引数に対応していますし、
> そんなに不自然なことはないと思います。

ということは、コミットされた実装では、arg の型がなんだろうと、valueOf(String) が
呼ばれるということでしょうか?私が示した次善策のような形なのでしょうか?



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