/** * Creates a "Unit of Work" to be used by this controller. * * @return the created UOW. */ protected IEntityUnitOfWork createUnitOfWork() { return new BasicEntityUnitOfWork(); }
/** * {@inheritDoc} */ @Override public List<IEntity> getEntitiesRegisteredForUpdate() { if (nestedUnitOfWork != null) { return nestedUnitOfWork.getEntitiesRegisteredForUpdate(); } return entitiesRegisteredForUpdate; }
/** * {@inheritDoc} */ @Override public Set<IEntity> getUpdatedEntities() { if (nestedUnitOfWork != null) { return nestedUnitOfWork.getUpdatedEntities(); } return updatedEntities; }
/** * {@inheritDoc} */ @Override public void clear() { if (nestedUnitOfWork != null) { nestedUnitOfWork.clear(); } else { clearPendingOperations(); cleanup(); } }
/** * {@inheritDoc} */ @Override public void beginNested() { if (nestedUnitOfWork != null) { nestedUnitOfWork.beginNested(); } else { nestedUnitOfWork = new BasicEntityUnitOfWork(); nestedUnitOfWork.parentUnitOfWork = this; nestedUnitOfWork.begin(); } }
/** * {@inheritDoc} */ public void rollback() { cleanup(); }
/** * {@inheritDoc} */ public boolean isDirty(IEntity entity) { Map<String, Object> entityDirtyProperties = getDirtyProperties(entity); return (entityDirtyProperties != null && entityDirtyProperties.size() > 0); }
/** * {@inheritDoc} */ @Override public boolean isActive() { if (nestedUnitOfWork != null && nestedUnitOfWork.isActive()) { return true; } return !suspended && dirtRecorder != null; }
/** * {@inheritDoc} */ @Override public Set<IEntity> getEntitiesRegisteredForDeletion() { if (nestedUnitOfWork != null) { return nestedUnitOfWork.getEntitiesRegisteredForDeletion(); } return entitiesRegisteredForDeletion; }
/** * {@inheritDoc} */ public void performPendingOperations() { clearPendingOperations(); }
/** * {@inheritDoc} */ @Override public void suspend() { if (nestedUnitOfWork != null) { nestedUnitOfWork.suspend(); } else { suspended = true; } }
/** * {@inheritDoc} */ @Override public Set<IEntity> getDeletedEntities() { if (nestedUnitOfWork != null) { return nestedUnitOfWork.getDeletedEntities(); } return deletedEntities; }
/** * {@inheritDoc} */ @Override public boolean isSuspended() { if (nestedUnitOfWork != null && nestedUnitOfWork.isSuspended()) { return true; } return suspended; }
/** * {@inheritDoc} */ @Override public void resume() { if (nestedUnitOfWork != null) { nestedUnitOfWork.resume(); } else { suspended = false; } }
/** * Clears the pending operations. * <p/> * {@inheritDoc} */ @Override public void clearPendingOperations() { if (nestedUnitOfWork != null) { nestedUnitOfWork.clearPendingOperations(); } else { entitiesRegisteredForUpdate = null; entitiesRegisteredForDeletion = null; } }
/** * {@inheritDoc} */ @Override public Map<Class<? extends IEntity>, Map<Serializable, IEntity>> getRegisteredEntities() { if (nestedUnitOfWork != null) { return nestedUnitOfWork.getRegisteredEntities(); } return entityRegistry.getRegisteredEntities(); }
/** * {@inheritDoc} */ @Override public IEntity getRegisteredEntity(Class<? extends IEntity> entityContract, Serializable entityId) { if (nestedUnitOfWork != null) { return nestedUnitOfWork.getRegisteredEntity(entityContract, entityId); } return entityRegistry.get(entityContract, entityId); }
/** * {@inheritDoc} */ public void commit() { cleanup(); }
/** * {@inheritDoc} */ @Override public Map<String, Object> getDirtyProperties(IEntity entity) { if (nestedUnitOfWork != null) { return nestedUnitOfWork.getDirtyProperties(entity); } return dirtRecorder.getChangedProperties(entity); }