001 /* 002 @license.text@ 003 */ 004 package biz.hammurapi.sql; 005 006 import java.sql.SQLException; 007 import java.util.Properties; 008 009 import org.w3c.dom.Element; 010 011 import biz.hammurapi.config.ConfigurationException; 012 013 /** 014 * Interface of DatabaseObject. This interface is used for creating dynamic proxies backed 015 * up with database obects. 016 * @author Pavel Vlasov 017 * @revision $Revision$ 018 */ 019 public interface IDatabaseObject { 020 021 /** 022 * Updates row in a table by primary key 023 * @param processor SQLProcessor 024 * @param tableName Target table 025 * @return Number of updates 026 * @throws SQLException 027 */ 028 public abstract int update(SQLProcessor processor, String tableName) throws SQLException; 029 030 /** 031 * Deletes row in a table by primary key. 032 * @param processor SQLProcessor 033 * @param tableName Target table 034 * @return Number of updates 035 * @throws SQLException 036 */ 037 public abstract int delete(SQLProcessor processor, String tableName) throws SQLException; 038 039 public abstract int insert(SQLProcessor processor, String tableName) throws SQLException; 040 041 /** 042 * Loads columns from XML element 043 * @param holder 044 * @throws ConfigurationException If loading fails 045 */ 046 public abstract void fromDom(Element holder) throws ConfigurationException; 047 048 public abstract void fromDom(Element holder, Properties nameMap) throws ConfigurationException; 049 050 /** 051 * Serializes to DOM. 052 * @param holder Holder element 053 * @param nameMap Name map 054 * @param originals Output original values if any. 055 */ 056 public abstract void toDom(Element holder, Properties nameMap, boolean originals); 057 058 /** 059 * Sets current values as original values in primary key columns. 060 */ 061 public abstract void setOriginal(); 062 063 /** 064 * @return true if object was modified since last database operation. 065 */ 066 public abstract boolean isModified(); 067 068 /** 069 * isDeleted flag is cleared when primary key columns are modified 070 * @return true if delete() method was executed. 071 */ 072 public abstract boolean isDeleted(); 073 074 /** 075 * Sets all columns to default values and clears 076 * modified and deleted flags. 077 * 078 */ 079 public abstract void clear(); 080 081 /** 082 * Copies values from source object to this object 083 * @param source 084 */ 085 public abstract void copy(DatabaseObject source); 086 087 public abstract void setColumnAttribute(String columnName, Object key, Object value); 088 089 public abstract Object getColumnAttribute(String columnName, Object key); 090 091 public abstract Object removeColumnAttribute(String columnName, Object key); 092 093 }