KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openejb > client > proxy > ProxyFactory


1 /**
2  * Redistribution and use of this software and associated documentation
3  * ("Software"), with or without modification, are permitted provided
4  * that the following conditions are met:
5  *
6  * 1. Redistributions of source code must retain copyright
7  * statements and notices. Redistributions must also contain a
8  * copy of this document.
9  *
10  * 2. Redistributions in binary form must reproduce the
11  * above copyright notice, this list of conditions and the
12  * following disclaimer in the documentation and/or other
13  * materials provided with the distribution.
14  *
15  * 3. The name "OpenEJB" must not be used to endorse or promote
16  * products derived from this Software without prior written
17  * permission of The OpenEJB Group. For written permission,
18  * please contact dev@openejb.org.
19  *
20  * 4. Products derived from this Software may not be called "OpenEJB"
21  * nor may "OpenEJB" appear in their names without prior written
22  * permission of The OpenEJB Group. OpenEJB is a registered
23  * trademark of The OpenEJB Group.
24  *
25  * 5. Due credit should be given to the OpenEJB Project
26  * (http://www.openejb.org/).
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
29  * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32  * THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39  * OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Copyright 2001 (C) The OpenEJB Group. All Rights Reserved.
42  *
43  * $Id: ProxyFactory.java 1921 2005-06-19 22:40:34Z jlaskowski $
44  */

45 package org.openejb.client.proxy;
46  
47 import java.util.Properties JavaDoc;
48
49 /**
50  * Allows us to implement different versions of Proxies
51  *
52  * @author <a HREF="mailto:david.blevins@visi.com">David Blevins</a>
53  * @since 11/25/2001
54  */

55 public interface ProxyFactory {
56
57     /**
58      * Prepares the ProxyFactory for use. Called once right after
59      * the ProxyFactory is instantiated.
60      *
61      * @param props
62      */

63     public void init(Properties JavaDoc props) ;
64
65     /**
66      * Returns the invocation handler for the specified proxy instance.
67      */

68     public InvocationHandler getInvocationHandler(Object JavaDoc proxy) throws IllegalArgumentException JavaDoc;
69
70     /**
71      * Sets the invocation handler for the specified proxy instance.
72      */

73     public Object JavaDoc setInvocationHandler(Object JavaDoc proxy, InvocationHandler handler) throws IllegalArgumentException JavaDoc;
74
75     /**
76      * Returns the java.lang.Class object for a proxy class given a class loader
77      * and an array of interfaces.
78      *
79      * @param interfce
80      * @return Class
81      * @exception IllegalArgumentException
82      */

83     public Class JavaDoc getProxyClass(Class JavaDoc interfce) throws IllegalArgumentException JavaDoc;
84
85     /**
86      * Returns the java.lang.Class object for a proxy class given a class loader
87      * and an array of interfaces.
88      *
89      * @param interfaces
90      * @return Class
91      * @exception IllegalArgumentException
92      */

93     public Class JavaDoc getProxyClass(Class JavaDoc[] interfaces) throws IllegalArgumentException JavaDoc;
94
95     /**
96      * Returns true if and only if the specified class was dynamically generated
97      * to be a proxy class using the getProxyClass method or the newProxyInstance
98      * method.
99      *
100      * @param cl
101      * @return boolean
102      */

103     public boolean isProxyClass(Class JavaDoc cl);
104
105     /**
106      * Returns an instance of a proxy class for the specified interface that
107      * dispatches method invocations to the specified invocation handler.
108      *
109      * @param interfce
110      * @param h
111      * @return Object
112      * @exception IllegalArgumentException
113      */

114     public Object JavaDoc newProxyInstance(Class JavaDoc interfce, InvocationHandler h) throws IllegalArgumentException JavaDoc;
115
116     /**
117      * Returns an instance of a proxy class for the specified interface that
118      * dispatches method invocations to the specified invocation handler.
119      *
120      * @param interfaces
121      * @param h
122      * @return Object
123      * @exception IllegalArgumentException
124      */

125     public Object JavaDoc newProxyInstance(Class JavaDoc[] interfaces, InvocationHandler h) throws IllegalArgumentException JavaDoc;
126
127     /**
128      * Returns a new proxy instance from the specified proxy class. The
129      * interface(s) implemented by the proxy instance are determined by
130      * the proxy class. The class name may or may not be meaningful,
131      * depending on the implementation.
132      *
133      * @param proxyClass
134      * @return Object
135      * @exception java.lang.IllegalArgumentException
136      * Occurs when the specified class is not a proxy class.
137      * @exception IllegalArgumentException
138      */

139     public Object JavaDoc newProxyInstance(Class JavaDoc proxyClass) throws IllegalArgumentException JavaDoc;
140 }
141
142
Popular Tags