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 / BaseEntity.java
diff --git a/src/it/hmp-testclasses-annotationscanning/src/main/java/net/java/examples/hmp/model/domain/BaseEntity.java b/src/it/hmp-testclasses-annotationscanning/src/main/java/net/java/examples/hmp/model/domain/BaseEntity.java
new file mode 100644 (file)
index 0000000..6d64c37
--- /dev/null
@@ -0,0 +1,61 @@
+package net.java.examples.hmp.model.domain;\r
+\r
+import java.io.Serializable;\r
+\r
+import org.hibernate.proxy.HibernateProxy;\r
+\r
+public abstract class BaseEntity<T extends Serializable> implements IBaseEntity<T>, Serializable {\r
+\r
+    private static final long serialVersionUID = -5828097391861473323L;\r
+\r
+    /**\r
+     * {@inheritDoc}\r
+     */\r
+    @Override\r
+    public int hashCode() {\r
+        int result;\r
+        if (getId() == null) {\r
+            result = super.hashCode();\r
+        } else {\r
+            final int prime = 31;\r
+            result = 1;\r
+            result = prime * result + ((getId() == null) ? 0 : getId().hashCode());\r
+        }\r
+        return result;\r
+    }\r
+\r
+    @Override\r
+    public boolean equals(final Object obj) {\r
+        if (this == obj) {\r
+            return true;\r
+        }\r
+        if (obj == null) {\r
+            return false;\r
+        }\r
+\r
+        Class<?> otherClass = null;\r
+        if (obj instanceof HibernateProxy) {\r
+            otherClass = ((HibernateProxy) obj).getHibernateLazyInitializer().getPersistentClass();\r
+        } else {\r
+            otherClass = obj.getClass();\r
+        }\r
+        if (getClass() != otherClass) {\r
+            return false;\r
+        }\r
+\r
+        return compareEqualityWithThisInstance((BaseEntity<?>) obj);\r
+    }\r
+\r
+    private boolean compareEqualityWithThisInstance(BaseEntity<?> otherEntity) {\r
+        if (getId() != null) {\r
+            return getId().equals(otherEntity.getId());\r
+        }\r
+\r
+        return false;\r
+    }\r
+\r
+    @Override\r
+    public String toString() {\r
+        return this.getClass().getName() + "[id=" + getId() + "]";\r
+    }\r
+}\r