org.apache.openejb.core.ivm
Class BaseEjbProxyHandler

java.lang.Object
  extended by org.apache.openejb.core.ivm.BaseEjbProxyHandler
All Implemented Interfaces:
java.io.Serializable, java.lang.reflect.InvocationHandler
Direct Known Subclasses:
EjbHomeProxyHandler, EjbObjectProxyHandler

public abstract class BaseEjbProxyHandler
extends java.lang.Object
implements InvocationHandler, java.io.Serializable

See Also:
Serialized Form

Field Summary
protected  java.lang.Object clientIdentity
           
 RpcContainer container
           
 java.lang.Object deploymentID
           
 boolean inProxyMap
           
protected  InterfaceType interfaceType
           
protected  boolean isInvalidReference
           
 java.lang.Object primaryKey
           
 
Constructor Summary
BaseEjbProxyHandler(DeploymentInfo deploymentInfo, java.lang.Object pk, InterfaceType interfaceType, java.util.List<java.lang.Class> interfaces)
           
 
Method Summary
protected abstract  java.lang.Object _invoke(java.lang.Object proxy, java.lang.Class interfce, java.lang.reflect.Method method, java.lang.Object[] args)
           
protected abstract  java.lang.Object _writeReplace(java.lang.Object proxy)
           
protected  void checkAuthorization(java.lang.reflect.Method method)
           
protected  java.lang.Throwable convertException(java.lang.Throwable e, java.lang.reflect.Method method, java.lang.Class interfce)
          Renamed method so it shows up with a much more understandable purpose as it will be the top element in the stacktrace
protected  java.lang.Object[] copyArgs(java.lang.Object[] objects)
           
protected
<T> T
copyObj(T object)
           
 boolean equals(java.lang.Object obj)
           
protected  java.lang.Throwable getCause(java.lang.Throwable e)
           
 DeploymentInfo getDeploymentInfo()
           
 java.util.List<java.lang.Class> getInterfaces()
           
 InvocationHandler getInvocationHandler()
           
protected  java.lang.Class<?> getInvokedInterface(java.lang.reflect.Method method)
          This method should be called to determine the corresponding business interface class to name as the invoking interface.
 java.util.Hashtable getLiveHandleRegistry()
           
 java.lang.Class getMainInterface()
           
abstract  ProxyInfo getProxyInfo()
           
 int hashCode()
           
protected  void invalidateAllHandlers(java.lang.Object key)
           
 void invalidateReference()
           
 java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
           
protected  void registerHandler(java.lang.Object key, BaseEjbProxyHandler handler)
           
 void setDeploymentInfo(DeploymentInfo deploymentInfo)
           
protected  void setDoCrossClassLoaderCopy(boolean doCrossClassLoaderCopy)
           
protected  void setDoIntraVmCopy(boolean doIntraVmCopy)
           
 void setIntraVmCopyMode(boolean on)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

deploymentID

public final java.lang.Object deploymentID

primaryKey

public final java.lang.Object primaryKey

inProxyMap

public boolean inProxyMap

container

public transient RpcContainer container

isInvalidReference

protected boolean isInvalidReference

clientIdentity

protected java.lang.Object clientIdentity

interfaceType

protected final InterfaceType interfaceType
Constructor Detail

BaseEjbProxyHandler

public BaseEjbProxyHandler(DeploymentInfo deploymentInfo,
                           java.lang.Object pk,
                           InterfaceType interfaceType,
                           java.util.List<java.lang.Class> interfaces)
Method Detail

setDoIntraVmCopy

protected void setDoIntraVmCopy(boolean doIntraVmCopy)

setDoCrossClassLoaderCopy

protected void setDoCrossClassLoaderCopy(boolean doCrossClassLoaderCopy)

getInvokedInterface

protected java.lang.Class<?> getInvokedInterface(java.lang.reflect.Method method)
This method should be called to determine the corresponding business interface class to name as the invoking interface. This method should NOT be called on non-business-interface methods the proxy has such as java.lang.Object or IntraVmProxy.

Parameters:
method -
Returns:
the business (or component) interface matching this method

getMainInterface

public java.lang.Class getMainInterface()

getInterfaces

public java.util.List<java.lang.Class> getInterfaces()

checkAuthorization

protected void checkAuthorization(java.lang.reflect.Method method)
                           throws OpenEJBException
Throws:
OpenEJBException

setIntraVmCopyMode

public void setIntraVmCopyMode(boolean on)

getInvocationHandler

public InvocationHandler getInvocationHandler()

invoke

public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.reflect.Method method,
                               java.lang.Object[] args)
                        throws java.lang.Throwable
Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Throws:
java.lang.Throwable

convertException

protected java.lang.Throwable convertException(java.lang.Throwable e,
                                               java.lang.reflect.Method method,
                                               java.lang.Class interfce)
Renamed method so it shows up with a much more understandable purpose as it will be the top element in the stacktrace

Parameters:
e -
method -
interfce -

getCause

protected java.lang.Throwable getCause(java.lang.Throwable e)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

_invoke

protected abstract java.lang.Object _invoke(java.lang.Object proxy,
                                            java.lang.Class interfce,
                                            java.lang.reflect.Method method,
                                            java.lang.Object[] args)
                                     throws java.lang.Throwable
Throws:
java.lang.Throwable

copyArgs

protected java.lang.Object[] copyArgs(java.lang.Object[] objects)
                               throws java.io.IOException,
                                      java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException

copyObj

protected <T> T copyObj(T object)
             throws java.io.IOException,
                    java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException

invalidateReference

public void invalidateReference()

invalidateAllHandlers

protected void invalidateAllHandlers(java.lang.Object key)

_writeReplace

protected abstract java.lang.Object _writeReplace(java.lang.Object proxy)
                                           throws java.io.ObjectStreamException
Throws:
java.io.ObjectStreamException

registerHandler

protected void registerHandler(java.lang.Object key,
                               BaseEjbProxyHandler handler)

getProxyInfo

public abstract ProxyInfo getProxyInfo()

getDeploymentInfo

public DeploymentInfo getDeploymentInfo()

setDeploymentInfo

public void setDeploymentInfo(DeploymentInfo deploymentInfo)

getLiveHandleRegistry

public java.util.Hashtable getLiveHandleRegistry()


Copyright © 1999-2011 The Apache OpenEJB development community. All Rights Reserved.