001 /*
002 @license.text@
003 */
004 package biz.hammurapi.sql;
005
006 import java.sql.SQLException;
007 import java.util.Collection;
008
009 /**
010 * @author Pavel Vlasov
011 * @revision $Revision$
012 */
013 public interface Relationship {
014 void load(SQLProcessor processor, Collection receiver) throws SQLException;
015
016 void store(SQLProcessor processor) throws SQLException;
017
018 void add(DatabaseObject item);
019
020 void remove(IDatabaseObject item);
021
022 boolean isLazy();
023
024 boolean isModified();
025
026 /**
027 * Updates modified relationship items.
028 * @param processor
029 * @param subItem
030 * @throws SQLException
031 */
032 void update(SQLProcessor processor, IDatabaseObject subItem) throws SQLException;
033
034 Class getItemType();
035
036 /**
037 * Callback method to propagate updates
038 * @param master
039 */
040 void setMaster(Collection master);
041 }