[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 メーリングリストの案内