[seasar-dev:545] [S2JFace]TableItemのtextプロパティをBeanDescから取得できない

bskuroneko bskuroneko @ gmail.com
2006年 9月 29日 (金) 23:15:05 JST


小森さん。

bskuronekoです。

小森さんに相談すべきか、直接[S2Container]としてメールを投げるか
迷ったのですが、ひとまず小森さんに相談します。
#小森さんは s2containerのコミッタでもありますしね(^^;

org.eclipse.swt.widgets.TableItemのtextプロパティを
org.seasar.jface.renderer.RendererSupportUtilを使ってセットしようとしても、
textプロパティが見つからず、エラーになります。

原因を調べたところ、TableItemが引数1つのsetTextメソッドを
複数もっているためにBeanDescImplがプロパティとして扱ってくれず、
BeanDesc#getPropertyDescがPropertyNotFoundRuntimeExceptionを投げます。

今のBeanDescImplの実装を見ると以下のような仕様に見えます。
・getterのみ存在
 →getterのみのプロパティ
・getterがなく、引数1つのsetterが1つだけ存在
 →setterのみのプロパティ
・getterとsetterの型が違う
 →invalidPropertyとなりNG
・引数1つのsetterが複数存在(getterの有無は関係なし)
 →同じ型ではありえないので結果的にinvalidPropertyとなりNG

この型チェック部分を以下のような仕様に変更するのは問題があるでしょうか?
・引数1つのsetterが複数存在し、そのうち1つはgetterの戻り値と同じ型
 →getter,setterともに存在するプロパティ
・getterとsetter全ての型が違う
 →getterのみのプロパティ
 (こちらはinvalidPropertyでNGという仕様でもS2JFaceは困りません)

問題がなければ仕様を変更していただけるとありがたいところです。
実装はある程度見えているので私が修正して送って確認していただく形でもかまいません。

仕様変更に問題があるならS2JFace側で対処しようと思っています。

確認よろしくお願いします。


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