--- /dev/null
+enum Color { RED, GREEN, AMBER }
+
+@interface TrafficLight {
+ Color value() default Color.RED;
+}
+
+public class Broken1 {
+ public static void main(String[] args) {
+
+ }
+}
+
+class Marked {
+
+ public void a() {}
+
+ @TrafficLight
+ public void b() {}
+
+ @TrafficLight(Color.RED)
+ public void c() {}
+
+ @TrafficLight(Color.GREEN)
+ public void d() {}
+}
+
+aspect X {
+ pointcut p1(): execution(@TrafficLight(a) * *(..)); // value of just 'a' doesn't mean anything - only enums supported right now, let's say 'invalid annotation value'
+}
--- /dev/null
+package p;
+
+public enum Color { RED, GREEN, AMBER }
--- /dev/null
+package a;
+
+import p.*;
+
+public aspect EnumTest1 {
+ public static void main(String[] argv) {
+
+ }
+ @TrafficLight(Color.RED) public void m() {}
+ @TrafficLight(Color.GREEN) public void n() {}
+ @TrafficLight public void o() {}
+
+ before(): execution(@TrafficLight(Color.RED) * *(..)) {} // referencing Color via import of p.*
+}
\ No newline at end of file
--- /dev/null
+package a;
+
+import p.*;
+
+public aspect EnumTest2 {
+ public static void main(String[] argv) {
+
+ }
+ @TrafficLight(Color.RED) public void m() {}
+ @TrafficLight(Color.GREEN) public void n() {}
+ @TrafficLight public void o() {}
+
+ before(): execution(@TrafficLight(p.Color.RED) * *(..)) {}; // referencing Color directly in package p
+}
\ No newline at end of file
--- /dev/null
+package a;
+
+import p.*;
+
+public aspect EnumTest3 {
+ public static void main(String[] argv) {
+
+ }
+ @q.r.Fruity(q.r.Fruit.APPLE) public void m() {}
+ @q.r.Fruity(q.r.Fruit.BANANA) public void n() {}
+ @q.r.Fruity public void o() {}
+
+ before(): execution(@q.r.Fruity(q.r.Fruit.APPLE) * *(..)) {}; // static import of fruits
+}
\ No newline at end of file
--- /dev/null
+package q.r;
+
+public enum Fruit { APPLE, ORANGE, BANANA }
--- /dev/null
+package q.r;
+
+public @interface Fruity {
+ Fruit value() default Fruit.BANANA;
+}
\ No newline at end of file
--- /dev/null
+enum Color { RED, GREEN, AMBER }
+
+@interface TrafficLight {
+ Color value() default Color.RED;
+}
+
+public class Parsing {
+ public static void main(String[] args) {
+
+ }
+}
+
+class Marked {
+
+ public void a() {}
+
+ @TrafficLight
+ public void b() {}
+
+ @TrafficLight(Color.RED)
+ public void c() {}
+
+ @TrafficLight(Color.GREEN)
+ public void d() {}
+}
+
+aspect X {
+ pointcut p1(): execution(@TrafficLight(Color.GREEN) * *(..));
+ pointcut p2(): execution(@TrafficLight(a=Color.GREEN) * *(..));
+ pointcut p3(): execution(@TrafficLight(a=Color.RED,c=Color.RED) * *(..));
+ pointcut p4(): execution(@TrafficLight(a=Color.RED,c=Color.RED,e=Color.RED) * *(..));
+}
\ No newline at end of file
--- /dev/null
+enum Color { RED, GREEN, AMBER }
+
+@interface TrafficLight {
+ Color value() default Color.RED;
+}
+
+public class Simple {
+ public static void main(String[] args) {
+
+ }
+}
+
+class Marked {
+
+ public void a() {}
+
+ @TrafficLight
+ public void b() {}
+
+ @TrafficLight(Color.RED)
+ public void c() {}
+
+ @TrafficLight(Color.GREEN)
+ public void d() {}
+}
+
+aspect X {
+ before(): execution(@TrafficLight(Color.RED) * *(..)) {}
+}
\ No newline at end of file
--- /dev/null
+package p;
+
+public @interface TrafficLight {
+ Color value() default Color.RED;
+}
\ No newline at end of file
+++ /dev/null
-enum Color { RED, GREEN, AMBER }
-
-@interface TrafficLight {
- Color value() default Color.RED;
-}
-
-public class Broken1 {
- public static void main(String[] args) {
-
- }
-}
-
-class Marked {
-
- public void a() {}
-
- @TrafficLight
- public void b() {}
-
- @TrafficLight(Color.RED)
- public void c() {}
-
- @TrafficLight(Color.GREEN)
- public void d() {}
-}
-
-aspect X {
- pointcut p1(): execution(@TrafficLight(a) * *(..)); // value of just 'a' doesn't mean anything - only enums supported right now, let's say 'invalid annotation value'
-}
+++ /dev/null
-package p;
-
-public enum Color { RED, GREEN, AMBER }
+++ /dev/null
-package a;
-
-import p.*;
-
-public aspect EnumTest1 {
- public static void main(String[] argv) {
-
- }
- @TrafficLight(Color.RED) public void m() {}
- @TrafficLight(Color.GREEN) public void n() {}
- @TrafficLight public void o() {}
-
- before(): execution(@TrafficLight(Color.RED) * *(..)) {} // referencing Color via import of p.*
-}
\ No newline at end of file
+++ /dev/null
-package a;
-
-import p.*;
-
-public aspect EnumTest2 {
- public static void main(String[] argv) {
-
- }
- @TrafficLight(Color.RED) public void m() {}
- @TrafficLight(Color.GREEN) public void n() {}
- @TrafficLight public void o() {}
-
- before(): execution(@TrafficLight(p.Color.RED) * *(..)) {}; // referencing Color directly in package p
-}
\ No newline at end of file
+++ /dev/null
-package a;
-
-import p.*;
-
-public aspect EnumTest3 {
- public static void main(String[] argv) {
-
- }
- @q.r.Fruity(q.r.Fruit.APPLE) public void m() {}
- @q.r.Fruity(q.r.Fruit.BANANA) public void n() {}
- @q.r.Fruity public void o() {}
-
- before(): execution(@q.r.Fruity(q.r.Fruit.APPLE) * *(..)) {}; // static import of fruits
-}
\ No newline at end of file
+++ /dev/null
-package q.r;
-
-public enum Fruit { APPLE, ORANGE, BANANA }
+++ /dev/null
-package q.r;
-
-public @interface Fruity {
- Fruit value() default Fruit.BANANA;
-}
\ No newline at end of file
+++ /dev/null
-enum Color { RED, GREEN, AMBER }
-
-@interface TrafficLight {
- Color value() default Color.RED;
-}
-
-public class Parsing {
- public static void main(String[] args) {
-
- }
-}
-
-class Marked {
-
- public void a() {}
-
- @TrafficLight
- public void b() {}
-
- @TrafficLight(Color.RED)
- public void c() {}
-
- @TrafficLight(Color.GREEN)
- public void d() {}
-}
-
-aspect X {
- pointcut p1(): execution(@TrafficLight(Color.GREEN) * *(..));
- pointcut p2(): execution(@TrafficLight(a=Color.GREEN) * *(..));
- pointcut p3(): execution(@TrafficLight(a=Color.RED,c=Color.RED) * *(..));
- pointcut p4(): execution(@TrafficLight(a=Color.RED,c=Color.RED,e=Color.RED) * *(..));
-}
\ No newline at end of file
+++ /dev/null
-enum Color { RED, GREEN, AMBER }
-
-@interface TrafficLight {
- Color value() default Color.RED;
-}
-
-public class Simple {
- public static void main(String[] args) {
-
- }
-}
-
-class Marked {
-
- public void a() {}
-
- @TrafficLight
- public void b() {}
-
- @TrafficLight(Color.RED)
- public void c() {}
-
- @TrafficLight(Color.GREEN)
- public void d() {}
-}
-
-aspect X {
- before(): execution(@TrafficLight(Color.RED) * *(..)) {}
-}
\ No newline at end of file
+++ /dev/null
-package p;
-
-public @interface TrafficLight {
- Color value() default Color.RED;
-}
\ No newline at end of file