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