12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import org.aspectj.testing.*;
-
- public class IntroOnIntro {
- public static void main(String[] args) {
- Class1 c1 = new Class1();
-
- try {
- c1.getName();
- } catch (NoSuchMethodError nsme) {
- Tester.check(false, "getName was not found in Class1");
- }
-
- try {
- c1.m = "potato";
- } catch (NoSuchFieldError nsfe) {
- Tester.check(false, "m was not introduced into Class1");
- }
- }
- }
-
- class Class1 {
- String name = ""; //public String getName() { return name; }
- }
-
- aspect Aspect1 /**of eachobject (instanceof(Class1))*/ {
- public String Class1.getName() { return this.name; }
-
- void f() {}
- before(): call(* getName(..)) && this(Class1) {
- f();
- }
- }
-
- aspect AComposer /**of eachobject(instanceof(Class1 || Aspect1))*/ {
- interface HasManager {}
- private String HasManager.my_manager;
- String HasManager.m;
- public void HasManager.setManager(String manager) {
- this.my_manager = manager;
- }
- declare parents: Class1 || Aspect1 implements HasManager;
-
- before(Aspect1 a1): call(void f()) && this(a1) {
-
- try {
- a1.setManager("potato");
- } catch (NoSuchMethodError nsme) {
- Tester.check(false, "getName not found in Aspect1");
- }
-
- try {
- a1.m = "potato";
- } catch (NoSuchFieldError nsfe) {
- Tester.check(false, "m was not introduced into Class1");
- }
- }
- }
-
-
-
|