| /* |
| * Copyright (c) 1998, 2021 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 v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Oracle - initial API and implementation from Oracle TopLink |
| package org.eclipse.persistence.testing.tests.junit.failover.emulateddriver; |
| |
| import java.sql.Array; |
| import java.sql.Blob; |
| import java.sql.CallableStatement; |
| import java.sql.Clob; |
| import java.sql.Connection; |
| import java.sql.DatabaseMetaData; |
| import java.sql.NClob; |
| import java.sql.PreparedStatement; |
| import java.sql.SQLException; |
| import java.sql.SQLWarning; |
| import java.sql.SQLXML; |
| import java.sql.Savepoint; |
| import java.sql.Statement; |
| import java.sql.Struct; |
| import java.util.Properties; |
| import java.util.Vector; |
| import java.util.concurrent.Executor; |
| |
| public class EmulatedConnection implements Connection { |
| protected EmulatedDriver driver; |
| |
| protected boolean inFailureState = false; |
| |
| public void causeCommError() { |
| this.inFailureState = true; |
| } |
| |
| public boolean isInFailureState() { |
| return this.inFailureState; |
| } |
| |
| public EmulatedConnection(EmulatedDriver driver) { |
| this.driver = driver; |
| } |
| |
| @Override |
| public Statement createStatement() { |
| return new EmulatedStatement(this); |
| } |
| |
| @Override |
| public Statement createStatement(int resultSetType, int resultSetConcurrency) { |
| return new EmulatedStatement(this); |
| } |
| |
| @Override |
| public PreparedStatement prepareStatement(String sql) { |
| return new EmulatedStatement(sql, this); |
| } |
| |
| @Override |
| public Statement createStatement(int resultSetType, |
| int resultSetConcurrency, int resultSetHoldability) { |
| return new EmulatedStatement(this); |
| } |
| |
| @Override |
| public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) { |
| return new EmulatedStatement(sql, this); |
| } |
| |
| @Override |
| public PreparedStatement prepareStatement(String sql, int resultSetType, |
| int resultSetConcurrency) { |
| return new EmulatedStatement(sql, this); |
| } |
| |
| @Override |
| public PreparedStatement prepareStatement(String sql, int resultSetType, |
| int resultSetConcurrency, int resultSetHoldability) { |
| return new EmulatedStatement(sql, this); |
| } |
| |
| @Override |
| public PreparedStatement prepareStatement(String sql, int[] columnIndexes) { |
| return new EmulatedStatement(sql, this); |
| } |
| |
| @Override |
| public PreparedStatement prepareStatement(String sql, String[] columnNames) { |
| return new EmulatedStatement(sql, this); |
| } |
| |
| /** |
| * Return the rows for the sql. |
| */ |
| public Vector getRows(String sql) { |
| Vector rows = (Vector) this.driver.getRows().get(sql); |
| if (rows == null) { |
| rows = new Vector(0); |
| } |
| return rows; |
| } |
| |
| /** |
| * Return the rows for the sql. |
| */ |
| public void putRows(String sql, Vector rows) { |
| this.driver.getRows().put(sql, rows); |
| } |
| |
| @Override |
| public CallableStatement prepareCall(String sql) { |
| return null; |
| } |
| |
| @Override |
| public String nativeSQL(String sql) { |
| return sql; |
| } |
| |
| @Override |
| public void setAutoCommit(boolean autoCommit) { |
| } |
| |
| @Override |
| public boolean getAutoCommit() { |
| return false; |
| } |
| |
| @Override |
| public void commit() { |
| } |
| |
| @Override |
| public void rollback() { |
| } |
| |
| @Override |
| public void close() { |
| } |
| |
| @Override |
| public boolean isClosed() { |
| return false; |
| } |
| |
| @Override |
| public DatabaseMetaData getMetaData() { |
| return null; |
| } |
| |
| @Override |
| public void setReadOnly(boolean readOnly) { |
| } |
| |
| @Override |
| public boolean isReadOnly() { |
| return false; |
| } |
| |
| @Override |
| public void setCatalog(String catalog) { |
| } |
| |
| @Override |
| public String getCatalog() { |
| return null; |
| } |
| |
| @Override |
| public void setTransactionIsolation(int level) { |
| } |
| |
| @Override |
| public int getTransactionIsolation() { |
| return 0; |
| } |
| |
| @Override |
| public SQLWarning getWarnings() { |
| return null; |
| } |
| |
| @Override |
| public void clearWarnings() { |
| } |
| |
| @Override |
| public CallableStatement prepareCall(String sql, int resultSetType, |
| int resultSetConcurrency) { |
| return null; |
| } |
| |
| @Override |
| public java.util.Map getTypeMap() { |
| return null; |
| } |
| |
| @Override |
| public void setTypeMap(java.util.Map map) { |
| } |
| |
| @Override |
| public void setHoldability(int holdability) { |
| } |
| |
| @Override |
| public int getHoldability() { |
| return 0; |
| } |
| |
| @Override |
| public Savepoint setSavepoint() { |
| return null; |
| } |
| |
| @Override |
| public Savepoint setSavepoint(String name) { |
| return null; |
| } |
| |
| @Override |
| public void rollback(Savepoint savepoint) { |
| return; |
| } |
| |
| @Override |
| public void releaseSavepoint(Savepoint savepoint) { |
| return; |
| } |
| |
| @Override |
| public CallableStatement prepareCall(String sql, int resultSetType, |
| int resultSetConcurrency, int resultSetHoldability) { |
| return null; |
| } |
| |
| // 236070: Methods introduced in JDK 1.6 |
| @Override |
| public Array createArrayOf(String typeName, Object[] elements) throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public Blob createBlob() throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public Clob createClob() throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public NClob createNClob() throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public SQLXML createSQLXML() throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public Struct createStruct(String typeName, Object[] attributes) throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public Properties getClientInfo() throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public String getClientInfo(String name) throws SQLException { |
| return null; |
| } |
| |
| @Override |
| public boolean isValid(int timeout) throws SQLException { |
| return false; |
| } |
| |
| @Override |
| public void setClientInfo(String name, String value) { |
| } |
| |
| @Override |
| public void setClientInfo(Properties properties) { |
| } |
| |
| // From java.sql.Wrapper |
| |
| @Override |
| public boolean isWrapperFor(Class<?> iFace) throws SQLException { |
| return false; |
| } |
| |
| @Override |
| public <T> T unwrap(Class<T> iFace) throws SQLException { |
| return iFace.cast(this); |
| } |
| |
| @Override |
| public int getNetworkTimeout(){return 0;} |
| |
| @Override |
| public void setNetworkTimeout(Executor executor, int milliseconds){} |
| |
| @Override |
| public void abort(Executor executor){} |
| |
| @Override |
| public String getSchema(){return null;} |
| |
| @Override |
| public void setSchema(String schema){} |
| } |