You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestMatching.aj 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Each pointcut should match as specified the methods that immediately follow it
  2. aspect TestMatching {
  3. before(): execution(* m001*(@Anno1 *)) {}
  4. public void m001a(AnnotatedWithAnno1 p) {} // yes
  5. before(): execution(* m002*(@Anno1 (*))) {}
  6. public void m002a(@Anno1 String p) {} // yes
  7. public void m002b(Integer p) {} // no
  8. before(): execution(* m003*(@Anno2 (*))) {}
  9. public void m003a(@Anno2 String p) {} // yes
  10. public void m003b(@Anno1 String p) {} // no
  11. public void m003c(Integer p) {} // no
  12. before(): execution(* m004*(@Anno1 (@Anno2 *))) {}
  13. public void m004a(@Anno1 AnnotatedWithAnno2 p) {} // yes
  14. public void m004b(@Anno2 String p) {} // no
  15. public void m004c(@Anno1 String p) {} // no
  16. public void m004d(Integer p) {} // no
  17. before(): execution(* m005*(@Anno1 *,@Anno2 *)) {}
  18. public void m005a(AnnotatedWithAnno1 p,AnnotatedWithAnno2 q) {} // yes
  19. public void m005b(AnnotatedWithAnno1 p,@Anno2 String q) {} // no
  20. public void m005c(String p,AnnotatedWithAnno2 q) {} // no
  21. before(): execution(* m006*(@Anno1 (*),@Anno2 (*))) {}
  22. public void m006a(@Anno1 String p,@Anno2 String q) {} // yes
  23. public void m006b(AnnotatedWithAnno1 p,@Anno2 String q) {} // no
  24. public void m006c(String p,AnnotatedWithAnno2 q) {} // no
  25. public void m006d(AnnotatedWithAnno1 p,AnnotatedWithAnno2 q) {} // no
  26. public void m006e(@Anno1 @Anno2 String p,@Anno1 @Anno2 String q) {} // yes
  27. before(): execution(* m007*(@Anno1 (@Anno2 *))) {}
  28. public void m007a(@Anno1 AnnotatedWithAnno2 p) {} // yes
  29. public void m007b(@Anno1 String p) {} // no
  30. public void m007c(AnnotatedWithAnno2 p) {} // no
  31. public void m007d(@Anno1 AnnotatedWithAnno1 p) {} // no
  32. before(): execution(* m008*(@Anno1 (*),..,@Anno2 (*))) {}
  33. public void m008a(@Anno1 String p,Integer q,@Anno2 String r) {} // yes
  34. public void m008b(@Anno1 String p,@Anno2 String r) {} // yes
  35. public void m008c(@Anno1 String p,Integer q,String r,@Anno2 String s) {} // yes
  36. public void m008d(@Anno1 String p,Integer q,String r,@Anno2 String s,String t) {} // no
  37. public void m008e(String p,Integer q,String r,@Anno2 String s) {} // no
  38. before(): execution(* m009*(@Anno1 (*),..,@Anno2 *)) {}
  39. public void m009a(@Anno1 String p, Integer q,AnnotatedWithAnno2 r) {} // yes
  40. public void m009b(@Anno1 String p, Integer q,@Anno2 AnnotatedWithAnno2 r) {} // yes
  41. public void m009c(@Anno1 String p, Integer q,@Anno2 Integer r) {} // no
  42. public void m009d(String p, Integer q,@Anno2 Integer r) {} // no
  43. before(): execution(* m010*(..,@Anno1 (*))) {}
  44. public void m010a(@Anno1 String p,@Anno1 String q) {} // yes
  45. public void m010b(String p,@Anno1 String q) {} // yes
  46. public void m010c(@Anno1 String p,String q) {} // no
  47. before(): execution(* m011*(@Anno1 *...)) {}
  48. public void m011a(AnnotatedWithAnno1... p) {} // no (the array is not annotated)
  49. public void m011b(@Anno1 String... p) {} // no
  50. before(): execution(* m012*(@Anno1 (*...))) {}
  51. public void m012a(@Anno1 String... p) {} // yes
  52. public void m012b(AnnotatedWithAnno1... p) {} // no
  53. }