2010-10-05 66 views
4

如何表達僅在從另一個方法內調用時才能找到方法的點切換,但不能直接進行?AscutJ與切入點混淆

例如:

Foo() calls Bar() calls object.Method() 

NotFoo() calls Bar() calls object.Method() 

我只想切入點,爲中富()

我想工作 「withincode」,但似乎只有工作直。

感謝 埃裏克

回答

4

你真正想要什麼,需要兩個joinpoints:在酒吧類

  1. call方法或構造,並within Foo類或最終美孚()與withincode標誌構造。對這個連接點的建議可以例如設置一個標誌,當從Foo()調用時爲true,否則就會失敗。這個變量可以存儲在一個HashMap中,其線程作爲關鍵字來避免併發問題。
  2. withincode Bar()構造函數或Bar類中的和call object.Method()。此連接點的建議還必須檢查該標誌是否設置爲true。最後將Foo標誌再次設置爲false。
+1

我認爲cflow和cflowbelow只是用來處理執行流程中的這種類型的標記。 – PomCompot 2012-04-18 08:59:46