1 package net.java.examples.hmp.model.domain.callback;
\r
3 import java.util.Date;
\r
5 import javax.persistence.PrePersist;
\r
6 import javax.persistence.PreUpdate;
\r
8 import org.slf4j.Logger;
\r
9 import org.slf4j.LoggerFactory;
\r
11 import net.java.examples.hmp.model.domain.extension.IUserChangeInfo;
\r
12 import net.java.examples.hmp.model.domain.extension.IUserChangeTrackable;
\r
14 public class UserChangeTrackListener {
\r
16 public static final String DEFAULT_USER_NAME = "System";
\r
18 private static final Logger LOG = LoggerFactory.getLogger(UserChangeTrackListener.class);
\r
21 protected void preUpdate(IUserChangeTrackable userChangeTrackable) {
\r
22 IUserChangeInfo userChangeInfo = userChangeTrackable.getUserChangeInfo();
\r
24 if (userChangeInfo == null) {
\r
25 LOG.warn("IUserChangeInfo of entity {} is null, no change tracking possible.", userChangeTrackable);
\r
29 userChangeInfo.setChangeDate(new Date());
\r
30 userChangeInfo.setChangeUser(getCurrentUser());
\r
32 if (LOG.isTraceEnabled()) {
\r
33 LOG.trace("onPreUpdate objectType={}, userChangeInfo={}", userChangeTrackable.getClass().getName(), userChangeInfo.toString());
\r
38 protected void prePersist(IUserChangeTrackable userChangeTrackable) {
\r
39 IUserChangeInfo userChangeInfo = userChangeTrackable.getUserChangeInfo();
\r
41 userChangeInfo.setCreateDate(new Date());
\r
42 userChangeInfo.setChangeDate(userChangeInfo.getCreateDate());
\r
43 userChangeInfo.setCreateUser(getCurrentUser());
\r
44 userChangeInfo.setChangeUser(userChangeInfo.getCreateUser());
\r
46 if (LOG.isTraceEnabled()) {
\r
47 LOG.trace("onPrePersist objectType={}, userChangeInfo={}", userChangeTrackable.getClass().getName(), userChangeInfo.toString());
\r
52 * Real methodcode replaced with example-code.
\r
54 * @return Always displays the same constant string
\r
56 protected String getCurrentUser() {
\r
58 return DEFAULT_USER_NAME;
\r