@Override public EntityState getEntityState(EntityReference anIdentity) throws EntityStoreException, EntityNotFoundException { EntityState entityState = uow.getEntityState(anIdentity); versions.rememberVersion(entityState.identity(), entityState.version()); loaded.add(entityState); return entityState; }
@Override public void discard() { try { uow.discard(); } finally { versions.forgetVersions(loaded); } }
@Override public StateCommitter applyChanges() throws EntityStoreException { versions.checkForConcurrentModification(loaded, module, currentTime); final StateCommitter committer = uow.applyChanges(); return new StateCommitter() { @Override public void commit() { committer.commit(); versions.forgetVersions(loaded); } @Override public void cancel() { committer.cancel(); versions.forgetVersions(loaded); } }; }
@Override public EntityState newEntityState(EntityReference anIdentity, EntityDescriptor entityDescriptor) throws EntityStoreException { return uow.newEntityState(anIdentity, entityDescriptor); }
@Override public long currentTime() { return uow.currentTime(); }
@Override public String identity() { return uow.identity(); }