/** * Empties Flush stack present in a PersistenceCache. * */ public void clearFlushStack() { if (stackQueue != null && !stackQueue.isEmpty()) { stackQueue.clear(); } if (joinTableDataCollection != null && !joinTableDataCollection.isEmpty()) { joinTableDataCollection.clear(); } if (eventLogQueue != null) { eventLogQueue.clear(); } }
/** * Rollback. * * @param delegator * the delegator */ public void commit() { onCommit(eventLogQueue.getInsertEvents()); onCommit(eventLogQueue.getUpdateEvents()); onCommit(eventLogQueue.getDeleteEvents()); }
/** * On event. * * @param log * the log * @param eventType * the event type */ void onEvent(EventLog log, EventType eventType) { switch (eventType) { case INSERT: onInsert(log); break; case UPDATE: onUpdate(log); break; case DELETE: onDelete(log); break; default: throw new KunderaException("Invalid event type:" + eventType); } }
/** * Log event. * * @param node * the node * @param eventType * the event type */ private void logEvent(Node node, EventType eventType) { // Node contains original as well as transactional copy. EventLog log = new EventLog(eventType, node); eventLogQueue.onEvent(log, eventType); }
/** * Rollback. * * @param delegator * the delegator */ public void rollback(PersistenceDelegator delegator) { if (eventLogQueue != null) { onRollBack(delegator, eventLogQueue.getInsertEvents()); onRollBack(delegator, eventLogQueue.getUpdateEvents()); onRollBack(delegator, eventLogQueue.getDeleteEvents()); rollbackJoinTableData(delegator); } }