org.qi4j.spi.entitystore
Class DefaultEntityStoreUnitOfWork

java.lang.Object
  extended by org.qi4j.spi.entitystore.DefaultEntityStoreUnitOfWork
All Implemented Interfaces:
EntityStoreUnitOfWork

public final class DefaultEntityStoreUnitOfWork
extends java.lang.Object
implements EntityStoreUnitOfWork

Default EntityStore UnitOfWork.


Constructor Summary
DefaultEntityStoreUnitOfWork(EntityStoreSPI entityStoreSPI, java.lang.String identity, Module module, Usecase usecase, long currentTime)
           
 
Method Summary
 StateCommitter applyChanges()
           
 long currentTime()
           
 void discard()
           
 EntityState entityStateOf(EntityReference anIdentity)
          Get the EntityState for a given identity.
 java.lang.String identity()
           
 Module module()
           
 EntityState newEntityState(EntityReference anIdentity, EntityDescriptor descriptor)
          Create new EntityState for a given identity.
 Usecase usecase()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultEntityStoreUnitOfWork

public DefaultEntityStoreUnitOfWork(EntityStoreSPI entityStoreSPI,
                                    java.lang.String identity,
                                    Module module,
                                    Usecase usecase,
                                    long currentTime)
Method Detail

identity

public java.lang.String identity()
Specified by:
identity in interface EntityStoreUnitOfWork

module

public Module module()

currentTime

public long currentTime()
Specified by:
currentTime in interface EntityStoreUnitOfWork

usecase

public Usecase usecase()

newEntityState

public EntityState newEntityState(EntityReference anIdentity,
                                  EntityDescriptor descriptor)
                           throws EntityStoreException
Description copied from interface: EntityStoreUnitOfWork
Create new EntityState for a given identity.

This should only create the EntityState and not insert it into any database, since that should occur during the EntityStoreUnitOfWork.applyChanges() call.

Specified by:
newEntityState in interface EntityStoreUnitOfWork
Parameters:
anIdentity - the identity of the entity
descriptor - entity descriptor
Returns:
The new entity state.
Throws:
EntityStoreException - Thrown if creational fails.

entityStateOf

public EntityState entityStateOf(EntityReference anIdentity)
                          throws EntityStoreException,
                                 EntityNotFoundException
Description copied from interface: EntityStoreUnitOfWork
Get the EntityState for a given identity. Throws EntityNotFoundException if the entity with given anIdentity is not found.

Specified by:
entityStateOf in interface EntityStoreUnitOfWork
Parameters:
anIdentity - The entity identity. This argument must not be null.
Returns:
Entity state given the composite descriptor and identity.
Throws:
EntityStoreException - thrown if retrieval failed.
EntityNotFoundException - if requested entity does not exist

applyChanges

public StateCommitter applyChanges()
                            throws EntityStoreException
Specified by:
applyChanges in interface EntityStoreUnitOfWork
Throws:
EntityStoreException

discard

public void discard()
Specified by:
discard in interface EntityStoreUnitOfWork