org.aspectj/tests/new/TypeBug.java
2002-12-16 18:51:06 +00:00

74 lines
896 B
Java

class TypeBug {
public static void main(String[] args) {
new TypeBug().go();
}
A a = new A();
D d = new D();
G g = new G();
void go(){
g.foo(a);
g.foo(d);
bar(g);
bash(g);
}
void bar(I i){
i.foo(a);
}
void bash(J j){
j.foo(d);
}
}
aspect Q {
pointcut pc1(): receptions(void I.foo(*));
pointcut pc2(): calls(void I.foo(*));
pointcut pc3(): callsto(pc1());
pointcut test():;
static before(): pc1() {
System.out.print("(pc1) ");
}
static before (): pc2() {
System.out.print("(pc2) ");
}
static before(): pc3(){
System.out.print("(pc3) ");
}
}
class A {}
class D {}
interface I {
void foo(A a);
}
interface J {
void foo(D d);
}
class G implements I, J {
public void foo(A a){
System.out.println("G.foo(A)");
}
public void foo(D d){
System.out.println("G.foo(D)");
}
}