/*
* Copyright ( c ) 2005 , 2020 , Oracle and / or its affiliates . All rights reserved .
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
*
* This code is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License version 2 only , as
* published by the Free Software Foundation . Oracle designates this
* particular file as subject to the " Classpath " exception as provided
* by Oracle in the LICENSE file that accompanied this code .
*
* This code is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License
* version 2 for more details ( a copy is included in the LICENSE file that
* accompanied this code ) .
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work ; if not , write to the Free Software Foundation ,
* Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA .
*
* Please contact Oracle , 500 Oracle Parkway , Redwood Shores , CA 94065 USA
* or visit www . oracle . com if you need additional information or have any
* questions .
*/
package java.sql;
/**
* Interface for JDBC classes which provide the ability to retrieve the delegate instance when the instance
* in question is in fact a proxy class .
* < p >
* 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 interface describes a standard mechanism to access
* these wrapped resources
* represented by their proxy , to permit direct access to the resource delegates .
*
* @ since 1 . 6
*/
public interface Wrapper {
/**
* Returns an object that implements the given interface to allow access to
* non - standard methods , or standard methods not exposed by the proxy .
*
* 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
* the result of calling { @ code unwrap } recursively on the wrapped object
* or a proxy for that result . If the receiver is not a
* wrapper and does not implement the interface , then an { @ code SQLException } is thrown .
*
* @ param < T > the type of the class modeled by this Class object
* @ param iface A Class defining an interface that the result must implement .
* @ return an object that implements the interface . May be a proxy for the actual implementing object .
* @ throws java . sql . SQLException If no object found that implements the interface
* @ since 1 . 6
*/
<T> T unwrap(java.lang.Class <T> iface) throws java.sql.SQLException;
/**
* 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 calling { @ code isWrapperFor } on 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 to { @ code unwrap } so that
* callers can use this method to avoid expensive { @ code unwrap } calls that may fail . If this method
* returns true then calling { @ code unwrap } with the same argument should succeed .
*
* @ param iface a Class defining an interface .
* @ return true if this implements the interface or directly or indirectly wraps an object that does .
* @ throws java . sql . SQLException if an error occurs while determining whether this is a wrapper
* for an object with the given interface .
* @ since 1 . 6
*/
boolean isWrapperFor(java.lang.Class <?> iface) throws java.sql.SQLException;
}
Messung V0.5 in Prozent C=96 H=50 G=76
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland