public interface EntityTypeRegistry
Modifier and Type | Method and Description |
---|---|
<T extends Entity> |
getEntityTypeOf(java.lang.Class<T> type)
Returns the interface of this entity implementation.
|
<T extends Entity> |
getImplementedBy(java.lang.Class<T> type)
Returns the implementation to be used for the given entity type.
|
<T extends Entity> |
registerImplementation(java.lang.Class<T> type,
java.lang.Class<? extends T> implClazz)
Registers the implementation to use for a given entity type.
|
<T extends Entity> java.lang.Class<? extends T> getImplementedBy(java.lang.Class<T> type)
D
- entity
- the DriverDependentEntity
to create the EntityDriver
for.location
- the Location
where the DriverDependentEntity
is running.java.lang.IllegalArgumentException
- If no implementation registered, and the given interface is not annotated with ImplementedBy
java.lang.IllegalStateException
- If the given type is not an interface, or if the implementation class is not a concrete class implementing it<T extends Entity> java.lang.Class<? super T> getEntityTypeOf(java.lang.Class<T> type)
entity.getEntityType().getName()
.java.lang.IllegalArgumentException
- If no interface is registered against this implementation,
and no super-type of the class is annotated with ImplementedBy
to point at the given class<T extends Entity> EntityTypeRegistry registerImplementation(java.lang.Class<T> type, java.lang.Class<? extends T> implClazz)
java.lang.IllegalArgumentException
- If this implementation has already been registered for a different typejava.lang.IllegalStateException
- If the implClazz is not a concrete class, or does not implement type