saffron.util
Class DelegatingInvocationHandler
java.lang.Object
|
+--saffron.util.DelegatingInvocationHandler
- All Implemented Interfaces:
- InvocationHandler
- public abstract class DelegatingInvocationHandler
- extends Object
- implements InvocationHandler
A class derived from DelegatingInvocationHandler
handles a
method call by looking for a method in itself with identical parameters. If
no such method is found, it forwards the call to a fallback object, which
must implement all of the interfaces which this proxy implements.
It is useful in creating a wrapper class around an interface which may
change over time.
Example:
import java.sql.Connection;
Connection connection = ...;
Connection tracingConnection = (Connection) Proxy.newProxyInstance(
null,
new Class[] {Connection.class},
new DelegatingInvocationHandler() {
protected Object getTarget() {
return connection;
}
Statement createStatement() {
System.out.println("statement created");
return connection.createStatement();
}
});
- Since:
- 21 March, 2002
- Version:
- $Id: //open/saffron/src/main/saffron/util/DelegatingInvocationHandler.java#1 $
- Author:
- jhyde
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DelegatingInvocationHandler
public DelegatingInvocationHandler()
getTarget
protected abstract Object getTarget()
- Returns the object to forward method calls to, should the derived class
not implement the method. Generally, this object will be a member of the
derived class, supplied as a parameter to its constructor.
invoke
public Object invoke(Object proxy,
Method method,
Object[] args)
throws Throwable
- Specified by:
invoke
in interface InvocationHandler
Throwable