Fixed bug with directories, that should be scanned for annotations
[hibernate4-maven-plugin] / src / it / hmp-testclasses-annotationscanning / src / main / java / net / java / examples / hmp / model / domain / callback / UserChangeTrackListener.java
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 (file)
index 0000000..5553284
--- /dev/null
@@ -0,0 +1,60 @@
+package net.java.examples.hmp.model.domain.callback;\r
+\r
+import java.util.Date;\r
+\r
+import javax.persistence.PrePersist;\r
+import javax.persistence.PreUpdate;\r
+\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+import net.java.examples.hmp.model.domain.extension.IUserChangeInfo;\r
+import net.java.examples.hmp.model.domain.extension.IUserChangeTrackable;\r
+\r
+public class UserChangeTrackListener {\r
+\r
+    public static final String DEFAULT_USER_NAME = "System";\r
+\r
+    private static final Logger LOG = LoggerFactory.getLogger(UserChangeTrackListener.class);\r
+\r
+    @PreUpdate\r
+    protected void preUpdate(IUserChangeTrackable userChangeTrackable) {\r
+        IUserChangeInfo userChangeInfo = userChangeTrackable.getUserChangeInfo();\r
+\r
+        if (userChangeInfo == null) {\r
+            LOG.warn("IUserChangeInfo of entity {} is null, no change tracking possible.", userChangeTrackable);\r
+            return;\r
+        }\r
+\r
+        userChangeInfo.setChangeDate(new Date());\r
+        userChangeInfo.setChangeUser(getCurrentUser());\r
+\r
+        if (LOG.isTraceEnabled()) {\r
+            LOG.trace("onPreUpdate objectType={}, userChangeInfo={}", userChangeTrackable.getClass().getName(), userChangeInfo.toString());\r
+        }\r
+    }\r
+\r
+    @PrePersist\r
+    protected void prePersist(IUserChangeTrackable userChangeTrackable) {\r
+        IUserChangeInfo userChangeInfo = userChangeTrackable.getUserChangeInfo();\r
+\r
+        userChangeInfo.setCreateDate(new Date());\r
+        userChangeInfo.setChangeDate(userChangeInfo.getCreateDate());\r
+        userChangeInfo.setCreateUser(getCurrentUser());\r
+        userChangeInfo.setChangeUser(userChangeInfo.getCreateUser());\r
+\r
+        if (LOG.isTraceEnabled()) {\r
+            LOG.trace("onPrePersist objectType={}, userChangeInfo={}", userChangeTrackable.getClass().getName(), userChangeInfo.toString());\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Real methodcode replaced with example-code.\r
+     * \r
+     * @return Always displays the same constant string\r
+     */\r
+    protected String getCurrentUser() {\r
+\r
+        return DEFAULT_USER_NAME;\r
+    }\r
+}\r