Browse Source

parameter value matching: testcode

tags/V1_6_0M2
aclement 16 years ago
parent
commit
62871f3aee

+ 29
- 0
tests/features160/parameterValueMatching/Broken1.java View File

@@ -0,0 +1,29 @@
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'
}

+ 3
- 0
tests/features160/parameterValueMatching/Color.java View File

@@ -0,0 +1,3 @@
package p;

public enum Color { RED, GREEN, AMBER }

+ 14
- 0
tests/features160/parameterValueMatching/EnumTest1.java View File

@@ -0,0 +1,14 @@
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.*
}

+ 14
- 0
tests/features160/parameterValueMatching/EnumTest2.java View File

@@ -0,0 +1,14 @@
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
}

+ 14
- 0
tests/features160/parameterValueMatching/EnumTest3.java View File

@@ -0,0 +1,14 @@
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
}

+ 3
- 0
tests/features160/parameterValueMatching/Fruit.java View File

@@ -0,0 +1,3 @@
package q.r;

public enum Fruit { APPLE, ORANGE, BANANA }

+ 5
- 0
tests/features160/parameterValueMatching/Fruity.java View File

@@ -0,0 +1,5 @@
package q.r;

public @interface Fruity {
Fruit value() default Fruit.BANANA;
}

+ 32
- 0
tests/features160/parameterValueMatching/Parsing.java View File

@@ -0,0 +1,32 @@
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) * *(..));
}

+ 29
- 0
tests/features160/parameterValueMatching/Simple.java View File

@@ -0,0 +1,29 @@
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) * *(..)) {}
}

+ 5
- 0
tests/features160/parameterValueMatching/TrafficLight.java View File

@@ -0,0 +1,5 @@
package p;

public @interface TrafficLight {
Color value() default Color.RED;
}

Loading…
Cancel
Save