org.qi4j.spi.entitystore

## Class DefaultEntityStoreUnitOfWork

- java.lang.Object
- - org.qi4j.spi.entitystore.DefaultEntityStoreUnitOfWork

- All Implemented Interfaces:
    EntityStoreUnitOfWork

      public final class DefaultEntityStoreUnitOfWork
      extends Object
      implements EntityStoreUnitOfWork

  Default EntityStore UnitOfWork.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultEntityStoreUnitOfWork(EntityStoreSPI entityStoreSPI, String identity, Usecase usecase, long currentTime)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `StateCommitter` | `applyChanges()`
    `long` | `currentTime()`
    `void` | `discard()`
    `EntityState` | `entityStateOf(ModuleSpi module, EntityReference anIdentity)` Get the EntityState for a given identity.
    `String` | `identity()`
    `EntityState` | `newEntityState(ModuleSpi module, 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,
                                      String identity,
                                      Usecase usecase,
                                      long currentTime)

  - ### Method Detail

    - #### identity

          public String identity()

      Specified by:
        `identity` in interface `EntityStoreUnitOfWork`

    - #### currentTime

          public long currentTime()

      Specified by:
        `currentTime` in interface `EntityStoreUnitOfWork`

    - #### usecase

          public Usecase usecase()

      Specified by:
        `usecase` in interface `EntityStoreUnitOfWork`

    - #### newEntityState

          public EntityState newEntityState(ModuleSpi module,
                                   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`
        `anIdentity` - the identity of the entity
        `descriptor` - entity descriptor
      Returns:
        The new entity state.
      Throws:
        `EntityStoreException` - Thrown if creational fails.

    - #### entityStateOf

          public EntityState entityStateOf(ModuleSpi module,
                                  EntityReference anIdentity)
                                    throws 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`
        `anIdentity` - The entity identity. This argument must not be `null`.
      Returns:
        Entity state given the composite descriptor and identity.
      Throws:
        `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`