[Seasar-user:10897] Re: [Teeda]InterTypeとInterceptorの仕様

"TAKEUCHI Shinichi / 竹 "TAKEUCHI Shinichi / 竹
2007年 10月 6日 (土) 03:24:09 JST


お世話になります、竹内です。

  回答ありがとうございます。すべてのページクラスにダミーで
getLayout() をInterTypeしておいて、そこにInterceptorをかける
ことで、複数レイアウトの自動選択をさせようと考えていたのですが、
すでに当該メソッドがあればInterceptor、なければInterTypeと
場合わけして実装しないとだめみたいですね。

  InterceptorやPublicフィールドの場合は、そもそも最初のクラス
に定義がないといけないと思うのですが、InterTypeなら定義すら
不要で、必要に応じてはずすこともできるのでいいかなと思って
試してみています。

  Duplicateの件は、InterTypeもInterceptorも元のクラスに対して
一回だけ(おそらくClassLoaderでのLoad時に)適用されるために
Duplicateになるということでしょうか? てっきりInterTypeで
拡張したクラス定義が作成され、Interceptorは、そのEnhanced
クラスを元にしてそこから再度拡張するのだと思っていたのですが、
ちがうのですね。

  ところで、TeedaなどのJSF実装は、PageClassに対してUI系の
フィールドや、JSFライフサイクル関連のメソッドをInterType
して実現していると思っていたのですが、別の方法でやって
いるのでしょうか?

On Fri, 05 Oct 2007 23:00:07 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:

> 小林 (koichik) です.
> 
> Date:    Fri, 05 Oct 2007 21:53:50 +0900
> From:    "TAKEUCHI Shinichi / 竹内 伸一" <[E-MAIL ADDRESS DELETED]>
> To:       [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:10895] [Teeda]InterTypeとInterceptorの仕様
> 
> > 1)InterTypeで追加したメソッドに対してInterceptorをかけられるか?
> 
> できません.
> 
> > 2)既存のメソッドをInterTypeでOverrideすることはできるのか?
> 
> できます.
> 
> >    同じ名称とパラメータで追加しようとしたらDuplicateだというExeption
> >    になったのですが、通常のクラス定義のような@Override はできない
> >    ということでしょうか?
> 
> この情報だけだと詳細が分かりませんが,
> 1) のように Interceptor の適用される
> メソッドを InterType でオーバーライド
> しようとすると Duplicate になります.
> そうでなければオーバーライド可能なはずです.
> 
> Interceptor はメソッドのオーバーライドで
> 実現していて,同じことは InterType でも
> できます.
> # これは 1) が不可能な理由でもあります.
> 実際にエンハンスされたクラスを生成する
> Javassist から見れば,Interceptor と
> InterType に大した違いはありません.
> 
> > Seasar.orgの全文検索もしたのですが、InterTypeはめぼしい情報が見
> > つかりませんでした。
> 
> InterType はいいアイディアだ,そんな風に
> 思っていた時期が僕にもありました.
> しかし,実際にはそれほど便利でもなかったので
> あまり使われていないのだと思います.
> 
> その代替案が public フィールドです.
> Teeda との組み合わせでも public フィールドの方が
> ずっとオススメです.
> 
> 
> --
> <signature>
>    <name>Koichi Kobayashi</name>
>    <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> </signature>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 

-- 
TAKEUCHI Shinichi / 竹内 伸一 <[E-MAIL ADDRESS DELETED]>




Seasar-user メーリングリストの案内