/*
- * Copyright (C) 2001, 2002 The Mir-coders group
+ * Copyright (C) 2001, 2002 The Mir-coders group
*
* This file is part of Mir.
*
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with the com.oreilly.servlet library, any library
- * licensed under the Apache Software License, The Sun (tm) Java Advanced
- * Imaging library (JAI), The Sun JIMI library (or with modified versions of
- * the above that use the same license as the above), and distribute linked
- * combinations including the two. You must obey the GNU General Public
- * License in all respects for all of the code used other than the above
- * mentioned libraries. If you modify this file, you may extend this exception
- * to your version of the file, but you are not obligated to do so. If you do
- * not wish to do so, delete this exception statement from your version.
- */
-/*
- * Implementiert Interface f?r die Speicherschicht.
- * Bislang gibt es in der Bibliothek nur die M?glichkeit
- * in einer Datenbank zu speichern.
+ * the code of this program with any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two. You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries. If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
+ * If you do not wish to do so, delete this exception statement from your version.
*/
package mir.storage;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
+import java.util.Map;
import mir.entity.Entity;
import mir.entity.EntityList;
-import freemarker.template.SimpleHash;
-import freemarker.template.SimpleList;
/**
abstract public boolean delete(String id) throws StorageObjectFailure;
/**
+ * Deletes entities based on a where clause
+ *
+ * @param aWhereClause
+ * @return
+ * @throws StorageObjectFailure
+ */
+ public int deleteByWhereClause(String aWhereClause) throws StorageObjectFailure;
+
+ /**
* Dokumentation siehe Database.java
* @return ArrayList
* @exception StorageObjectException
*/
abstract public void update(Entity a) throws StorageObjectFailure;
+ abstract public EntityList selectByWhereClause(String mainTablePrefix, List extraTables,
+ String aWhereClause, String anOrderByClause,
+ int offset, int limit) throws StorageObjectFailure;
+
+
/**
* Dokumentation siehe Database.java
* @param a
/**
* Dokumentation siehe Database.java
- * @return SimpleHash
- */
- abstract public SimpleHash getHashData();
-
- /**
- * Dokumentation siehe Database.java
* @return Connection
* @exception StorageObjectException
*/
abstract public Connection getPooledCon() throws StorageObjectFailure;
/**
- * Dokumentation siehe Database.java
+ *
* @param a
* @param sql
- * @return ResultSet
- * @exception StorageObjectException, SQLException
+ * @return
+ * @throws StorageObjectFailure
+ * @throws SQLException
*/
- abstract public ResultSet executeSql(Statement a, String sql)
- throws StorageObjectFailure, SQLException;
+ abstract public ResultSet executeSql(Statement a, String sql) throws StorageObjectFailure, SQLException;
/**
- * Dokumentation siehe Database.java
- * @param con
- * @param stmt
+ * Executes 1 sql statement and returns the results as a <code>List</code> of <code>Map</code>s
+ *
+ * @param sql
+ * @return
+ * @throws StorageObjectFailure
+ * @throws StorageObjectExc
*/
- abstract public void freeConnection(Connection con, Statement stmt)
- throws StorageObjectFailure;
+ abstract public List executeFreeSql(String sql, int aLimit) throws StorageObjectFailure, StorageObjectExc;
/**
- * Dokumentation siehe Database.java
+ * Executes 1 sql statement and returns the first result row as a <<code>Map</code>s
+ * (<code>null</code> if there wasn't any row)
+ *
+ * @param sql
* @return
+ * @throws StorageObjectFailure
+ * @throws StorageObjectExc
+ */
+ abstract public Map executeFreeSingleRowSql(String sql) throws StorageObjectFailure, StorageObjectExc ;
+
+ /**
+ * Executes 1 sql statement and returns the first column of the first result row as a <<code>String</code>s
+ * (<code>null</code> if there wasn't any row)
+ *
+ * @param sql
+ * @return
+ * @throws StorageObjectFailure
+ * @throws StorageObjectExc
+ */
+ abstract public String executeFreeSingleValueSql(String sql) throws StorageObjectFailure, StorageObjectExc ;
+
+ /**
+ * @param con
+ * @param stmt
*/
- abstract public SimpleList getPopupData() throws StorageObjectFailure;
+ abstract public void freeConnection(Connection con, Statement stmt) throws StorageObjectFailure;
- abstract public int executeUpdate(Statement a, String sql)
- throws StorageObjectFailure, SQLException;
+ abstract public int executeUpdate(Statement a, String sql) throws StorageObjectFailure, SQLException;
- abstract public int executeUpdate(String sql)
- throws StorageObjectFailure, SQLException;
+ abstract public int executeUpdate(String sql) throws StorageObjectFailure, SQLException;
- abstract public int getSize(String where)
- throws SQLException, StorageObjectFailure;
+ abstract public int getSize(String where) throws SQLException, StorageObjectFailure;
}