X-Git-Url: http://juplo.de/gitweb/?p=hibernate4-maven-plugin;a=blobdiff_plain;f=src%2Fit%2Fhmp-testclasses-annotationscanning%2Fsrc%2Fmain%2Fjava%2Fnet%2Fjava%2Fexamples%2Fhmp%2Fmodel%2Fdomain%2Fcallback%2FUserChangeTrackListener.java;fp=src%2Fit%2Fhmp-testclasses-annotationscanning%2Fsrc%2Fmain%2Fjava%2Fnet%2Fjava%2Fexamples%2Fhmp%2Fmodel%2Fdomain%2Fcallback%2FUserChangeTrackListener.java;h=5553284f37986fbc01fd0b9f22c2cb98ab6e6956;hp=0000000000000000000000000000000000000000;hb=ef0947b306d9515d6af6dbc1fdfd675efcd9eca4;hpb=653ab8054c9232471c3c1192d5074010f378a067;ds=sidebyside diff --git a/src/it/hmp-testclasses-annotationscanning/src/main/java/net/java/examples/hmp/model/domain/callback/UserChangeTrackListener.java b/src/it/hmp-testclasses-annotationscanning/src/main/java/net/java/examples/hmp/model/domain/callback/UserChangeTrackListener.java new file mode 100644 index 00000000..5553284f --- /dev/null +++ b/src/it/hmp-testclasses-annotationscanning/src/main/java/net/java/examples/hmp/model/domain/callback/UserChangeTrackListener.java @@ -0,0 +1,60 @@ +package net.java.examples.hmp.model.domain.callback; + +import java.util.Date; + +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import net.java.examples.hmp.model.domain.extension.IUserChangeInfo; +import net.java.examples.hmp.model.domain.extension.IUserChangeTrackable; + +public class UserChangeTrackListener { + + public static final String DEFAULT_USER_NAME = "System"; + + private static final Logger LOG = LoggerFactory.getLogger(UserChangeTrackListener.class); + + @PreUpdate + protected void preUpdate(IUserChangeTrackable userChangeTrackable) { + IUserChangeInfo userChangeInfo = userChangeTrackable.getUserChangeInfo(); + + if (userChangeInfo == null) { + LOG.warn("IUserChangeInfo of entity {} is null, no change tracking possible.", userChangeTrackable); + return; + } + + userChangeInfo.setChangeDate(new Date()); + userChangeInfo.setChangeUser(getCurrentUser()); + + if (LOG.isTraceEnabled()) { + LOG.trace("onPreUpdate objectType={}, userChangeInfo={}", userChangeTrackable.getClass().getName(), userChangeInfo.toString()); + } + } + + @PrePersist + protected void prePersist(IUserChangeTrackable userChangeTrackable) { + IUserChangeInfo userChangeInfo = userChangeTrackable.getUserChangeInfo(); + + userChangeInfo.setCreateDate(new Date()); + userChangeInfo.setChangeDate(userChangeInfo.getCreateDate()); + userChangeInfo.setCreateUser(getCurrentUser()); + userChangeInfo.setChangeUser(userChangeInfo.getCreateUser()); + + if (LOG.isTraceEnabled()) { + LOG.trace("onPrePersist objectType={}, userChangeInfo={}", userChangeTrackable.getClass().getName(), userChangeInfo.toString()); + } + } + + /** + * Real methodcode replaced with example-code. + * + * @return Always displays the same constant string + */ + protected String getCurrentUser() { + + return DEFAULT_USER_NAME; + } +}