diff options
Diffstat (limited to 'tests/bugs/IfPerThis/Testcase3.java')
-rw-r--r-- | tests/bugs/IfPerThis/Testcase3.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/bugs/IfPerThis/Testcase3.java b/tests/bugs/IfPerThis/Testcase3.java new file mode 100644 index 000000000..c29834338 --- /dev/null +++ b/tests/bugs/IfPerThis/Testcase3.java @@ -0,0 +1,37 @@ +// Compiler limitation, can't put if() directly in per clause +aspect Testcase3 perthis(execution(* doCommand(..)) && if(commandInterceptionEnabled)) { + + private static boolean commandInterceptionEnabled = true; + + public Testcase3() { + System.out.println("Created a PerThis aspect : " + this.toString()); + } + + before(ICommand command) : execution(* doCommand(..)) && this(command) { + System.out.println("Invoking command bean: "+ command); + } + + public static void main(String[] args) { + ICommand c1 = new Command("hello"); + ICommand c2 = new Command("hello again"); + c1.doCommand(); + c2.doCommand(); + } + +} + +interface ICommand { + void doCommand(); +} + +class Command implements ICommand { + + private String output = ""; + + public Command(String s) { this.output = s; } + + public void doCommand() { + System.out.println(output + "(" + this + ")"); + } + +}
\ No newline at end of file |