2 * Copyright (C) 2001, 2002 The Mir-coders group
4 * This file is part of Mir.
6 * Mir is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * Mir is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with Mir; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 * In addition, as a special exception, The Mir-coders gives permission to link
21 * the code of this program with any library licensed under the Apache Software License,
22 * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
23 * (or with modified versions of the above that use the same license as the above),
24 * and distribute linked combinations including the two. You must obey the
25 * GNU General Public License in all respects for all of the code used other than
26 * the above mentioned libraries. If you modify this file, you may extend this
27 * exception to your version of the file, but you are not obligated to do so.
28 * If you do not wish to do so, delete this exception statement from your version.
32 import java.sql.Connection;
33 import java.sql.ResultSet;
34 import java.sql.SQLException;
35 import java.sql.Statement;
36 import java.util.List;
39 import mir.entity.Entity;
40 import mir.entity.EntityList;
44 * Implementiert Interface f?r die Speicherschicht.
45 * Bislang gibt es in der Bibliothek nur die M?glichkeit
46 * in einer Datenbank zu speichern.
50 public interface StorageObject {
52 * Dokumentation siehe Database.java
55 * @exception StorageObjectException
57 abstract public Entity selectById(String id) throws StorageObjectExc;
60 * Dokumentation siehe Database.java
64 * @exception StorageObjectException
66 abstract public EntityList selectByFieldValue(String aField, String aValue)
67 throws StorageObjectFailure;
70 * Dokumentation siehe Database.java
73 * @exception StorageObjectException
75 abstract public EntityList selectByWhereClause(String whereClause)
76 throws StorageObjectFailure;
79 * Dokumentation siehe Database.java
83 * @exception StorageObjectException
85 abstract public EntityList selectByWhereClause(String whereClause, int offset)
86 throws StorageObjectFailure;
89 * Dokumentation siehe Database.java
94 * @exception StorageObjectException
96 abstract public EntityList selectByWhereClause(String whereClause,
97 String orderBy, int offset) throws StorageObjectFailure;
100 * Dokumentation siehe Database.java
106 * @exception StorageObjectException
108 abstract public EntityList selectByWhereClause(String whereClause,
109 String orderBy, int offset, int limit) throws StorageObjectFailure;
111 abstract public EntityList selectByWhereClause(String mainTablePrefix, List extraTables,
112 String aWhereClause, String anOrderByClause,
113 int offset, int limit) throws StorageObjectFailure;
116 * Dokumentation siehe Database.java
119 * @exception StorageObjectException
121 abstract public boolean delete(String id) throws StorageObjectFailure;
124 * Deletes entities based on a where clause
126 * @param aWhereClause
128 * @throws StorageObjectFailure
130 public int deleteByWhereClause(String aWhereClause) throws StorageObjectFailure;
133 * Dokumentation siehe Database.java
135 * @exception StorageObjectException
137 abstract public List getFields() throws StorageObjectFailure;
140 * Dokumentation siehe Database.java
142 * @exception StorageObjectException
144 abstract public int[] getTypes() throws StorageObjectFailure;
147 * Dokumentation siehe Database.java
149 * @exception StorageObjectException
151 abstract public List getLabels() throws StorageObjectFailure;
154 * Dokumentation siehe Database.java
156 * @exception StorageObjectException
158 abstract public void update(Entity a) throws StorageObjectFailure;
162 * Dokumentation siehe Database.java
165 * @exception StorageObjectException
167 abstract public String insert(Entity a) throws StorageObjectFailure;
170 * Dokumentation siehe Database.java
171 * @return Class Klasse der Entity
173 abstract public Class getEntityClass();
176 * put your documentation comment here
179 abstract public String getIdName();
182 * Dokumentation siehe Database.java
185 abstract public String getTableName();
188 * Dokumentation siehe Database.java
190 * @exception StorageObjectException
192 abstract public Connection getPooledCon() throws StorageObjectFailure;
199 * @throws StorageObjectFailure
200 * @throws SQLException
202 abstract public ResultSet executeSql(Statement a, String sql) throws StorageObjectFailure, SQLException;
205 * Executes 1 sql statement and returns the results as a <code>List</code> of <code>Map</code>s
209 * @throws StorageObjectFailure
210 * @throws StorageObjectExc
212 abstract public List executeFreeSql(String sql, int aLimit) throws StorageObjectFailure, StorageObjectExc;
215 * Executes 1 sql statement and returns the first result row as a <<code>Map</code>s
216 * (<code>null</code> if there wasn't any row)
220 * @throws StorageObjectFailure
221 * @throws StorageObjectExc
223 abstract public Map executeFreeSingleRowSql(String sql) throws StorageObjectFailure, StorageObjectExc ;
226 * Executes 1 sql statement and returns the first column of the first result row as a <<code>String</code>s
227 * (<code>null</code> if there wasn't any row)
231 * @throws StorageObjectFailure
232 * @throws StorageObjectExc
234 abstract public String executeFreeSingleValueSql(String sql) throws StorageObjectFailure, StorageObjectExc ;
240 abstract public void freeConnection(Connection con, Statement stmt) throws StorageObjectFailure;
242 abstract public int executeUpdate(Statement a, String sql) throws StorageObjectFailure, SQLException;
244 abstract public int executeUpdate(String sql) throws StorageObjectFailure, SQLException;
246 abstract public int getSize(String where) throws SQLException, StorageObjectFailure;