[Seasar-user:513] Re: S2ContainerImpl#getComponentDefSize()
B commentout.com TAKAI Naoto
takai
2004年 3月 26日 (金) 19:29:06 JST
> getComponentDefSize()がS2Containerに登録されているすべての
> コンポーネントの数を返すのか、ユーザが登録したコンポーネント
> の数を返すのかの定義の問題ですね。
はい、まさにそうです。
S2Containerインターフェースの仕様の問題で、例えばSelのかわりにOGNLを利
用するS2Containerを実装しようとしたときに、どういう数を返すように実装
するべきなのかって問題だとおもいます。
> getComponentDefSize()がユーザが登録したコンポーネント
> の数を返すほうが使いやすいならそうしたいと思います。
eclipseでCall Hierachyをのぞいてみたところ、
S2ContainerImpl#destroy()
S2ContainerImpl#include(S2Container)
S2ContainerImpl#init()
あたりに影響がでてきそうです。いずれも利用方法は getComponentDefSize()
でコンポーネント数を取得して、getComponentDef(int) をぐるぐるまわすっ
て利用方法です。
このうち、getComponentDefSize() に対してpublicなアクセスをしているのが
includeメソッドだけです。includeのときにincludeされる子コンテナー自身を
親コンテナーに追加するメリットはあまり感じません。
# そういえば、コンポーネントの名前空間ってフラットなのですね。
ひとつの方法として、
S2Container#getComponentDef(int)
S2Container#getComponentDefSize()
をdeprecatedにして、ユーザが登録したコンポーネントのListを返す
S2Container#geAllComponentDef()
みたいな定義をS2Containerに追加するというのもアリかとおもいます。
--
TAKAI Naoto / [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内