summaryrefslogtreecommitdiffstats
path: root/tests/java5/annotations/ajdkExamples/AnnotationInheritance.aj
blob: 68c14269fd8b32b971fb7c17824d1deab4958cec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
	import java.lang.annotation.*;
	
	class C1 {
	  @SomeAnnotation
	  public void aMethod() {}
	}
	
	class C2 extends C1 {
	  public void aMethod() {}
	}
	
	class Main {
	  public static void main(String[] args) {
	    C1 c1 = new C1();
	    C2 c2 = new C2();
	    c1.aMethod();
	    c2.aMethod();
	  }
	}
	
	aspect X {
	
	  pointcut annotatedMethodCall() : 
	    call(@SomeAnnotation * C1.aMethod());  //CW L16
	
	  pointcut c1MethodCall() :   // CW L16, L17
	    call(* C1.aMethod());
	  
	  declare warning : annotatedMethodCall() : "annotatedMethodCall()";
	  declare warning : c1MethodCall() : "c1MethodCall()";
	}
	
	@Inherited @interface SomeAnnotation {}