2006/09/14

[aspectj-users] 特定のアノテーションを持つメソッドをもつクラスを指定したい

[aspectj-users] Annotations injection on types based on methods annotations

特定のアノテーションを持つメソッドを持つクラスを指定して、アノテーションを付加したい、って話。
WhiteDogでもこれができると@WhiteDogClassがいらなくなってちょっと楽。

結論としては、今は出来ないけど、最新版ではundocumentedなhasmethod、hasfieldってポイントカットが用意してあるらしい。

使い方は、コマンドラインオプションに-XhasMemberを指定した上で、以下のように記述:

-- 引用 --
public aspect LiftImmutability {
declare @type:
hasmethod(@Immutable * *(..)):
@Container;
}
----

まだITDを考慮してなくて正式サポートじゃないけど、これ使えるとちょっと記述の幅が広がるなぁ。
いい感じ。

0 件のコメント: