@Component(value="cuba_EntityListenerManager")
public class EntityListenerManager
extends java.lang.Object
Usually entity listeners are registered declaratively with @Listeners
annotation on entity class.
Methods addListener(Class, Class)
and addListener(Class, String)
allow to add listeners dynamically,
e.g. to an entity from a base project.
Modifier and Type | Class and Description |
---|---|
protected static class |
EntityListenerManager.Key |
protected static class |
EntityListenerManager.ListenerExecution |
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<EntityListenerManager.Key,java.util.List> |
cache |
protected java.util.Map<java.lang.Class<? extends Entity>,java.util.Set<java.lang.String>> |
dynamicListeners |
protected boolean |
enabled |
protected java.util.concurrent.locks.ReadWriteLock |
lock |
static java.lang.String |
NAME |
protected Persistence |
persistence |
protected java.lang.ThreadLocal<java.util.List<EntityListenerManager.ListenerExecution>> |
threadLocalExecutions |
Constructor and Description |
---|
EntityListenerManager() |
Modifier and Type | Method and Description |
---|---|
void |
addListener(java.lang.Class<? extends Entity> entityClass,
java.lang.Class<?> listenerClass)
Register an entity listener by its class.
|
void |
addListener(java.lang.Class<? extends Entity> entityClass,
java.lang.String listenerBeanName)
Register an entity listener which is a ManagedBean.
|
void |
enable(boolean enable) |
protected java.util.List<?> |
findListener(java.lang.Class<? extends Entity> entityClass,
EntityListenerType type) |
void |
fireListener(Entity entity,
EntityListenerType type,
java.lang.String storeName) |
protected java.util.List<java.lang.String> |
getDeclaredListeners(java.lang.Class<? extends Entity> entityClass) |
protected java.util.List<?> |
getListener(java.lang.Class<? extends Entity> entityClass,
EntityListenerType type) |
protected void |
logExecution(EntityListenerType type,
Entity entity) |
void |
removeListener(java.lang.Class<? extends Entity> entityClass,
java.lang.Class<?> listenerClass)
Unregister an entity listener.
|
void |
removeListener(java.lang.Class<? extends Entity> entityClass,
java.lang.String listenerBeanName)
Unregister an entity listener.
|
public static final java.lang.String NAME
@Inject protected Persistence persistence
protected java.util.Map<EntityListenerManager.Key,java.util.List> cache
protected java.util.Map<java.lang.Class<? extends Entity>,java.util.Set<java.lang.String>> dynamicListeners
protected java.util.concurrent.locks.ReadWriteLock lock
protected volatile boolean enabled
protected java.lang.ThreadLocal<java.util.List<EntityListenerManager.ListenerExecution>> threadLocalExecutions
public void addListener(java.lang.Class<? extends Entity> entityClass, java.lang.Class<?> listenerClass)
entityClass
- entitylistenerClass
- listener classpublic void removeListener(java.lang.Class<? extends Entity> entityClass, java.lang.Class<?> listenerClass)
entityClass
- entitylistenerClass
- listener classpublic void addListener(java.lang.Class<? extends Entity> entityClass, java.lang.String listenerBeanName)
entityClass
- entitylistenerBeanName
- listener bean namepublic void removeListener(java.lang.Class<? extends Entity> entityClass, java.lang.String listenerBeanName)
entityClass
- entitylistenerBeanName
- listener bean namepublic void fireListener(Entity entity, EntityListenerType type, java.lang.String storeName)
public void enable(boolean enable)
protected void logExecution(EntityListenerType type, Entity entity)
protected java.util.List<?> getListener(java.lang.Class<? extends Entity> entityClass, EntityListenerType type)
protected java.util.List<?> findListener(java.lang.Class<? extends Entity> entityClass, EntityListenerType type)
protected java.util.List<java.lang.String> getDeclaredListeners(java.lang.Class<? extends Entity> entityClass)