/** * INTERNAL: * Perform the commit event. * This is used in the uow to delay data modifications. */ public void performDataModificationEvent(Object[] event, AbstractSession session) throws DatabaseException, DescriptorException { // Hey I might actually want to use an inner class here... ok array for now. if (event[0] == PostInsert) { insertIntoRelationTable((WriteObjectQuery)event[1]); } else if (event[0] == ObjectRemoved) { session.executeQuery((DataModifyQuery)event[1], (AbstractRecord)event[2]); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete((DataModifyQuery)event[1], (AbstractRecord)event[2], session); } } else if (event[0] == ObjectAdded) { insertAddedObjectEntry((WriteObjectQuery)event[1], event[2], (Map)event[3]); } else { throw DescriptorException.invalidDataModificationEventCode(event[0], this); } }
/** * INTERNAL: * Perform the commit event. * This is used in the uow to delay data modifications. */ @Override public void performDataModificationEvent(Object[] event, AbstractSession session) throws DatabaseException, DescriptorException { // Hey I might actually want to use an inner class here... ok array for now. if (event[0] == PostInsert) { insertIntoRelationTable((WriteObjectQuery)event[1]); } else if (event[0] == ObjectRemoved) { session.executeQuery((DataModifyQuery)event[1], (AbstractRecord)event[2]); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete((DataModifyQuery)event[1], (AbstractRecord)event[2], session); } } else if (event[0] == ObjectAdded) { insertAddedObjectEntry((WriteObjectQuery)event[1], event[2], (Map)event[3]); } else { throw DescriptorException.invalidDataModificationEventCode(event[0], this); } }
/** * INTERNAL: * Perform the commit event. * This is used in the uow to delay data modifications. */ @Override public void performDataModificationEvent(Object[] event, AbstractSession session) throws DatabaseException, DescriptorException { // Hey I might actually want to use an inner class here... ok array for now. if (event[0] == PostInsert) { insertIntoRelationTable((WriteObjectQuery)event[1]); } else if (event[0] == ObjectRemoved) { session.executeQuery((DataModifyQuery)event[1], (AbstractRecord)event[2]); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete((DataModifyQuery)event[1], (AbstractRecord)event[2], session); } } else if (event[0] == ObjectAdded) { insertAddedObjectEntry((WriteObjectQuery)event[1], event[2], (Map)event[3]); } else { throw DescriptorException.invalidDataModificationEventCode(event[0], this); } }
/** * INTERNAL: * This method is called to update collection tables prior to commit. */ @Override public void earlyPreDelete(DeleteObjectQuery query){ AbstractSession querySession = query.getSession(); prepareTranslationRow(query.getTranslationRow(), query.getObject(), querySession); querySession.executeQuery(getDeleteAllQuery(), query.getTranslationRow()); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete(getDeleteAllQuery(), query.getTranslationRow(), querySession); } } /**
/** * INTERNAL: * Delete join tables before the start of the deletion process to avoid constraint errors. */ @Override public void earlyPreDelete(DeleteObjectQuery query, Object object) { AbstractSession querySession = query.getSession(); if (!this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), querySession); querySession.executeQuery(this.deleteAllQuery, query.getTranslationRow()); } if ((this.historyPolicy != null) && this.historyPolicy.shouldHandleWrites()) { if (this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), querySession); } this.historyPolicy.mappingLogicalDelete(this.deleteAllQuery, query.getTranslationRow(), querySession); } }
/** * INTERNAL: * Delete join tables before the start of the deletion process to avoid constraint errors. */ @Override public void earlyPreDelete(DeleteObjectQuery query, Object object) { AbstractSession querySession = query.getSession(); if (!this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), querySession); querySession.executeQuery(this.deleteAllQuery, query.getTranslationRow()); } if ((this.historyPolicy != null) && this.historyPolicy.shouldHandleWrites()) { if (this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), querySession); } this.historyPolicy.mappingLogicalDelete(this.deleteAllQuery, query.getTranslationRow(), querySession); } }
/** * INTERNAL: * Delete private owned part. Which is a collection of objects from the reference table. */ public void preDelete(DeleteObjectQuery query) throws DatabaseException { if (isReadOnly()) { return; } prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getSession()); query.getSession().executeQuery(getDeleteAllQuery(), query.getTranslationRow()); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete(getDeleteAllQuery(), query.getTranslationRow(), query.getSession()); } }
/** * INTERNAL: * Delete private owned part. Which is a collection of objects from the reference table. */ @Override public void preDelete(DeleteObjectQuery query) throws DatabaseException { if (this.isReadOnly) { return; } if (!this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), query.getSession()); query.getSession().executeQuery(this.deleteAllQuery, query.getTranslationRow()); } if ((this.historyPolicy != null) && this.historyPolicy.shouldHandleWrites()) { if (this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), query.getSession()); } this.historyPolicy.mappingLogicalDelete(this.deleteAllQuery, query.getTranslationRow(), query.getSession()); } }
/** * INTERNAL: * Delete private owned part. Which is a collection of objects from the reference table. */ @Override public void preDelete(DeleteObjectQuery query) throws DatabaseException { if (this.isReadOnly) { return; } if (!this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), query.getSession()); query.getSession().executeQuery(this.deleteAllQuery, query.getTranslationRow()); } if ((this.historyPolicy != null) && this.historyPolicy.shouldHandleWrites()) { if (this.isCascadeOnDeleteSetOnDatabase) { prepareTranslationRow(query.getTranslationRow(), query.getObject(), query.getDescriptor(), query.getSession()); } this.historyPolicy.mappingLogicalDelete(this.deleteAllQuery, query.getTranslationRow(), query.getSession()); } }
/** * INTERNAL: * An object was removed to the collection during an update, delete it if private. */ protected void objectRemovedDuringUpdate(ObjectLevelModifyQuery query, Object objectDeleted, Map extraData) throws DatabaseException, OptimisticLockException { Object unwrappedObjectDeleted = getContainerPolicy().unwrapIteratorResult(objectDeleted); AbstractRecord databaseRow = this.mechanism.buildRelationTableSourceAndTargetRow(query.getTranslationRow(), unwrappedObjectDeleted, query.getSession(), this); // In the uow data queries are cached until the end of the commit. if (query.shouldCascadeOnlyDependentParts()) { // Hey I might actually want to use an inner class here... ok array for now. Object[] event = new Object[3]; event[0] = ObjectRemoved; event[1] = this.mechanism.getDeleteQuery(); event[2] = databaseRow; query.getSession().getCommitManager().addDataModificationEvent(this, event); } else { query.getSession().executeQuery(this.mechanism.getDeleteQuery(), databaseRow); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete(this.mechanism.getDeleteQuery(), databaseRow, query.getSession()); } } // Delete object after join entry is delete if private. super.objectRemovedDuringUpdate(query, objectDeleted, extraData); }
/** * INTERNAL: * An object was removed to the collection during an update, delete it if private. */ @Override protected void objectRemovedDuringUpdate(ObjectLevelModifyQuery query, Object objectDeleted, Map extraData) throws DatabaseException, OptimisticLockException { Object unwrappedObjectDeleted = getContainerPolicy().unwrapIteratorResult(objectDeleted); AbstractRecord databaseRow = this.mechanism.buildRelationTableSourceAndTargetRow(query.getTranslationRow(), unwrappedObjectDeleted, query.getSession(), this); // In the uow data queries are cached until the end of the commit. if (query.shouldCascadeOnlyDependentParts()) { // Hey I might actually want to use an inner class here... ok array for now. Object[] event = new Object[3]; event[0] = ObjectRemoved; event[1] = this.mechanism.getDeleteQuery(); event[2] = databaseRow; query.getSession().getCommitManager().addDataModificationEvent(this, event); } else { query.getSession().executeQuery(this.mechanism.getDeleteQuery(), databaseRow); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete(this.mechanism.getDeleteQuery(), databaseRow, query.getSession()); } } // Delete object after join entry is delete if private. super.objectRemovedDuringUpdate(query, objectDeleted, extraData); }
session.executeQuery((DataModifyQuery)event[1], (AbstractRecord)event[2]); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete((DataModifyQuery)event[1], (AbstractRecord)event[2], session);
session.executeQuery((DataModifyQuery)event[1], (AbstractRecord)event[2]); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete((DataModifyQuery)event[1], (AbstractRecord)event[2], session);
/** * INTERNAL: * An object was removed to the collection during an update, delete it if private. */ @Override protected void objectRemovedDuringUpdate(ObjectLevelModifyQuery query, Object objectDeleted, Map extraData) throws DatabaseException, OptimisticLockException { Object unwrappedObjectDeleted = getContainerPolicy().unwrapIteratorResult(objectDeleted); AbstractRecord databaseRow = this.mechanism.buildRelationTableSourceAndTargetRow(query.getTranslationRow(), unwrappedObjectDeleted, query.getSession(), this); // In the uow data queries are cached until the end of the commit. if (query.shouldCascadeOnlyDependentParts()) { // Hey I might actually want to use an inner class here... ok array for now. Object[] event = new Object[3]; event[0] = ObjectRemoved; event[1] = this.mechanism.getDeleteQuery(); event[2] = databaseRow; query.getSession().getCommitManager().addDataModificationEvent(this, event); } else { query.getSession().executeQuery(this.mechanism.getDeleteQuery(), databaseRow); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete(this.mechanism.getDeleteQuery(), databaseRow, query.getSession()); } } // Delete object after join entry is delete if private. super.objectRemovedDuringUpdate(query, objectDeleted, extraData); }
session.executeQuery((DataModifyQuery)event[1], (AbstractRecord)event[2]); if ((getHistoryPolicy() != null) && getHistoryPolicy().shouldHandleWrites()) { getHistoryPolicy().mappingLogicalDelete((DataModifyQuery)event[1], (AbstractRecord)event[2], session);