Makes sense to me

Niclas Hedhman a écrit :
> Hi again,
> While looking into the feasibility of implementing a Repository EntityStore
> I realized that the current SPI seems flawed.
>
> The TYPE of an entity is stored with the entity and not the entity type
> that is being processed by the outside world. And then type lookup is used
> via the current Module associated to the current UnitOfWork.
>
> It seems more logical to me that an EnttyDscriptor is passed down to the
> EntityStore, so that the type doesn't need to be looked up. For ES, this
> seems to work well, although this doesn't solve a similar issue in the
> Query system.
>
> I would like to change the EntityStoreSPI from
>
>
> public interface EntityStoreSPI
> {
>     EntityState newEntityState( EntityStoreUnitOfWork unitOfWork,
>                                 EntityReference identity,
>                                 EntityDescriptor entityDescriptor
>     );
>
>     EntityState entityStateOf( EntityStoreUnitOfWork unitOfWork,
>                                ModuleDescriptor module,
>                                EntityReference identity );
>
>     String versionOf( EntityStoreUnitOfWork unitOfWork,
>                       EntityReference identity );
>
>     StateCommitter applyChanges( EntityStoreUnitOfWork unitOfWork,
>                                  Iterable<EntityState> state );
> }
>
> to
>
> public interface EntityStoreSPI
> {
>     EntityState newEntityState( EntityStoreUnitOfWork unitOfWork,
>                                 EntityReference identity,
>                                 EntityDescriptor entityDescriptor
>     );
>
>     EntityState entityStateOf( EntityStoreUnitOfWork unitOfWork,
>                                EntityReference identity,
>                                EntityDescriptor entityDescriptor );
>
>     String versionOf( EntityStoreUnitOfWork unitOfWork,
>                       EntityReference identity,
>                       EntityDescriptor entityDescriptor );
>
>     StateCommitter applyChanges( EntityStoreUnitOfWork unitOfWork,
>                                  Iterable<EntityState> state );
> }
>
>
> which I think can handle the requirements of Repository ES more elegantly.
>
> WDYT?
>
> Cheers

Reply via email to