aboutsummaryrefslogtreecommitdiffstats
path: root/tests/java5/annotations/declare/DecaDecpInteractions2.aj
blob: 200945972b61ae6ae244187c7ad696b4f7b99c9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.lang.annotation.*;

interface Marker {}

@Retention(RetentionPolicy.RUNTIME) @interface Color { String value();}

// Color put on a particular type, marker interface added to any types with Color annotation
// Decp specified first
public aspect DecaDecpInteractions2 {

  declare parents: @Color *  implements Marker;

  declare @type: A : @Color("red");
}

aspect X {
  before(): execution(* *(..)) && this(Marker) {
    System.err.println("Marker interface identified on "+thisJoinPoint);
  }
  before(): execution(* *(..)) && @this(Color) {
    System.err.println("Color annotation identified on "+thisJoinPoint);
  }
}