Package nl.cwi.monetdb.jdbc
Class MonetWrapper
java.lang.Object
nl.cwi.monetdb.jdbc.MonetWrapper
- All Implemented Interfaces:
Wrapper
- Direct Known Subclasses:
MonetConnection,MonetDatabaseMetaData,MonetDataSource,MonetResultSet,MonetStatement
public class MonetWrapper extends Object implements Wrapper
A Wrapper class which provide the ability to retrieve the delegate instance
when the instance in question is in fact a proxy class.
The wrapper pattern is employed by many JDBC driver implementations to provide
extensions beyond the traditional JDBC API that are specific to a data source.
Developers may wish to gain access to these resources that are wrapped (the delegates)
as proxy class instances representing the the actual resources.
This class contains a standard mechanism to access these wrapped resources
represented by their proxy, to permit direct access to the resource delegates.
- Version:
- 1.1
- Author:
- Fabian Groffen, Martin van Dinther
-
Constructor Summary
Constructors Constructor Description MonetWrapper() -
Method Summary
Modifier and Type Method Description booleanisWrapperFor(Class<?> iface)Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.<T> Tunwrap(Class<T> iface)Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.
-
Constructor Details
-
MonetWrapper
public MonetWrapper()
-
-
Method Details
-
isWrapperFor
Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively callingisWrapperForon the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared tounwrapso that callers can use this method to avoid expensiveunwrapcalls that may fail. If this method returns true then callingunwrapwith the same argument should succeed.- Specified by:
isWrapperForin interfaceWrapper- Parameters:
iface- a Class defining an interface.- Returns:
- true if this implements the interface or directly or indirectly wraps an object that does.
- Throws:
SQLException- if an error occurs while determining whether this is a wrapper for an object with the given interface.- Since:
- 1.6
-
unwrap
Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. The result may be either the object found to implement the interface or a proxy for that object. If the receiver implements the interface then the result is the receiver or a proxy for the receiver. If the receiver is a wrapper and the wrapped object implements the interface then the result is the wrapped object or a proxy for the wrapped object. Otherwise return the result of callingunwraprecursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the interface, then anSQLExceptionis thrown.- Specified by:
unwrapin interfaceWrapper- Parameters:
iface- A Class defining an interface that the result must implement.- Returns:
- an object that implements the interface. May be a proxy for the actual implementing object.
- Throws:
SQLException- If no object found that implements the interface- Since:
- 1.6
-