1234567891011121314151617181920212223242526272829303132333435 |
- import org.aspectj.testing.Tester;
-
- public class CFlowObjects {
- public static void main(String[] args){
- new Test().go();
- Tester.checkEqual(Test.cflowObjects, 1, "1st cflow");
- Tester.checkEqual(Test.callsPerCFlow, 1, "1 call for each cflow");
-
- new Test().go();
- Tester.checkEqual(Test.cflowObjects, 2, "2nd cflow");
- Tester.checkEqual(Test.callsPerCFlow, 1, "1 call for each cflow");
- }
- }
-
- class Test {
- static int cflowObjects = 0;
- static int callsPerCFlow = 0;
-
- void go(){
- foo();
- }
-
- void foo(){}
- }
-
- aspect A percflow(target(Test) && call(void go())) {
-
- { Test.cflowObjects++; }
- { Test.callsPerCFlow = 0; }
-
- //before(): instanceof(Test) && calls(void Object.*()){ Test.callsPerCFlow++; }
- before(): within(Test) && call(void Object+.*(..)) {
- Test.callsPerCFlow++;
- }
- }
|