別のメソッド内から呼び出された場合にのみメソッドを検索し、直接ではないポイントカットを表現するにはどうすればよいですか?
例えば:
Foo() calls Bar() calls object.Method()
また
NotFoo() calls Bar() calls object.Method()
ポイントカットがFoo()内でのみ機能するようにしたい
「withincode」を試しましたが、それは直接機能するようです。
ありがとうエリック
What you want actually requires two joinpoints:
call
method or constructor in Bar class and be within
Foo class or eventually Foo() constructor with withincode
designator. The advice to this joinpoint can for example set a flag that to true when called from Foo() and falso otherwise. This variabel can be stored in a HashMap with the thread as key to avoid concurrency issues.withincode
Bar() constructor or within Bar class and call
object.Method(). The advice to this joinpoint must also check if the flag is set to true. And finally set the Foo flag to false again.