[Seasar-dev:197] Re: [S2Container] アクセサメソッドをコンテナ側で自動生成できないか
Koichi Kobayashi
koichik
2005年 12月 9日 (金) 06:44:08 JST
小林 (koichik) です.
Date: Tue, 06 Dec 2005 23:38:53 +0900
From: KOMORI Yusuke <y-komori @ nifty.ne.jp>
To: seasar-dev @ lists.sourceforge.jp
Subject: [Seasar-dev:196] Re: [S2Container] アクセサメソッドをコンテナ側で自動生成できないか
> S2AOP まわりの現状のコードもだいたい目を通していますので、小林さんの提
> 案通り、DiconでInterTypeとして定義できるよう、実装を考えてみたいと思いま
> す。
InterType ですが,次のようなインタフェースで考えています.
----------------------------------------------------------------------
package org.seasar.framework.aop;
import javassist.CtClass;
public interface InterType {
void introduce(Class targetClass, CtClass enhancedClass);
}
----------------------------------------------------------------------
targetClass は <component> 要素の class 属性で指定されたクラス,
enhancedClass は Javassist によってエンハンス中のクラスです.
<aspect> 要素が指定されている場合は,ポイントカットに含まれる
メソッドがオーバーライド済みです.
InterType 実装クラスは <interType> 要素が記述された順で
introduce() メソッドが呼び出されます.
フィールドやメソッド,実装するインタフェースを追加する等
自由にできます.
# 自由にできすぎてヤヴァいくらい? (^^;
なお,現在考えている実装では InterType が追加したメソッドに対して
アスペクト (Interceptor) は適用できません.
あまり問題になるとは思えませんが,TraceInterceptor などで
トレースが表示されなくてビックリということがあるかも.
ご意見あればお願いします.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>koichik @ improvement.jp</e-mail>
</signature>
seasar-dev メーリングリストの案内