Laszlo Hornyak has uploaded a new change for review.

Change subject: engine: hashcode method simplification
......................................................................

engine: hashcode method simplification

- Adds a utility method to calculate hashcode of an object that may be
  null.
- Adds a hashcode builder similar to the one in commons lang, this
  hashcode builder is used as an utility class to calculate hashcode.

Change-Id: I15afc6227f2a4d67befbdfe67b8c42b381308228
Signed-off-by: Laszlo Hornyak <lhorn...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/HashCodeBuilder.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ObjectUtils.java
3 files changed, 53 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/14386/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
index 7e06da9..2c46415 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
@@ -2,6 +2,7 @@
 
 import java.math.BigDecimal;
 
+import org.ovirt.engine.core.common.utils.HashCodeBuilder;
 import org.ovirt.engine.core.common.utils.ObjectUtils;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -48,23 +49,22 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((id == null) ? 0 : id.hashCode());
-        result = prime * result + ((cpu_idle == null) ? 0 : 
cpu_idle.hashCode());
-        result = prime * result + ((cpu_load == null) ? 0 : 
cpu_load.hashCode());
-        result = prime * result + ((cpu_sys == null) ? 0 : cpu_sys.hashCode());
-        result = prime * result + ((cpu_user == null) ? 0 : 
cpu_user.hashCode());
-        result = prime * result + ((mem_available == null) ? 0 : 
mem_available.hashCode());
-        result = prime * result + ((mem_shared == null) ? 0 : 
mem_shared.hashCode());
-        result = prime * result + ((usage_cpu_percent == null) ? 0 : 
usage_cpu_percent.hashCode());
-        result = prime * result + ((usage_network_percent == null) ? 0 : 
usage_network_percent.hashCode());
-        result = prime * result + ((ksm_state == null) ? 0 : 
ksm_state.hashCode());
-        result = prime * result + ((ksm_pages == null) ? 0 : 
ksm_pages.hashCode());
-        result = prime * result + ((ksm_cpu_percent == null) ? 0 : 
ksm_cpu_percent.hashCode());
-        result = prime * result + ((swap_total == null) ? 0 : 
swap_total.hashCode());
-        result = prime * result + ((swap_free == null) ? 0 : 
swap_free.hashCode());
-        return result;
+        return new HashCodeBuilder()
+                .append(id)
+                .append(cpu_idle)
+                .append(cpu_load)
+                .append(cpu_sys)
+                .append(cpu_user)
+                .append(mem_available)
+                .append(mem_shared)
+                .append(usage_cpu_percent)
+                .append(usage_network_percent)
+                .append(ksm_state)
+                .append(ksm_pages)
+                .append(ksm_cpu_percent)
+                .append(swap_total)
+                .append(swap_free)
+                .result();
     }
 
     @Override
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/HashCodeBuilder.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/HashCodeBuilder.java
new file mode 100644
index 0000000..0ba77b4
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/HashCodeBuilder.java
@@ -0,0 +1,28 @@
+package org.ovirt.engine.core.common.utils;
+
+public class HashCodeBuilder {
+    public HashCodeBuilder(final int prime) {
+        super();
+        this.prime = prime;
+    }
+
+    public HashCodeBuilder() {
+        this(31);
+    }
+
+    final int prime;
+    int result = 1;
+
+    public HashCodeBuilder append(Object obj) {
+        return append(ObjectUtils.hashCode(obj));
+    }
+
+    public HashCodeBuilder append(int val) {
+        result = prime * result + val;
+        return this;
+    }
+
+    public int result() {
+        return result;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ObjectUtils.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ObjectUtils.java
index 5ccc7ee..e70da2e 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ObjectUtils.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ObjectUtils.java
@@ -22,4 +22,12 @@
         return bd1 == bd2 || bd1 != null && bd2 != null && bd1.compareTo(bd2) 
== 0;
     }
 
+    public static int hashCode(Object obj) {
+        if(obj == null) {
+            return 0;
+        } else {
+            return obj.hashCode();
+        }
+    }
+
 }


--
To view, visit http://gerrit.ovirt.org/14386
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I15afc6227f2a4d67befbdfe67b8c42b381308228
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Laszlo Hornyak <lhorn...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to