public class RemoteObjectInvocationHandler extends RemoteObject implements InvocationHandler
InvocationHandler
interface for
use with Java Remote Method Invocation (Java RMI). This invocation
handler can be used in conjunction with a dynamic proxy instance as a
replacement for a pregenerated stub class.
Applications are not expected to use this class directly. A remote
object exported to use a dynamic proxy with UnicastRemoteObject
or Activatable
has an instance of this class as that proxy's
invocation handler.
ref
Constructor and Description |
---|
RemoteObjectInvocationHandler(RemoteRef ref)
Creates a new
RemoteObjectInvocationHandler constructed
with the specified RemoteRef . |
Modifier and Type | Method and Description |
---|---|
Object |
invoke(Object proxy,
Method method,
Object[] args)
Processes a method invocation made on the encapsulating
proxy instance,
proxy , and returns the result. |
public RemoteObjectInvocationHandler(RemoteRef ref)
RemoteObjectInvocationHandler
constructed
with the specified RemoteRef
.ref
- the remote refNullPointerException
- if ref
is null
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
proxy
, and returns the result.
RemoteObjectInvocationHandler
implements this method
as follows:
If method
is one of the following methods, it
is processed as described below:
Object.hashCode
: Returns the hash
code value for the proxy.
Object.equals
: Returns true
if the argument (args[0]
) is an instance of a dynamic
proxy class and this invocation handler is equal to the invocation
handler of that argument, and returns false
otherwise.
Object.toString
: Returns a string
representation of the proxy.
Otherwise, a remote call is made as follows:
proxy
is not an instance of the interface
Remote
, then an IllegalArgumentException
is thrown.
invoke
method is invoked
on this invocation handler's RemoteRef
, passing
proxy
, method
, args
, and the
method hash (defined in section 8.3 of the "Java Remote Method
Invocation (RMI) Specification") for method
, and the
result is returned.
RemoteRef.invoke
and
that exception is a checked exception that is not assignable to any
exception in the throws
clause of the method
implemented by the proxy
's class, then that exception
is wrapped in an