aboutsummaryrefslogtreecommitdiffstats
path: root/tests/new/arndAdvRet
diff options
context:
space:
mode:
authorwisberg <wisberg>2002-12-16 18:51:06 +0000
committerwisberg <wisberg>2002-12-16 18:51:06 +0000
commit144143c2970a1e874d74cdbd0f8c622d4282a3c3 (patch)
treeb12383d3d9e76c7e1f25f7fbec83051ef17f81fb /tests/new/arndAdvRet
parentfafae443719b26159ab2d7dac1c9b46b5e00b671 (diff)
downloadaspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz
aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip
initial version
Diffstat (limited to 'tests/new/arndAdvRet')
-rw-r--r--tests/new/arndAdvRet/Driver.java48
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));
+ }
+}