/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.testing.tests.failover.emulateddriver; import java.io.InputStream; import java.io.Reader; import java.math.BigDecimal; import java.sql.Array; import java.sql.Blob; import java.sql.Clob; import java.sql.Connection; import java.sql.NClob; import java.sql.ParameterMetaData; import java.sql.PreparedStatement; import java.sql.Ref; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.RowId; import java.sql.SQLException; import java.sql.SQLWarning; import java.sql.SQLXML; import java.util.Calendar; public class EmulatedStatement implements PreparedStatement { protected EmulatedConnection connection; protected String sql; public EmulatedStatement(EmulatedConnection connection) { this.connection = connection; } public EmulatedStatement(String sql, EmulatedConnection connection) { this(connection); this.sql = sql; } public void checkForError() throws SQLException{ if ((connection).isInFailureState()){ SQLException exception = new SQLException("Communication Failure occurred", "", 17004); throw exception; } } public boolean execute() throws SQLException { checkForError(); return true; } public boolean execute(String sql) throws SQLException { checkForError(); return true; } public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { checkForError(); return true; } public boolean execute(String sql, int[] columnIndexes) throws SQLException { checkForError(); return true; } public boolean execute(String sql, String[] columnNames) throws SQLException { checkForError(); return true; } public ResultSet executeQuery() throws SQLException { checkForError(); return new EmulatedResultSet(this.connection.getRows(this.sql)); } public ResultSet executeQuery(String sql) throws SQLException { checkForError(); return new EmulatedResultSet(this.connection.getRows(sql)); } public int executeUpdate() throws SQLException { checkForError(); return 1; } public int executeUpdate(String sql) throws SQLException { checkForError(); return 1; } public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { checkForError(); return 1; } public int executeUpdate(String sql, int[] columnIndexes) throws SQLException { checkForError(); return 1; } public int executeUpdate(String sql, String[] columnNames) throws SQLException { checkForError(); return 1; } public void setNull(int parameterIndex, int sqlType) { } public void setBoolean(int parameterIndex, boolean x) { } public void setByte(int parameterIndex, byte x) { } public void setShort(int parameterIndex, short x) { } public void setInt(int parameterIndex, int x) { } public void setLong(int parameterIndex, long x) { } public void setFloat(int parameterIndex, float x) { } public void setDouble(int parameterIndex, double x) { } public void setBigDecimal(int parameterIndex, BigDecimal x) { } public void setString(int parameterIndex, String x) { } public void setBytes(int parameterIndex, byte[] x) { } public void setDate(int parameterIndex, java.sql.Date x) { } public void setTime(int parameterIndex, java.sql.Time x) { } public void setTimestamp(int parameterIndex, java.sql.Timestamp x) { } public void setAsciiStream(int parameterIndex, java.io.InputStream x, int length) { } public void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length) { } public void setBinaryStream(int parameterIndex, java.io.InputStream x, int length) { } public void clearParameters() { } public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) { } public void setObject(int parameterIndex, Object x, int targetSqlType) { } public void setObject(int parameterIndex, Object x) { } public void addBatch() { } public void setCharacterStream(int parameterIndex, java.io.Reader reader, int length) { } public void setRef(int i, Ref x) { } public void setBlob(int i, Blob x) { } public void setClob(int i, Clob x) { } public void setArray(int i, Array x) { } public ResultSetMetaData getMetaData() { return null; } public void setDate(int parameterIndex, java.sql.Date x, Calendar cal) { } public void setTime(int parameterIndex, java.sql.Time x, Calendar cal) { } public void setTimestamp(int parameterIndex, java.sql.Timestamp x, Calendar cal) { } public void setNull(int paramIndex, int sqlType, String typeName) { } public void setURL(int parameterIndex, java.net.URL x) { } public ParameterMetaData getParameterMetaData() { return null; } public void close() { } public int getMaxFieldSize() { return 0; } public void setMaxFieldSize(int max) { } public int getMaxRows() { return 0; } public void setMaxRows(int max) { } public void setEscapeProcessing(boolean enable) { } public int getQueryTimeout() { return 0; } public void setQueryTimeout(int seconds) { } public void cancel() { } public SQLWarning getWarnings() { return null; } public void clearWarnings() { } public void setCursorName(String name) { } public ResultSet getResultSet() { return null; } public int getUpdateCount() { return 0; } public boolean getMoreResults() { return false; } public void setFetchDirection(int direction) { } public int getFetchDirection() { return 0; } public void setFetchSize(int rows) { } public int getFetchSize() { return 0; } public int getResultSetConcurrency() { return 0; } public int getResultSetType() { return 0; } public void addBatch(String sql) { } public void clearBatch() { } public int[] executeBatch(){ return null; } public Connection getConnection() { return connection; } public boolean getMoreResults(int current) { return false; } public ResultSet getGeneratedKeys() { return null; } public int getResultSetHoldability() { return 0; } // 236070: Methods introduced in JDK 1.6 public void setAsciiStream(int columnIndex, InputStream stream, long length) throws SQLException { } public void setAsciiStream(int columnIndex, InputStream stream) throws SQLException { } public void setAsciiStream(String columnLabel, InputStream stream, long length) throws SQLException { } public void setAsciiStream(String columnLabel, InputStream stream) throws SQLException { } public void setBlob(int columnIndex, InputStream stream, long length) throws SQLException { } public void setBlob(int columnIndex, InputStream stream) throws SQLException { } public void setBlob(String columnLabel, InputStream stream, long length) throws SQLException { } public void setBlob(String columnLabel, InputStream stream) throws SQLException { } public void setBinaryStream(int columnIndex, InputStream stream, long length) throws SQLException { } public void setBinaryStream(int columnIndex, InputStream stream) throws SQLException { } public void setBinaryStream(String columnLabel, InputStream stream, long length) throws SQLException { } public void setBinaryStream(String columnLabel, InputStream stream) throws SQLException { } public void setCharacterStream(int columnIndex, Reader reader, long length) throws SQLException { } public void setCharacterStream(int columnIndex, Reader reader) throws SQLException { } public void setCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { } public void setCharacterStream(String columnLabel, Reader reader) throws SQLException { } public void setClob(int columnIndex, Reader reader, long length) throws SQLException { } public void setClob(int columnIndex, Reader reader) throws SQLException { } public void setClob(String columnLabel, Reader reader, long length) throws SQLException { } public void setClob(String columnLabel, Reader reader) throws SQLException { } public void setNCharacterStream(int columnIndex, Reader reader, long length) throws SQLException { } public void setNCharacterStream(int columnIndex, Reader reader) throws SQLException { } public void setNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { } public void setNCharacterStream(String columnLabel, Reader reader) throws SQLException { } public void setNClob(int columnIndex, Reader reader, long length) throws SQLException { } public void setNClob(int columnIndex, Reader reader) throws SQLException { } public void setNClob(String columnLabel, Reader reader, long length) throws SQLException { } public void setNClob(String columnLabel, Reader reader) throws SQLException { } public void setNClob(int columnIndex, NClob nclob) throws SQLException { } public void setNClob(String columnLabel, NClob nclob) throws SQLException { } public void setNString(int columnIndex, String nString) throws SQLException { } public void setNString(String columnLabel, String nString) throws SQLException { } public void setSQLXML(String columnLabel, SQLXML sqlxml) throws SQLException { } public void setSQLXML(int columnIndex, SQLXML sqlxml) throws SQLException { } public void setRowId(int columnIndex, RowId rowid) throws SQLException { } public void setRowId(String columnLabel, RowId rowid) throws SQLException { } public boolean isClosed() throws SQLException { return false; } public boolean isPoolable() throws SQLException { return false; } public void setPoolable(boolean poolable) throws SQLException { } // From java.sql.Wrapper public boolean isWrapperFor(Class<?> iFace) throws SQLException{ return false; } public <T>T unwrap(Class<T> iFace) throws SQLException { return iFace.cast(this); } public boolean isCloseOnCompletion(){return false;} public void closeOnCompletion(){} }