Package org.apache.calcite.util
Class DelegatingInvocationHandler
- java.lang.Object
-
- org.apache.calcite.util.DelegatingInvocationHandler
-
- All Implemented Interfaces:
java.lang.reflect.InvocationHandler
public abstract class DelegatingInvocationHandler extends java.lang.Object implements java.lang.reflect.InvocationHandler
A class derived fromDelegatingInvocationHandler
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(); } });
-
-
Constructor Summary
Constructors Constructor Description DelegatingInvocationHandler()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract java.lang.Object
getTarget()
Returns the object to forward method calls to, should the derived class not implement the method.java.lang.Object
invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
-
-
-
Method Detail
-
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 interfacejava.lang.reflect.InvocationHandler
- Throws:
java.lang.Throwable
-
getTarget
protected abstract java.lang.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.
-
-