@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)