[seasar-javadoc:220] Re: MethodDef.java

Koichi Kobayashi koichik @ improvement.jp
2006年 6月 13日 (火) 03:00:21 JST


小林 (koichik) です.

Date:    Tue, 13 Jun 2006 00:13:09 +0900
From:    Seto Azusa <azusa @ fieldnotes.jp>
To:      seasar-javadoc @ ml.seasar.org
Subject: [seasar-javadoc:217]  MethodDef.java

> MethodDef.javaのJavaDocを書きましたので、レビューをお願いします。

お疲れ様です!!

> (1)setContainer()の記述はArgDef.javaの同名メソッドに揃えました。
> org.seasar.framework.container.impl.MethodDefImpl の実装も見た
> のですが、ArgDefSupportのインスタンスにS2コンテナを設定している
> ので、「引数を評価するコンテキストとなるS2コンテナを設定します。」
> であっているとは思うのですが...

間違ってるというほどではありませんが,実際には引数を評価
するためだけとは限らなくて,メソッドの代わりに式を与えられた
場合にその式を評価するコンテキストにもなります.

> (2)getContainer()とsetContainer(S2Container)は本来対にして、
> getContainerのところも「引数を評価するコンテキストとなるS2
> コンテナを取得します。」とか記述すべきなのかもしれませんが、

揃ってた方がいいですね.
表現が変わっていると,設定したのとは別のものが返ってくるかも
しれないと感じちゃいそうなので.
あと,get〜 は「〜を取得します」ではなく「〜を返します」で.

> (3)setExpression(Expression)とgetExpression()はタグ内に
> (この場合<initMethod>と<destroyMethod>)にOGNL式が書かれた場合に
> 設定されるという認識であってますでしょうか?

はい.
ただし,式は OGNL とは限りません.
XmlS2ContainerBuilder は式を OGNL として設定しますが,
例えば JavascriptExpressionImpl みたいな実装クラスを
setExpression() することもできるわけです.

ともあれ (JW),MethodDef は実際には BehaviorDef とかって方が
正確かもしれませんね.
必ずしもコンポーネントのメソッドが呼び出されるとは限らなくて,

<initMethod>@System @ out.println("hoge")</initMethod>

みたいなこともできちゃうわけなので.

そんなわけで (どんなわけで?),MethodDef のクラスコメントで
メソッドの実行だけでなく,任意の式を実行できるということを
書いた方がよさげですね.

んで,getExpression() のコメント

>      * 実行されるメソッドとなる式を返します。

は「実行されるメソッド」ではなく「実行される式」の方が
よさげです.

-- 
<signature>
    <name>Koichi Kobayashi</name>
    <e-mail>koichik @ improvement.jp</e-mail>
</signature>



seasar-javadoc メーリングリストの案内