philippe van dyck wrote:
But the most important problem is the presence of EntityType in
MapEntityStore :
public interface MapEntityStore
{...
Reader get( EntityReference entityReference, EntityType entityType)
throws EntityStoreException;
...}
The S3 ES will not compile until this is changed, sorry!
This is absolutely impossible to do though, since the UoW code has no
way of knowing what type to send in, in the general case.
Example: in my own app I have a Describable mixin type that about 10
EntityTypes extend. Therefore there will be 10 potential EntityModels
that could be used if I do uow.get(Describable.class, "1234"), and the
UoW has no idea of knowing which one to pick. It could try them one at a
time, but that would be stupid as on average that will give 5 misses.
The best solution I can think of is to embed the type information in the
id itself, so that the EntityStore can use that to switch buckets
internally. To do that you need to ensure that id's are generated with
type information in it. The easiest way to do that is to have your
EntityStore implement IdentityGenerator, because when an identity is
generated you will get the Entity type as a parameter.
/Rickard
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev