1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import java.util.*;
-
- public aspect FieldGetJoinPointsInAroundAdvice {
-
- private static int secretField1;
- private int secretField2;
- public static int nonsecretField3;
- public int nonsecretField4;
-
-
- static int privateNonstaticFieldGets = 0;
- static int privateStaticFieldGets = 0;
- static int publicNonstaticFieldGets = 0;
- static int publicStaticFieldGets = 0;
-
- before () : cflow(adviceexecution()) && get(private !static * *secret*) { privateNonstaticFieldGets++; tjps.add(thisJoinPoint.getSourceLocation());}
- before () : cflow(adviceexecution()) && get(private static * *secret*) { privateStaticFieldGets++;}
- before () : cflow(adviceexecution()) && get(public !static * *secret*) { publicNonstaticFieldGets++;}
- before () : cflow(adviceexecution()) && get(public static * *secret*) { publicStaticFieldGets++;}
-
- pointcut execTest () : execution(* FieldGetJoinPointsInAroundAdvice.test());
-
- before () : execTest() {
- int i = secretField1;
- i=secretField2;
- i=nonsecretField3;
- i=nonsecretField4;
- }
-
- void around () : execTest() {
- int i=secretField1;
- i=secretField2;
- i=nonsecretField3;
- i=nonsecretField4;
- proceed();
- }
-
- after () : execTest () {
- int i=secretField1;
- i=secretField2;
- i=nonsecretField3;
- i=nonsecretField4;
- }
-
- private static List tjps = new ArrayList();
-
- public static void test () {
- System.out.println("? test()");
- }
-
- public static void main (String[] args) {
- test();
- if (privateNonstaticFieldGets!=privateStaticFieldGets ||
- privateStaticFieldGets!=publicStaticFieldGets ||
- publicStaticFieldGets!=publicNonstaticFieldGets) throw new RuntimeException(
- "\n privateNonstaticFieldGets="+privateNonstaticFieldGets+
- "\n publicNonstaticFieldGets="+publicNonstaticFieldGets+
- "\n privateStaticFieldGets="+privateStaticFieldGets+
- "\n publicStaticFieldGets="+publicStaticFieldGets);
- //System.err.println(tjps);
- }
- }
|