/** * H2GIS is a library that brings spatial support to the H2 Database Engine * <http://www.h2database.com>. H2GIS is developed by CNRS * <http://www.cnrs.fr/>. * * This code is part of the H2GIS project. H2GIS is free software; * you can redistribute it and/or modify it under the terms of the GNU * Lesser General Public License as published by the Free Software Foundation; * version 3.0 of the License. * * H2GIS 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 Lesser General Public License * for more details <http://www.gnu.org/licenses/>. * * * For more information, please consult: <http://www.h2gis.org/> * or contact directly: info_at_h2gis.org */ package org.h2gis.utilities.wrapper; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLWarning; import java.sql.Statement; /** * @author Nicolas Fortin */ public class StatementWrapper implements Statement { private Statement statement; private ConnectionWrapper connection; public StatementWrapper(Statement statement, ConnectionWrapper connection) { this.statement = statement; this.connection = connection; } @Override public ResultSet executeQuery(String sql) throws SQLException { return new ResultSetWrapper(statement.executeQuery(sql),this); } @Override public int executeUpdate(String sql) throws SQLException { return statement.executeUpdate(sql); } @Override public void close() throws SQLException { statement.close(); } @Override public int getMaxFieldSize() throws SQLException { return statement.getMaxFieldSize(); } @Override public void setMaxFieldSize(int max) throws SQLException { statement.setMaxFieldSize(max); } @Override public int getMaxRows() throws SQLException { return statement.getMaxRows(); } @Override public void setMaxRows(int max) throws SQLException { statement.setMaxRows(max); } @Override public void setEscapeProcessing(boolean enable) throws SQLException { statement.setEscapeProcessing(enable); } @Override public int getQueryTimeout() throws SQLException { return statement.getQueryTimeout(); } @Override public void setQueryTimeout(int seconds) throws SQLException { statement.setQueryTimeout(seconds); } @Override public void cancel() throws SQLException { statement.cancel(); } @Override public SQLWarning getWarnings() throws SQLException { return statement.getWarnings(); } @Override public void clearWarnings() throws SQLException { statement.clearWarnings(); } @Override public void setCursorName(String name) throws SQLException { statement.setCursorName(name); } @Override public boolean execute(String sql) throws SQLException { return statement.execute(sql); } @Override public ResultSet getResultSet() throws SQLException { return new ResultSetWrapper(statement.getResultSet(),this); } @Override public int getUpdateCount() throws SQLException { return statement.getUpdateCount(); } @Override public boolean getMoreResults() throws SQLException { return statement.getMoreResults(); } @Override public void setFetchDirection(int direction) throws SQLException { statement.setFetchDirection(direction); } @Override public int getFetchDirection() throws SQLException { return statement.getFetchDirection(); } @Override public void setFetchSize(int rows) throws SQLException { statement.setFetchSize(rows); } @Override public int getFetchSize() throws SQLException { return statement.getFetchSize(); } @Override public int getResultSetConcurrency() throws SQLException { return statement.getResultSetConcurrency(); } @Override public int getResultSetType() throws SQLException { return statement.getResultSetType(); } @Override public void addBatch(String sql) throws SQLException { statement.addBatch(sql); } @Override public void clearBatch() throws SQLException { statement.clearBatch(); } @Override public int[] executeBatch() throws SQLException { return statement.executeBatch(); } @Override public Connection getConnection() throws SQLException { return connection; } @Override public boolean getMoreResults(int current) throws SQLException { return statement.getMoreResults(current); } @Override public ResultSet getGeneratedKeys() throws SQLException { return statement.getGeneratedKeys(); } @Override public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { return statement.executeUpdate(sql, autoGeneratedKeys); } @Override public int executeUpdate(String sql, int[] columnIndexes) throws SQLException { return statement.executeUpdate(sql, columnIndexes); } @Override public int executeUpdate(String sql, String[] columnNames) throws SQLException { return statement.executeUpdate(sql, columnNames); } @Override public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { return statement.execute(sql, autoGeneratedKeys); } @Override public boolean execute(String sql, int[] columnIndexes) throws SQLException { return statement.execute(sql, columnIndexes); } @Override public boolean execute(String sql, String[] columnNames) throws SQLException { return statement.execute(sql, columnNames); } @Override public int getResultSetHoldability() throws SQLException { return statement.getResultSetHoldability(); } @Override public boolean isClosed() throws SQLException { return statement.isClosed(); } @Override public void setPoolable(boolean poolable) throws SQLException { statement.setPoolable(poolable); } @Override public boolean isPoolable() throws SQLException { return statement.isPoolable(); } // @Override -- Commented out for Java 6 compatibility. public void closeOnCompletion() throws SQLException { throw new UnsupportedOperationException("This Java 7 method is not yet supported."); } // @Override -- Commented out for Java 6 compatibility. public boolean isCloseOnCompletion() throws SQLException { throw new UnsupportedOperationException("This Java 7 method is not yet supported."); } @Override public <T> T unwrap(Class<T> iface) throws SQLException { return statement.unwrap(iface); } @Override public boolean isWrapperFor(Class<?> iface) throws SQLException { return statement.isWrapperFor(iface); } }