[Seasar-dev:214] [S2Container] PropertyInterTypeコミットのお願い

KOMORI Yusuke y-komori
2006年 1月 3日 (火) 00:05:46 JST


To:小林さん

 あけましておめでとうございます、小森@SMGです。

 年を越してしまいましたが、PropertyInterTypeができましたので、リポジト
リにコミットしていただけないでしょうか。

■添付ファイルについて
・PropertyInterType.zip
 共通部分のソースコードです。
 https://www.seasar.org/svn/s2container/trunk/seasar2
 配下へのコミットをお願いします。

・PropertyInterType-tiger.zip
 tigerアノテーションによるPropertyInterTypeの実装です。
 https://www.seasar.org/svn/s2container/trunk/s2-tiger
 配下へのコミットをお願いします。

・PropertyInterType-backport175.zip
 backport175アノテーションによるPropertyInterTypeの実装です。
 https://www.seasar.org/svn/s2container/trunk/s2-backport175
 配下へのコミットをお願いします。


■使い方
1.Dicon定義
     以下の通りです。
	<component name="PropertyInterType"
		class="org.seasar.framework.aop.intertype.TigerPropertyInterType" >
		<property name="trace">false</property>
	</component>

     backport175で使用する場合、実装クラスを
    org.seasar.framework.aop.intertype.Backport175PropertyInterType
    に変更します。

     また、traceプロパティをtrueにしておくと、生成するsetter、getterに
    対して、メソッド呼び出し時のログを出力するコードも埋め込みます。
    (InterTypeで追加されたメソッドに対してInterceptorが適用できないため、
    TraceInterceptorの代わりとなるコードを埋め込みました)

2.InterTypeの使い方
     setter、getterを生成したいフィールドに対して、以下のようにアノテー
    ションを設定するだけでOKです。

    @Property(propertyType=PropertyType.READWRITE)
    protected FooDto fooDto_;

    上記のアノテーションに対しては以下の2つのsetter、getterが生成されま
    す。
    
    public void setFooDto(FooDto arg)
    public FooDto getFooDto()
    
    ※ 対象となるフィールドはprivate以外の属性とする必要があります。
    
    Backport175の場合、以下のように記述します。
    
    /**
     * @org.seasar.framework.container.annotation.backport175.Property(
     *      propertyType="readwrite")
     */
    protected FooDto fooDto_;
    
3.生成されるsetter、getterの制御
    PropertyTypeを指定することで何を生成するか制御できます。
    
    READ            getterのみ
    WRITE           setterのみ
    READWRITE       setter、getterの両方
    NONE            何も生成しない(無指定と同じ)


 実際にS2JSF上で使ってみましたが、アクションクラスなどのsetter・getter
の嵐がごっそりなくなりますので、ソースコードの見通しがずいぶんと良くなり
ました。
 地味な機能ですが、効果は高いと思います。

 仕様やパッケージの分割方法についても、ご意見ありましたら修正しますので、
よろしくお願いします。

----------------------------------------------
 小森 裕介 / Yusuke Komori

  E-Mail:y-komori @ nifty.ne.jp
     URL:http://www.littleforest.jp/
-------------- next part --------------
テキスト形式以外の添付ファイルを除去しました...
ファイル名: PropertyInterType-tiger.zip
型:         application/x-zip-compressed
サイズ:     18082 バイト
説明:       無し
URL:        http://lists.sourceforge.jp/mailman/archives/seasar-dev/attachments/20060103/8f6e5940/PropertyInterType-tiger-0001.bin
-------------- next part --------------
テキスト形式以外の添付ファイルを除去しました...
ファイル名: PropertyInterType-backport175.zip
型:         application/x-zip-compressed
サイズ:     244211 バイト
説明:       無し
URL:        http://lists.sourceforge.jp/mailman/archives/seasar-dev/attachments/20060103/8f6e5940/PropertyInterType-backport175-0001.bin
-------------- next part --------------
テキスト形式以外の添付ファイルを除去しました...
ファイル名: PropertyInterType.zip
型:         application/x-zip-compressed
サイズ:     15664 バイト
説明:       無し
URL:        http://lists.sourceforge.jp/mailman/archives/seasar-dev/attachments/20060103/8f6e5940/PropertyInterType-0001.bin


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