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/StaticCalls.java | |
parent | fafae443719b26159ab2d7dac1c9b46b5e00b671 (diff) | |
download | aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.tar.gz aspectj-144143c2970a1e874d74cdbd0f8c622d4282a3c3.zip |
initial version
Diffstat (limited to 'tests/new/StaticCalls.java')
-rw-r--r-- | tests/new/StaticCalls.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/new/StaticCalls.java b/tests/new/StaticCalls.java new file mode 100644 index 000000000..ca6c9a866 --- /dev/null +++ b/tests/new/StaticCalls.java @@ -0,0 +1,54 @@ +import org.aspectj.testing.Tester; + +public class StaticCalls { + public static void main(String args[]) { test(); } + + Object server = null; + + void run() { + Tester.checkEqual(StaticCalls.lookup("TimeService0"), + "TimeService0", + "untouched"); + Tester.checkEqual(StaticCalls.lookup("InterceptThis"), + "FromAround", + "touched"); + Tester.checkEqual(this.lookup("InterceptThis"), + "FromAround", + "this and touched"); + Tester.checkEqual(lookup("InterceptThis"), + "FromAround", + "lexical and touched"); + } + + public static void test() { + new StaticCalls().run(); + + Class c = Class.forName("java.lang.Foo"); + Tester.check(c == null, "intercepted exception and returned null"); + } + + static String lookup(String s){ + return s; + } +} + +aspect Aspect { + Object around(String s): + within(StaticCalls) && call(String StaticCalls.lookup(String)) && args(s) + { + if (s.equals("InterceptThis")) return "FromAround"; + else return proceed(s); + } + + pointcut classForName(): call(Class Class.forName(String)); + + declare soft: ClassNotFoundException: classForName(); + + Class around(): classForName() { + try { + return proceed(); + } catch (ClassNotFoundException e) { + return null; + } + } +} |