/*
* Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.test.synth.sql;
import java.util.ArrayList;
import org.h2.util.New;
/**
* Represents a connection to a simulated database.
*/
public class DbState implements DbInterface {
private boolean connected;
private boolean autoCommit;
private TestSynth config;
private ArrayList<Table> tables = New.arrayList();
private ArrayList<Index> indexes = New.arrayList();
DbState(TestSynth config) {
this.config = config;
}
public void reset() {
tables = New.arrayList();
indexes = New.arrayList();
}
public void connect() {
connected = true;
}
public void disconnect() {
connected = false;
}
public void createTable(Table table) {
tables.add(table);
}
public void dropTable(Table table) {
tables.remove(table);
}
public void createIndex(Index index) {
indexes.add(index);
}
public void dropIndex(Index index) {
indexes.remove(index);
}
public Result insert(Table table, Column[] c, Value[] v) {
return null;
}
public Result select(String sql) {
return null;
}
public Result delete(Table table, String condition) {
return null;
}
public Result update(Table table, Column[] columns, Value[] values, String condition) {
return null;
}
public void setAutoCommit(boolean b) {
autoCommit = b;
}
public void commit() {
// nothing to do
}
public void rollback() {
// nothing to do
}
/**
* Get a random table.
*
* @return the table
*/
Table randomTable() {
if (tables.size() == 0) {
return null;
}
int i = config.random().getInt(tables.size());
return tables.get(i);
}
public void end() {
// nothing to do
}
public String toString() {
return "autocommit: " + autoCommit + " connected: " + connected;
}
}