
bitronix.tm.resource.jdbc.proxy.CallableStatementJavaProxy Maven / Gradle / Ivy
The newest version!
/*
* Copyright (C) 2006-2013 Bitronix Software (http://www.bitronix.be)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package bitronix.tm.resource.jdbc.proxy;
import bitronix.tm.resource.jdbc.JdbcPooledConnection;
import java.lang.reflect.Method;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
/**
* @author Brett Wooldridge
*/
public class CallableStatementJavaProxy extends JavaProxyBase {
private final static Map selfMethodMap = createMethodMap(CallableStatementJavaProxy.class);
private JdbcPooledConnection jdbcPooledConnection;
public CallableStatementJavaProxy() {
// Default constructor
}
public CallableStatementJavaProxy(JdbcPooledConnection jdbcPooledConnection, CallableStatement statement) {
initialize(jdbcPooledConnection, statement);
}
void initialize(JdbcPooledConnection jdbcPooledConnection, CallableStatement statement) {
this.proxy = this;
this.jdbcPooledConnection = jdbcPooledConnection;
this.delegate = statement;
}
/* Overridden methods of java.sql.CallableStatement */
public void close() throws SQLException {
if (delegate == null) {
return;
}
jdbcPooledConnection.unregisterUncachedStatement(delegate);
delegate.close();
}
public ResultSet executeQuery() throws SQLException {
return JdbcProxyFactory.INSTANCE.getProxyResultSet(this.getProxy(), delegate.executeQuery());
}
public ResultSet executeQuery(String sql) throws SQLException {
return JdbcProxyFactory.INSTANCE.getProxyResultSet(this.getProxy(), delegate.executeQuery(sql));
}
public ResultSet getGeneratedKeys() throws SQLException {
return JdbcProxyFactory.INSTANCE.getProxyResultSet(this.getProxy(), delegate.getGeneratedKeys());
}
/* java.sql.Wrapper implementation */
public boolean isWrapperFor(Class> iface) throws SQLException {
return iface.isAssignableFrom(delegate.getClass()) || isWrapperFor(delegate, iface);
}
@SuppressWarnings("unchecked")
public T unwrap(Class iface) throws SQLException {
if (iface.isAssignableFrom(delegate.getClass())) {
return (T) delegate;
}
if (isWrapperFor(iface)) {
return unwrap(delegate, iface);
}
throw new SQLException(getClass().getName() + " is not a wrapper for " + iface);
}
@Override
protected Map getMethodMap() {
return selfMethodMap;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy