From: Gautam J. <ga...@us...> - 2004-08-28 06:19:36
|
Update of /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/persistence In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10945/source/java/org/jaffa/persistence Modified Files: UOW.java Log Message: Added the flush() method to the UOW for flushing the add/update/delete queues of the persistence engine Index: UOW.java =================================================================== RCS file: /cvsroot/jaffa/JaffaCore/source/java/org/jaffa/persistence/UOW.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** UOW.java 14 May 2004 22:30:32 -0000 1.3 --- UOW.java 28 Aug 2004 06:19:11 -0000 1.4 *************** *** 61,68 **** */ public class UOW { ! private boolean m_inactive = false; private IPersistenceEngine m_engine = null; ! /** Creates new UOW. A connection is established with the underlying persistence store. * @throws UOWException if any error occurs during the process. --- 61,68 ---- */ public class UOW { ! private boolean m_inactive = false; private IPersistenceEngine m_engine = null; ! /** Creates new UOW. A connection is established with the underlying persistence store. * @throws UOWException if any error occurs during the process. *************** *** 71,75 **** m_engine = PersistenceEngineFactory.newInstance(); } ! /** Generates an appropriate instance for the input persistentClass. * If the persistentClass is a 'Class', then it should implement the 'IPersistent' interface. The persistence engine will simply instantiate the class. --- 71,75 ---- m_engine = PersistenceEngineFactory.newInstance(); } ! /** Generates an appropriate instance for the input persistentClass. * If the persistentClass is a 'Class', then it should implement the 'IPersistent' interface. The persistence engine will simply instantiate the class. *************** *** 81,97 **** return m_engine.newPersistentInstance(persistentClass); } ! ! /** This is a helper method to determine the actual class which was used to create an IPersistent instance. * It is quite possible that the input object is a dynamic proxy. - * @param object The object which implements the IPersistent instance. * @return The class which was used for instantiating the instance. */ public Class getActualPersistentClass(Object persistentObject) { return m_engine.getActualPersistentClass(persistentObject); } ! /** * Adds an object to the UOW for addition to the persistent store. ! * The persistence engine may choose to add the object(s) only on a <code>commit</code>. * @param object The object to persist. It should implement the IPersistent interface. * @throws AddFailedException if any error occurs during the process. --- 81,98 ---- return m_engine.newPersistentInstance(persistentClass); } ! ! /** ! * This is a helper method to determine the actual class which was used to create an IPersistent instance. * It is quite possible that the input object is a dynamic proxy. * @return The class which was used for instantiating the instance. + * @param persistentObject An IPersistence instance. */ public Class getActualPersistentClass(Object persistentObject) { return m_engine.getActualPersistentClass(persistentObject); } ! /** * Adds an object to the UOW for addition to the persistent store. ! * The persistence engine may choose to add the object(s) only on a <code>commit</code> or on a <code>flush</code>. * @param object The object to persist. It should implement the IPersistent interface. * @throws AddFailedException if any error occurs during the process. *************** *** 104,111 **** m_engine.add(persistentObject); } ! /** * Adds an object to the UOW for updation to the persistent store. ! * The persistence engine may choose to update the object(s) only on a <code>commit</code>. * @param object The object to update. It should implement the IPersistent interface. * @throws UpdateFailedException if any error occurs during the process. --- 105,112 ---- m_engine.add(persistentObject); } ! /** * Adds an object to the UOW for updation to the persistent store. ! * The persistence engine may choose to update the object(s) only on a <code>commit</code> or on a <code>flush</code>. * @param object The object to update. It should implement the IPersistent interface. * @throws UpdateFailedException if any error occurs during the process. *************** *** 117,124 **** m_engine.update(persistentObject); } ! /** * Adds an object to the UOW for deletion from the persistent store. ! * The persistence engine may choose to delete the object(s) only on a <code>commit</code>. * @param object The object to delete from persistent storage. It should implement the IPersistent interface. * @throws DeleteFailedException if any error occurs during the process. --- 118,125 ---- m_engine.update(persistentObject); } ! /** * Adds an object to the UOW for deletion from the persistent store. ! * The persistence engine may choose to delete the object(s) only on a <code>commit</code> or on a <code>flush</code>. * @param object The object to delete from persistent storage. It should implement the IPersistent interface. * @throws DeleteFailedException if any error occurs during the process. *************** *** 130,134 **** m_engine.delete(persistentObject); } ! /** * Queries the underlying persistent store based on the search profile passed in the {@link Criteria} object. --- 131,135 ---- m_engine.delete(persistentObject); } ! /** * Queries the underlying persistent store based on the search profile passed in the {@link Criteria} object. *************** *** 143,148 **** return m_engine.query(criteria); } ! ! /** * Objects that have been added, objects that have been deleted, --- 144,160 ---- return m_engine.query(criteria); } ! ! ! /** ! * Flushes the add/update/delete queues of the persistence engine. ! * This will have no effect if the persistence engine does not queue the add, update or the delete operations. ! * @throws UOWException if any error occurs. ! */ ! public void flush() throws UOWException { ! ensureActiveState(); ! m_engine.flush(); ! } ! ! /** * Objects that have been added, objects that have been deleted, *************** *** 162,167 **** close(); } ! ! /** * Rollbacks all the additions, deletions, updations. --- 174,179 ---- close(); } ! ! /** * Rollbacks all the additions, deletions, updations. *************** *** 175,179 **** } } ! /** * This will acquire a lock on the database row corrsponding to the input persistent object. --- 187,191 ---- } } ! /** * This will acquire a lock on the database row corrsponding to the input persistent object. *************** *** 187,191 **** m_engine.acquireLock(persistentObject); } ! /** Returns true if the UOW is active. The UOW becomes inactive after a commit or a rollback. * @return true if the UOW is active. --- 199,203 ---- m_engine.acquireLock(persistentObject); } ! /** Returns true if the UOW is active. The UOW becomes inactive after a commit or a rollback. * @return true if the UOW is active. *************** *** 194,198 **** return !m_inactive; } ! /** This invokes the rollback() method, which will rollback & close the connection(if still open). * @throws Throwable if any error occurs. --- 206,210 ---- return !m_inactive; } ! /** This invokes the rollback() method, which will rollback & close the connection(if still open). * @throws Throwable if any error occurs. *************** *** 202,209 **** super.finalize(); } ! ! ! ! /** Throws an InactiveUowRuntimeException if the UOW is inactive */ private void ensureActiveState() throws InactiveUowRuntimeException { --- 214,221 ---- super.finalize(); } ! ! ! ! /** Throws an InactiveUowRuntimeException if the UOW is inactive */ private void ensureActiveState() throws InactiveUowRuntimeException { *************** *** 211,215 **** throw new InactiveUowRuntimeException(); } ! /** Closes the connection and marks the UOW as inactive */ private void close() { --- 223,227 ---- throw new InactiveUowRuntimeException(); } ! /** Closes the connection and marks the UOW as inactive */ private void close() { *************** *** 220,224 **** m_inactive = true; } ! private void preAddChecks(IPersistent object) { if (object.getUOW() != null && object.getUOW() != this) --- 232,236 ---- m_inactive = true; } ! private void preAddChecks(IPersistent object) { if (object.getUOW() != null && object.getUOW() != this) *************** *** 227,231 **** throw new IllegalArgumentException("Cannot add an object, which already exists in the database."); } ! private void preUpdateChecks(IPersistent object) { if (object.getUOW() != this) --- 239,243 ---- throw new IllegalArgumentException("Cannot add an object, which already exists in the database."); } ! private void preUpdateChecks(IPersistent object) { if (object.getUOW() != this) *************** *** 234,238 **** throw new IllegalArgumentException("Cannot update an object, which is not already in the database."); } ! private void preDeleteChecks(IPersistent object) { if (object.getUOW() != this) --- 246,250 ---- throw new IllegalArgumentException("Cannot update an object, which is not already in the database."); } ! private void preDeleteChecks(IPersistent object) { if (object.getUOW() != this) *************** *** 241,245 **** throw new IllegalArgumentException("Cannot delete an object, which is not already in the database."); } ! private void preAcquireLockChecks(IPersistent object) { if (object.getUOW() != this) --- 253,257 ---- throw new IllegalArgumentException("Cannot delete an object, which is not already in the database."); } ! private void preAcquireLockChecks(IPersistent object) { if (object.getUOW() != this) *************** *** 248,251 **** throw new IllegalArgumentException("Cannot lock an object, which is not already in the database."); } ! } --- 260,263 ---- throw new IllegalArgumentException("Cannot lock an object, which is not already in the database."); } ! } |