package com.ctp.cdi.query.audit;
import java.util.Set;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import org.jboss.solder.beanManager.BeanManagerLocator;
public class AuditEntityListener {
@PrePersist
public void persist(Object entity) {
BeanManager beanManager = new BeanManagerLocator().getBeanManager();
Set<Bean<?>> beans = beanManager.getBeans(PrePersistAuditListener.class);
for (Bean<?> bean : beans) {
PrePersistAuditListener result = (PrePersistAuditListener) beanManager.getReference(
bean, PrePersistAuditListener.class, beanManager.createCreationalContext(bean));
result.prePersist(entity);
}
}
@PreUpdate
public void update(Object entity) {
BeanManager beanManager = new BeanManagerLocator().getBeanManager();
Set<Bean<?>> beans = beanManager.getBeans(PreUpdateAuditListener.class);
for (Bean<?> bean : beans) {
PreUpdateAuditListener result = (PreUpdateAuditListener) beanManager.getReference(
bean, PreUpdateAuditListener.class, beanManager.createCreationalContext(bean));
result.preUpdate(entity);
}
}
}