/*
- * 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 java.io.InputStream;
import mir.entity.Entity;
import mir.entity.EntityList;
-import freemarker.template.SimpleHash;
-import freemarker.template.SimpleList;
-
/**
- * Implementiert Interface f?r die Speicherschicht.
- * Bislang gibt es in der Bibliothek nur die M?glichkeit
- * in einer Datenbank zu speichern.
- * @author RK
- * @version 29.6.1999
+ * Interface for low-level database actions.
*/
+
public interface StorageObject {
- /**
- * Dokumentation siehe Database.java
- * @param id
- * @return Entity
- * @exception StorageObjectException
- */
- abstract public Entity selectById(String id) throws StorageObjectExc;
+ public Entity selectById(String id) throws StorageObjectExc;
- /**
- * Dokumentation siehe Database.java
- * @param aField
- * @param aValue
- * @return EntityList
- * @exception StorageObjectException
- */
- abstract public EntityList selectByFieldValue(String aField, String aValue)
- throws StorageObjectFailure;
+ public EntityList selectByFieldValue(String aField, String aValue) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @param whereClause
- * @return EntityList
- * @exception StorageObjectException
- */
- abstract public EntityList selectByWhereClause(String whereClause)
- throws StorageObjectFailure;
+ public EntityList selectByWhereClause(String whereClause) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @param whereClause
- * @param offset
- * @return EntityList
- * @exception StorageObjectException
- */
- abstract public EntityList selectByWhereClause(String whereClause, int offset)
- throws StorageObjectFailure;
+ public EntityList selectByWhereClause(String whereClause, int offset) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @param whereClause
- * @param orderBy
- * @param offset
- * @return EntityList
- * @exception StorageObjectException
- */
- abstract public EntityList selectByWhereClause(String whereClause,
- String orderBy, int offset) throws StorageObjectFailure;
+ public EntityList selectByWhereClause(String whereClause, String orderBy, int offset) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @param whereClause
- * @param orderBy
- * @param offset
- * @param limit
- * @return EntityList
- * @exception StorageObjectException
- */
- abstract public EntityList selectByWhereClause(String whereClause,
- String orderBy, int offset, int limit) throws StorageObjectFailure;
+ public EntityList selectByWhereClause(String whereClause, String orderBy, int offset, int limit) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @param id
- * @return boolen
- * @exception StorageObjectException
- */
- abstract public boolean delete(String id) throws StorageObjectFailure;
+ public EntityList selectByWhereClause(String mainTablePrefix, List extraTables, String aWhereClause, String anOrderByClause, int offset, int limit) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @return ArrayList
- * @exception StorageObjectException
- */
- abstract public List getFields() throws StorageObjectFailure;
+ public boolean delete(String id) throws StorageObjectFailure;
/**
- * Dokumentation siehe Database.java
- * @return int[]
- * @exception StorageObjectException
+ * Deletes entities based on a where clause
*/
- abstract public int[] getTypes() throws StorageObjectFailure;
+ public int deleteByWhereClause(String aWhereClause) throws StorageObjectFailure;
/**
- * Dokumentation siehe Database.java
- * @return ArrayList
- * @exception StorageObjectException
+ * Returns a list of field names for this <code>StorageObject</code>
*/
- abstract public List getLabels() throws StorageObjectFailure;
+ public List getFieldNames() throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @param a
- * @exception StorageObjectException
- */
- abstract public void update(Entity a) throws StorageObjectFailure;
+ public void update(Entity a) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @param a
- * @return String id
- * @exception StorageObjectException
- */
- abstract public String insert(Entity a) throws StorageObjectFailure;
+ public String insert(Entity a) throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @return Class Klasse der Entity
- */
- abstract public Class getEntityClass();
+ public Class getEntityClass();
- /**
- * put your documentation comment here
- * @return
- */
- abstract public String getIdName();
+ public String getIdName();
- /**
- * Dokumentation siehe Database.java
- * @return String
- */
- abstract public String getTableName();
+ public String getTableName();
- /**
- * Dokumentation siehe Database.java
- * @return SimpleHash
- */
- abstract public SimpleHash getHashData();
+ public Connection obtainConnection() throws StorageObjectFailure;
- /**
- * Dokumentation siehe Database.java
- * @return Connection
- * @exception StorageObjectException
- */
- abstract public Connection getPooledCon() throws StorageObjectFailure;
+ public ResultSet executeSql(Statement a, String sql) throws StorageObjectFailure, SQLException;
/**
- * Dokumentation siehe Database.java
- * @param a
- * @param sql
- * @return ResultSet
- * @exception StorageObjectException, SQLException
+ * Executes 1 sql statement and returns the results as a <code>List</code> of
+ * <code>Map</code>s
*/
- abstract public ResultSet executeSql(Statement a, String sql)
- throws StorageObjectFailure, SQLException;
+ public List executeFreeSql(String sql, int aLimit) throws StorageObjectFailure, StorageObjectExc;
/**
- * Dokumentation siehe Database.java
- * @param con
- * @param stmt
+ * 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)
*/
- abstract public void freeConnection(Connection con, Statement stmt)
- throws StorageObjectFailure;
+ public Map executeFreeSingleRowSql(String sql) throws StorageObjectFailure, StorageObjectExc ;
/**
- * Dokumentation siehe Database.java
- * @return
+ * 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)
*/
- abstract public SimpleList getPopupData() throws StorageObjectFailure;
+ public String executeFreeSingleValueSql(String sql) throws StorageObjectFailure, StorageObjectExc ;
+
+ public void freeConnection(Connection con, Statement stmt) throws StorageObjectFailure;
+
+ public int executeUpdate(Statement a, String sql) throws StorageObjectFailure, SQLException;
+
+ public int executeUpdate(String sql) throws StorageObjectFailure, SQLException;
+
+ public int getSize(String where) throws SQLException, StorageObjectFailure;
- abstract public int executeUpdate(Statement a, String sql)
- throws StorageObjectFailure, SQLException;
+ public int getSize(String mainTablePrefix, List extraTables, String where) throws SQLException, StorageObjectFailure;
- abstract public int executeUpdate(String sql)
- throws StorageObjectFailure, SQLException;
+ public InputStream getBinaryField(String aQuery) throws SQLException, StorageObjectFailure;
- abstract public int getSize(String where)
- throws SQLException, StorageObjectFailure;
+ public void setBinaryField(String aQuery, byte aData[]) throws StorageObjectFailure, SQLException;
}