/* * Copyright 2006-2012 Amazon Technologies, Inc. or its affiliates. * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks * of Amazon Technologies, Inc. or its affiliates. All rights reserved. * * 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 com.amazon.carbonado.repo.jdbc; import java.sql.*; import org.apache.commons.logging.Log; /** * Statement returned by LoggingConnection; * * @author Brian S O'Neill */ class LoggingStatement implements Statement { private final Connection mCon; protected final Log mLog; protected final Statement mStatement; LoggingStatement(Log log, Connection con, Statement statement) { mLog = log; mCon = con; mStatement = statement; } public ResultSet executeQuery(String sql) throws SQLException { mLog.debug(sql); return mStatement.executeQuery(sql); } public int executeUpdate(String sql) throws SQLException { mLog.debug(sql); return mStatement.executeUpdate(sql); } public boolean execute(String sql) throws SQLException { mLog.debug(sql); return mStatement.execute(sql); } public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { mLog.debug(sql); return mStatement.executeUpdate(sql, autoGeneratedKeys); } public int executeUpdate(String sql, int columnIndexes[]) throws SQLException { mLog.debug(sql); return mStatement.executeUpdate(sql, columnIndexes); } public int executeUpdate(String sql, String columnNames[]) throws SQLException { mLog.debug(sql); return mStatement.executeUpdate(sql, columnNames); } public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { mLog.debug(sql); return mStatement.execute(sql, autoGeneratedKeys); } public boolean execute(String sql, int columnIndexes[]) throws SQLException { mLog.debug(sql); return mStatement.execute(sql, columnIndexes); } public boolean execute(String sql, String columnNames[]) throws SQLException { mLog.debug(sql); return mStatement.execute(sql, columnNames); } public void addBatch(String sql) throws SQLException { // TODO: save locally mStatement.addBatch(sql); } public void clearBatch() throws SQLException { // TODO: clear locally mStatement.clearBatch(); } public int[] executeBatch() throws SQLException { // TODO: log locally recorded batch return mStatement.executeBatch(); } public void close() throws SQLException { mStatement.close(); } public int getMaxFieldSize() throws SQLException { return mStatement.getMaxFieldSize(); } public void setMaxFieldSize(int max) throws SQLException { mStatement.setMaxFieldSize(max); } public int getMaxRows() throws SQLException { return mStatement.getMaxRows(); } public void setMaxRows(int max) throws SQLException { mStatement.setMaxRows(max); } public void setEscapeProcessing(boolean enable) throws SQLException { mStatement.setEscapeProcessing(enable); } public int getQueryTimeout() throws SQLException { return mStatement.getQueryTimeout(); } public void setQueryTimeout(int seconds) throws SQLException { mStatement.setQueryTimeout(seconds); } public void cancel() throws SQLException { mStatement.cancel(); } public SQLWarning getWarnings() throws SQLException { return mStatement.getWarnings(); } public void clearWarnings() throws SQLException { mStatement.clearWarnings(); } public void setCursorName(String name) throws SQLException { mStatement.setCursorName(name); } public ResultSet getResultSet() throws SQLException { return mStatement.getResultSet(); } public int getUpdateCount() throws SQLException { return mStatement.getUpdateCount(); } public boolean getMoreResults() throws SQLException { return mStatement.getMoreResults(); } public void setFetchDirection(int direction) throws SQLException { mStatement.setFetchDirection(direction); } public int getFetchDirection() throws SQLException { return mStatement.getFetchDirection(); } public void setFetchSize(int rows) throws SQLException { mStatement.setFetchSize(rows); } public int getFetchSize() throws SQLException { return mStatement.getFetchSize(); } public int getResultSetConcurrency() throws SQLException { return mStatement.getResultSetConcurrency(); } public int getResultSetType() throws SQLException { return mStatement.getResultSetType(); } public Connection getConnection() { return mCon; } public boolean getMoreResults(int current) throws SQLException { return mStatement.getMoreResults(current); } public ResultSet getGeneratedKeys() throws SQLException { return mStatement.getGeneratedKeys(); } public int getResultSetHoldability() throws SQLException { return mStatement.getResultSetHoldability(); } /** * @since 1.2 */ public boolean isClosed() throws SQLException { return mStatement.isClosed(); } /** * @since 1.2 */ public void setPoolable(boolean poolable) throws SQLException { mStatement.setPoolable(poolable); } /** * @since 1.2 */ public boolean isPoolable() throws SQLException { return mStatement.isPoolable(); } /** * @since 1.2 */ public T unwrap(Class iface) throws SQLException { throw new UnsupportedOperationException(); } /** * @since 1.2 */ public boolean isWrapperFor(Class iface) throws SQLException { throw new UnsupportedOperationException(); } public void closeOnCompletion() throws SQLException { mStatement.closeOnCompletion(); } public boolean isCloseOnCompletion() throws SQLException { return mStatement.isCloseOnCompletion(); } }