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