KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > dynaop > DynamicProxyInvocationHandler


1 package dynaop;
2
3 import java.io.Serializable JavaDoc;
4 import java.lang.reflect.InvocationHandler JavaDoc;
5 import java.lang.reflect.Method JavaDoc;
6
7 /**
8  *
9  *
10  * @author Bob Lee (crazybob@crazybob.org)
11  */

12 class DynamicProxyInvocationHandler extends ProxyInvocationHandler
13         implements InvocationHandler JavaDoc {
14
15     static long serialVersionUID = 0;
16     Object JavaDoc wrapped;
17     
18     DynamicProxyInvocationHandler(ProxyType proxyType, Object JavaDoc wrapped) {
19         super(proxyType);
20         this.wrapped = wrapped;
21     }
22     
23     /**
24      * Dynamic proxy invocation handler.
25      */

26     public Object JavaDoc invoke(Object JavaDoc proxy, Method JavaDoc method, Object JavaDoc[] arguments)
27             throws Throwable JavaDoc {
28         return invoke(proxy, this.wrapped, method, arguments);
29     }
30     
31     public boolean isClassProxy() {
32         return false;
33     }
34     
35     protected Handle createHandle() {
36         return new HandleImpl(getProxy());
37     }
38     
39     public Object JavaDoc unwrap() {
40         return this.wrapped;
41     }
42     
43     /**
44      * No special handling needed for dynamic proxies.
45      */

46     static class HandleImpl implements Handle, Serializable JavaDoc {
47         
48         Proxy proxy;
49         
50         HandleImpl(Proxy proxy) {
51             this.proxy = proxy;
52         }
53         
54         public Proxy getProxy() {
55             return this.proxy;
56         }
57     }
58 }
59
Popular Tags