1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // various forms of package name pattern matching work
-
- import org.aspectj.testing.Tester;
-
- import p1.C1;
- import p1.p2.C2;
-
- public class Driver {
- public static void test() {
- Top t = new Top();
- p1.C1 c1 = new p1.C1();
- p1.p2.C2 c2 = new p1.p2.C2();
-
- Tester.checkEqual(t.bar(), 11, "top.bar()");
-
- Tester.checkEqual(c1.bar(), 1111, "c1.bar()");
-
- Tester.checkEqual(c2.bar(), 1011, "c2.bar()");
- }
- public static void main(String[] args) { test(); }
- }
-
- class Top {
- public int bar() {
- return 1;
- }
- }
-
- aspect TopAdvice {
- int around(): target(*) && call(int *()) {
- int result = proceed();
- return result+10;
- }
-
- int around(): call(int p1.*.*()) {
- int result = proceed();
- return result+100;
- }
-
- int around(): call(int p1..*.*()) {
- int result = proceed();
- return result+1000;
- }
- }
|