Fixed a bug in getRootTaxa(). Upon passing null as the starting rank it returned...
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / persistence / hibernate / SaveEntityListener.java
1 package eu.etaxonomy.cdm.persistence.hibernate;
2
3 import org.apache.log4j.Logger;
4 import org.hibernate.HibernateException;
5 import org.hibernate.event.SaveOrUpdateEvent;
6 import org.hibernate.event.SaveOrUpdateEventListener;
7 import org.joda.time.DateTime;
8 import org.springframework.security.Authentication;
9 import org.springframework.security.context.SecurityContextHolder;
10
11 import eu.etaxonomy.cdm.model.common.ICdmBase;
12 import eu.etaxonomy.cdm.model.common.User;
13
14 public class SaveEntityListener implements SaveOrUpdateEventListener {
15 private static final long serialVersionUID = -4295612947856041686L;
16 @SuppressWarnings("unused")
17 private static final Logger logger = Logger.getLogger(SaveEntityListener.class);
18
19 public void onSaveOrUpdate(SaveOrUpdateEvent event)
20 throws HibernateException {
21 Object entity = event.getObject();
22 if (entity != null){
23 Class<?> entityClazz = entity.getClass();
24 if(ICdmBase.class.isAssignableFrom(entityClazz)) {
25 ICdmBase cdmBase = (ICdmBase)entity;
26 cdmBase.setCreated(new DateTime());
27 Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
28 if(authentication != null && authentication.getPrincipal() != null && authentication.getPrincipal() instanceof User) {
29 User user = (User)authentication.getPrincipal();
30 cdmBase.setCreatedBy(user);
31 }
32 }
33
34 }
35 }
36 }