1 package com.imcode.db.mock; 2 3 import org.apache.commons.lang.NotImplementedException; 4 import org.apache.commons.dbutils.ResultSetHandler; 5 6 import java.sql.*; 7 import java.util.Map; 8 import java.util.Calendar; 9 import java.util.SortedMap; 10 import java.util.TreeMap; 11 import java.io.InputStream; 12 import java.io.Reader; 13 import java.math.BigDecimal; 14 import java.net.URL; 15 16 import com.imcode.db.commands.SqlQueryCommand; 17 18 public class MockConnection implements Connection { 19 20 private final MockDatabase database; 21 22 public MockConnection(MockDatabase database) { 23 this.database = database; 24 } 25 26 public int getTransactionIsolation() { 27 throw new NotImplementedException( MockConnection.class ); 28 } 29 30 public void setTypeMap(Map map) { 31 throw new NotImplementedException( MockConnection.class ); 32 } 33 34 public int getHoldability() throws SQLException { 35 throw new NotImplementedException( MockConnection.class ); 36 } 37 38 public void clearWarnings() throws SQLException { 39 throw new NotImplementedException( MockConnection.class ); 40 } 41 42 public void close() throws SQLException { 43 } 44 45 public void commit() throws SQLException {} 46 47 public void rollback() throws SQLException {} 48 49 public boolean getAutoCommit() throws SQLException { 50 throw new NotImplementedException( MockConnection.class ); 51 } 52 53 public boolean isClosed() throws SQLException { 54 throw new NotImplementedException( MockConnection.class ); 55 } 56 57 public boolean isReadOnly() throws SQLException { 58 throw new NotImplementedException( MockConnection.class ); 59 } 60 61 public void setHoldability( int holdability ) throws SQLException { 62 throw new NotImplementedException( MockConnection.class ); 63 } 64 65 public void setTransactionIsolation( int level ) throws SQLException { 66 } 67 68 public void setAutoCommit( boolean autoCommit ) throws SQLException { 69 } 70 71 public void setReadOnly( boolean readOnly ) throws SQLException { 72 throw new NotImplementedException( MockConnection.class ); 73 } 74 75 public String getCatalog() throws SQLException { 76 throw new NotImplementedException( MockConnection.class ); 77 } 78 79 public void setCatalog( String catalog ) throws SQLException { 80 throw new NotImplementedException( MockConnection.class ); 81 } 82 83 public DatabaseMetaData getMetaData() throws SQLException { 84 throw new NotImplementedException( MockConnection.class ); 85 } 86 87 public SQLWarning getWarnings() throws SQLException { 88 throw new NotImplementedException( MockConnection.class ); 89 } 90 91 public Savepoint setSavepoint() throws SQLException { 92 throw new NotImplementedException( MockConnection.class ); 93 } 94 95 public void releaseSavepoint( Savepoint savepoint ) throws SQLException { 96 throw new NotImplementedException( MockConnection.class ); 97 } 98 99 public void rollback( Savepoint savepoint ) throws SQLException { 100 throw new NotImplementedException( MockConnection.class ); 101 } 102 103 public Statement createStatement() throws SQLException { 104 throw new NotImplementedException( MockConnection.class ); 105 } 106 107 public Statement createStatement( int resultSetType, int resultSetConcurrency ) 108 throws SQLException { 109 throw new NotImplementedException( MockConnection.class ); 110 } 111 112 public Statement createStatement( int resultSetType, int resultSetConcurrency, 113 int resultSetHoldability ) throws SQLException { 114 throw new NotImplementedException( MockConnection.class ); 115 } 116 117 public Map getTypeMap() throws SQLException { 118 throw new NotImplementedException( MockConnection.class ); 119 } 120 121 public String nativeSQL( String sql ) throws SQLException { 122 throw new NotImplementedException( MockConnection.class ); 123 } 124 125 public CallableStatement prepareCall( String sql ) throws SQLException { 126 throw new NotImplementedException( MockConnection.class ); 127 } 128 129 public CallableStatement prepareCall( String sql, int resultSetType, 130 int resultSetConcurrency ) throws SQLException { 131 throw new NotImplementedException( MockConnection.class ); 132 } 133 134 public CallableStatement prepareCall( String sql, int resultSetType, 135 int resultSetConcurrency, 136 int resultSetHoldability ) throws SQLException { 137 throw new NotImplementedException( MockConnection.class ); 138 } 139 140 public PreparedStatement prepareStatement( String sql ) 141 throws SQLException { 142 return new MockPreparedStatement(database, sql); 143 } 144 145 public PreparedStatement prepareStatement( String sql, int autoGeneratedKeys ) 146 throws SQLException { 147 throw new NotImplementedException( MockConnection.class ); 148 } 149 150 public PreparedStatement prepareStatement( String sql, int resultSetType, 151 int resultSetConcurrency ) 152 throws SQLException { 153 throw new NotImplementedException( MockConnection.class ); 154 } 155 156 public PreparedStatement prepareStatement( String sql, int resultSetType, 157 int resultSetConcurrency, int resultSetHoldability ) 158 throws SQLException { 159 throw new NotImplementedException( MockConnection.class ); 160 } 161 162 public PreparedStatement prepareStatement( String sql, int columnIndexes[] ) 163 throws SQLException { 164 throw new NotImplementedException( MockConnection.class ); 165 } 166 167 public Savepoint setSavepoint( String name ) throws SQLException { 168 throw new NotImplementedException( MockConnection.class ); 169 } 170 171 public PreparedStatement prepareStatement( String sql, String columnNames[] ) 172 throws SQLException { 173 throw new NotImplementedException( MockConnection.class ); 174 } 175 176 private static class MockPreparedStatement implements PreparedStatement { 177 178 private final MockDatabase database; 179 private SortedMap parameters = new TreeMap(); 180 private final String sql; 181 182 public MockPreparedStatement(MockDatabase database, String sql) { 183 this.database = database; 184 this.sql = sql; 185 } 186 187 public int executeUpdate() throws SQLException { 188 throw new NotImplementedException(".executeUpdate"); 189 } 190 191 public void addBatch() throws SQLException { 192 throw new NotImplementedException(".addBatch"); 193 } 194 195 public void clearParameters() throws SQLException { 196 throw new NotImplementedException(".clearParameters"); 197 } 198 199 public boolean execute() throws SQLException { 200 throw new NotImplementedException(".execute"); 201 } 202 203 public void setByte(int parameterIndex, byte x) throws SQLException { 204 throw new NotImplementedException(".setByte"); 205 } 206 207 public void setDouble(int parameterIndex, double x) throws SQLException { 208 throw new NotImplementedException(".setDouble"); 209 } 210 211 public void setFloat(int parameterIndex, float x) throws SQLException { 212 throw new NotImplementedException(".setFloat"); 213 } 214 215 public void setInt(int parameterIndex, int x) throws SQLException { 216 setObject(parameterIndex, new Integer(x)) ; 217 } 218 219 public void setNull(int parameterIndex, int sqlType) throws SQLException { 220 throw new NotImplementedException(".setNull"); 221 } 222 223 public void setLong(int parameterIndex, long x) throws SQLException { 224 throw new NotImplementedException(".setLong"); 225 } 226 227 public void setShort(int parameterIndex, short x) throws SQLException { 228 throw new NotImplementedException(".setShort"); 229 } 230 231 public void setBoolean(int parameterIndex, boolean x) throws SQLException { 232 throw new NotImplementedException(".setBoolean"); 233 } 234 235 public void setBytes(int parameterIndex, byte x[]) throws SQLException { 236 throw new NotImplementedException(".setBytes"); 237 } 238 239 public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { 240 throw new NotImplementedException(".setAsciiStream"); 241 } 242 243 public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { 244 throw new NotImplementedException(".setBinaryStream"); 245 } 246 247 public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { 248 throw new NotImplementedException(".setUnicodeStream"); 249 } 250 251 public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException { 252 throw new NotImplementedException(".setCharacterStream"); 253 } 254 255 public void setObject(int parameterIndex, Object x) throws SQLException { 256 parameters.put(new Integer(parameterIndex), x) ; 257 } 258 259 public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { 260 throw new NotImplementedException(".setObject"); 261 } 262 263 public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException { 264 throw new NotImplementedException(".setObject"); 265 } 266 267 public void setNull(int paramIndex, int sqlType, String typeName) throws SQLException { 268 throw new NotImplementedException(".setNull"); 269 } 270 271 public void setString(int parameterIndex, String x) throws SQLException { 272 throw new NotImplementedException(".setString"); 273 } 274 275 public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { 276 throw new NotImplementedException(".setBigDecimal"); 277 } 278 279 public void setURL(int parameterIndex, URL x) throws SQLException { 280 throw new NotImplementedException(".setURL"); 281 } 282 283 public void setArray(int i, Array x) throws SQLException { 284 throw new NotImplementedException(".setArray"); 285 } 286 287 public void setBlob(int i, Blob x) throws SQLException { 288 throw new NotImplementedException(".setBlob"); 289 } 290 291 public void setClob(int i, Clob x) throws SQLException { 292 throw new NotImplementedException(".setClob"); 293 } 294 295 public void setDate(int parameterIndex, Date x) throws SQLException { 296 throw new NotImplementedException(".setDate"); 297 } 298 299 public ParameterMetaData getParameterMetaData() throws SQLException { 300 throw new NotImplementedException(".getParameterMetaData"); 301 } 302 303 public void setRef(int i, Ref x) throws SQLException { 304 throw new NotImplementedException(".setRef"); 305 } 306 307 public ResultSet executeQuery() throws SQLException { 308 Object[] parameterArray = parameters.values().toArray(); 309 return (ResultSet) database.execute(new SqlQueryCommand(sql, parameterArray, new ResultSetHandler() { 310 public Object handle(ResultSet resultSet) { 311 return resultSet; 312 } 313 })) ; 314 } 315 316 public ResultSetMetaData getMetaData() throws SQLException { 317 throw new NotImplementedException(".getMetaData"); 318 } 319 320 public void setTime(int parameterIndex, Time x) throws SQLException { 321 throw new NotImplementedException(".setTime"); 322 } 323 324 public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { 325 throw new NotImplementedException(".setTimestamp"); 326 } 327 328 public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException { 329 throw new NotImplementedException(".setDate"); 330 } 331 332 public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException { 333 throw new NotImplementedException(".setTime"); 334 } 335 336 public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException { 337 throw new NotImplementedException(".setTimestamp"); 338 } 339 340 public int getFetchDirection() throws SQLException { 341 throw new NotImplementedException(".getFetchDirection"); 342 } 343 344 public int getFetchSize() throws SQLException { 345 throw new NotImplementedException(".getFetchSize"); 346 } 347 348 public int getMaxFieldSize() throws SQLException { 349 throw new NotImplementedException(".getMaxFieldSize"); 350 } 351 352 public int getMaxRows() throws SQLException { 353 throw new NotImplementedException(".getMaxRows"); 354 } 355 356 public int getQueryTimeout() throws SQLException { 357 throw new NotImplementedException(".getQueryTimeout"); 358 } 359 360 public int getResultSetConcurrency() throws SQLException { 361 throw new NotImplementedException(".getResultSetConcurrency"); 362 } 363 364 public int getResultSetHoldability() throws SQLException { 365 throw new NotImplementedException(".getResultSetHoldability"); 366 } 367 368 public int getResultSetType() throws SQLException { 369 throw new NotImplementedException(".getResultSetType"); 370 } 371 372 public int getUpdateCount() throws SQLException { 373 throw new NotImplementedException(".getUpdateCount"); 374 } 375 376 public void cancel() throws SQLException { 377 throw new NotImplementedException(".cancel"); 378 } 379 380 public void clearBatch() throws SQLException { 381 throw new NotImplementedException(".clearBatch"); 382 } 383 384 public void clearWarnings() throws SQLException { 385 throw new NotImplementedException(".clearWarnings"); 386 } 387 388 public void close() throws SQLException { 389 } 390 391 public boolean getMoreResults() throws SQLException { 392 throw new NotImplementedException(".getMoreResults"); 393 } 394 395 public int[] executeBatch() throws SQLException { 396 throw new NotImplementedException(".executeBatch"); 397 } 398 399 public void setFetchDirection(int direction) throws SQLException { 400 throw new NotImplementedException(".setFetchDirection"); 401 } 402 403 public void setFetchSize(int rows) throws SQLException { 404 throw new NotImplementedException(".setFetchSize"); 405 } 406 407 public void setMaxFieldSize(int max) throws SQLException { 408 throw new NotImplementedException(".setMaxFieldSize"); 409 } 410 411 public void setMaxRows(int max) throws SQLException { 412 throw new NotImplementedException(".setMaxRows"); 413 } 414 415 public void setQueryTimeout(int seconds) throws SQLException { 416 throw new NotImplementedException(".setQueryTimeout"); 417 } 418 419 public boolean getMoreResults(int current) throws SQLException { 420 throw new NotImplementedException(".getMoreResults"); 421 } 422 423 public void setEscapeProcessing(boolean enable) throws SQLException { 424 throw new NotImplementedException(".setEscapeProcessing"); 425 } 426 427 public int executeUpdate(String sql) throws SQLException { 428 throw new NotImplementedException(".executeUpdate"); 429 } 430 431 public void addBatch(String sql) throws SQLException { 432 throw new NotImplementedException(".addBatch"); 433 } 434 435 public void setCursorName(String name) throws SQLException { 436 throw new NotImplementedException(".setCursorName"); 437 } 438 439 public boolean execute(String sql) throws SQLException { 440 throw new NotImplementedException(".execute"); 441 } 442 443 public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { 444 throw new NotImplementedException(".executeUpdate"); 445 } 446 447 public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { 448 throw new NotImplementedException(".execute"); 449 } 450 451 public int executeUpdate(String sql, int columnIndexes[]) throws SQLException { 452 throw new NotImplementedException(".executeUpdate"); 453 } 454 455 public boolean execute(String sql, int columnIndexes[]) throws SQLException { 456 throw new NotImplementedException(".execute"); 457 } 458 459 public Connection getConnection() throws SQLException { 460 throw new NotImplementedException(".getConnection"); 461 } 462 463 public ResultSet getGeneratedKeys() throws SQLException { 464 throw new NotImplementedException(".getGeneratedKeys"); 465 } 466 467 public ResultSet getResultSet() throws SQLException { 468 throw new NotImplementedException(".getResultSet"); 469 } 470 471 public SQLWarning getWarnings() throws SQLException { 472 throw new NotImplementedException(".getWarnings"); 473 } 474 475 public int executeUpdate(String sql, String columnNames[]) throws SQLException { 476 throw new NotImplementedException(".executeUpdate"); 477 } 478 479 public boolean execute(String sql, String columnNames[]) throws SQLException { 480 throw new NotImplementedException(".execute"); 481 } 482 483 public ResultSet executeQuery(String sql) throws SQLException { 484 throw new NotImplementedException(".executeQuery"); 485 } 486 } 487 }