diff options
author | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2002-12-16 18:51:06 +0000 |
commit | 144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch) | |
tree | b12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/new/arndAdvRet | |
parent | fafae443719b26159ab2d7dac1c9b46b5e00b671 (diff) | |
download | aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip |
initial version
Diffstat (limited to 'tests/new/arndAdvRet')
-rw-r--r-- | tests/new/arndAdvRet/Driver.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/new/arndAdvRet/Driver.java b/tests/new/arndAdvRet/Driver.java new file mode 100644 index 000000000..73a492e66 --- /dev/null +++ b/tests/new/arndAdvRet/Driver.java @@ -0,0 +1,48 @@ + +import org.aspectj.testing.Tester; + +// PR#140 + +public class Driver { + public static void main(String[] args) { test(); } + public static void test() { + Tester.checkEqual(new Foo().doIt(), 5, "min of 5 and 6"); + Tester.checkEqual(new Bar().doIt(), 1, "min of 5 and 2"); + } +} + +class Foo { + public static int doIt() { + return new Foo().bar(1, 2, 3); + } + + int bar(int a, int b, int c) { + return a * b * c; + } +} + +aspect FooAspect { + pointcut cut() : target(Foo) && call(int bar(int, int, int)); + int around(): cut() { + int originalResult = proceed(); + return Math.max(0, Math.min(originalResult, 5)); + } +} + +class Bar { + public static int doIt() { + return new Bar().bar(1, 2, 1); + } + + int bar(int a, int b, int c) { + return a * b * c; + } +} + +aspect BarAspect { + pointcut cut(Bar b) : target(b) && call(int bar(int, int, int)); + int around(Bar b): cut(b) { + int originalResult = proceed(b); + return Math.max(0, Math.min(originalResult, 1)); + } +} |