01: /*
02: * Copyright 2001-2007 Geert Bevin <gbevin[remove] at uwyn dot com>
03: * Distributed under the terms of either:
04: * - the common development and distribution license (CDDL), v1.0; or
05: * - the GNU Lesser General Public License, v2.1 or later
06: * $Id: TestDbQueryManagerImpl.java 3634 2007-01-08 21:42:24Z gbevin $
07: */
08: package com.uwyn.rife.database;
09:
10: import com.uwyn.rife.database.Datasource;
11: import com.uwyn.rife.database.DbPreparedStatement;
12: import com.uwyn.rife.database.DbQueryManager;
13: import com.uwyn.rife.database.exceptions.DatabaseException;
14: import com.uwyn.rife.database.queries.CreateTable;
15: import com.uwyn.rife.database.queries.DropTable;
16: import com.uwyn.rife.database.queries.Insert;
17: import com.uwyn.rife.database.queries.Select;
18:
19: public abstract class TestDbQueryManagerImpl extends DbQueryManager {
20: private String mSetting = null;
21:
22: protected TestDbQueryManagerImpl(Datasource datasource) {
23: super (datasource);
24: }
25:
26: public void setSetting(String setting) {
27: mSetting = setting;
28: }
29:
30: public String getSetting() {
31: return mSetting;
32: }
33:
34: public abstract boolean install() throws DatabaseException;
35:
36: public abstract void store(int id, String value)
37: throws DatabaseException;
38:
39: public abstract int count() throws DatabaseException;
40:
41: public abstract boolean remove() throws DatabaseException;
42:
43: protected boolean _install(final CreateTable createStructure)
44: throws DatabaseException {
45: assert createStructure != null;
46:
47: executeUpdate(createStructure);
48:
49: return true;
50: }
51:
52: protected void _store(Insert store, final int id, final String value)
53: throws DatabaseException {
54: assert store != null;
55:
56: if (id <= 0)
57: throw new IllegalArgumentException("id must be positive");
58: if (null == value)
59: throw new IllegalArgumentException("value can't be null");
60: if (0 == value.length())
61: throw new IllegalArgumentException("value can't be empty");
62:
63: if (0 == executeUpdate(store, new DbPreparedStatementHandler() {
64: public void setParameters(DbPreparedStatement statement) {
65: statement.setInt(1, id).setString(2, value);
66: }
67: })) {
68: throw new DatabaseException("Unable to store the data '"
69: + id + "', '" + value + "'.");
70: }
71: }
72:
73: protected int _count(Select count) throws DatabaseException {
74: assert count != null;
75:
76: return executeGetFirstInt(count);
77: }
78:
79: protected boolean _remove(final DropTable removeStructure)
80: throws DatabaseException {
81: assert removeStructure != null;
82:
83: executeUpdate(removeStructure);
84:
85: return true;
86: }
87: }
|