@Component(value="data_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 org.springframework.beans.factory.BeanFactory |
beanFactory |
protected java.util.Map<EntityListenerManager.Key,java.util.List> |
cache |
protected java.util.Map<java.lang.Class<?>,java.util.Set<java.lang.String>> |
dynamicListeners |
protected boolean |
enabled |
protected java.util.concurrent.locks.ReadWriteLock |
lock |
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<?> entityClass,
java.lang.Class<?> listenerClass)
Register an entity listener by its class.
|
void |
addListener(java.lang.Class<?> 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<?> entityClass,
EntityListenerType type) |
void |
fireListener(java.lang.Object entity,
EntityListenerType type,
java.lang.String storeName) |
protected java.util.List<java.lang.String> |
getDeclaredListeners(java.lang.Class<?> entityClass) |
protected java.util.List<?> |
getListener(java.lang.Class<?> entityClass,
EntityListenerType type) |
protected void |
logExecution(EntityListenerType type,
java.lang.Object entity) |
void |
removeListener(java.lang.Class<?> entityClass,
java.lang.Class<?> listenerClass)
Unregister an entity listener.
|
void |
removeListener(java.lang.Class<?> entityClass,
java.lang.String listenerBeanName)
Unregister an entity listener.
|
@Autowired protected org.springframework.beans.factory.BeanFactory beanFactory
protected java.util.Map<EntityListenerManager.Key,java.util.List> cache
protected java.util.Map<java.lang.Class<?>,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<?> entityClass, java.lang.Class<?> listenerClass)
entityClass
- entitylistenerClass
- listener classpublic void removeListener(java.lang.Class<?> entityClass, java.lang.Class<?> listenerClass)
entityClass
- entitylistenerClass
- listener classpublic void addListener(java.lang.Class<?> entityClass, java.lang.String listenerBeanName)
entityClass
- entitylistenerBeanName
- listener bean namepublic void removeListener(java.lang.Class<?> entityClass, java.lang.String listenerBeanName)
entityClass
- entitylistenerBeanName
- listener bean namepublic void fireListener(java.lang.Object entity, EntityListenerType type, java.lang.String storeName)
public void enable(boolean enable)
protected void logExecution(EntityListenerType type, java.lang.Object entity)
protected java.util.List<?> getListener(java.lang.Class<?> entityClass, EntityListenerType type)
protected java.util.List<?> findListener(java.lang.Class<?> entityClass, EntityListenerType type)
protected java.util.List<java.lang.String> getDeclaredListeners(java.lang.Class<?> entityClass)