public class Registrar
extends java.lang.Object
Maintains information about registered entity classes
There logic here is convoluted by polymorphic hierarchies. Entity classes can be registered in any particular order, requiring some considerable care.
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.Class<?>,EntityMetadata<?>> |
byClass
This maps class to EntityMetadata for all registered classes
|
protected java.util.Map<java.lang.String,EntityMetadata<?>> |
byKind
This maps kind to EntityMetadata
|
protected boolean |
cacheEnabled
True if any @Cached entities have been registered
|
protected ObjectifyFactory |
fact
Needed to obtain the converters
|
Constructor and Description |
---|
Registrar(ObjectifyFactory fact) |
Modifier and Type | Method and Description |
---|---|
<T> EntityMetadata<T> |
getMetadata(java.lang.Class<T> clazz) |
<T> EntityMetadata<T> |
getMetadata(java.lang.String kind) |
boolean |
isCacheEnabled() |
<T> void |
register(java.lang.Class<T> clazz)
All POJO entity classes which are to be managed by Objectify
must be registered first.
|
protected void |
registerPolymorphicHierarchy(java.lang.String kind,
java.lang.Class clazz)
Recursively register classes in the hierarchy which have @EntitySubclass
or @Entity.
|
protected ObjectifyFactory fact
protected java.util.Map<java.lang.String,EntityMetadata<?>> byKind
protected java.util.Map<java.lang.Class<?>,EntityMetadata<?>> byClass
protected boolean cacheEnabled
public Registrar(ObjectifyFactory fact)
fact
- is so that the conversions can be obtainedpublic boolean isCacheEnabled()
public <T> void register(java.lang.Class<T> clazz)
All POJO entity classes which are to be managed by Objectify must be registered first. This method must be called in a single-threaded mode sometime around application initialization. Re-registering a class has no effect.
clazz
- must be annotated with either @Entity or @EntitySubclassprotected void registerPolymorphicHierarchy(java.lang.String kind, java.lang.Class clazz)
public <T> EntityMetadata<T> getMetadata(java.lang.String kind)
public <T> EntityMetadata<T> getMetadata(java.lang.Class<T> clazz)