From d4e205beed04e313360b92fa7fabefca6726f2ec Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Fri, 11 Sep 2020 14:36:11 +0200 Subject: [PATCH] EqualsUtil, HashCode: Add methods for lists --- .../org/jivesoftware/smack/util/EqualsUtil.java | 15 +++++++++++++++ .../org/jivesoftware/smack/util/HashCode.java | 13 +++++++++++++ 2 files changed, 28 insertions(+) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/EqualsUtil.java b/smack-core/src/main/java/org/jivesoftware/smack/util/EqualsUtil.java index 8110358a7..65b185740 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/EqualsUtil.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/EqualsUtil.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smack.util; +import java.util.List; + public final class EqualsUtil { private EqualsUtil() { @@ -244,6 +246,19 @@ public final class EqualsUtil { }); return this; } + + public Builder append(List left, List right) { + nullSafeCompare(left, right, () -> { + if (left.size() != right.size()) { + isEquals = false; + return; + } + for (int i = 0; i < left.size() && isEquals; i++) { + append(left.get(i), right.get(i)); + } + }); + return this; + } } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/HashCode.java b/smack-core/src/main/java/org/jivesoftware/smack/util/HashCode.java index 79065850d..61a36f633 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/HashCode.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/HashCode.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smack.util; +import java.util.List; + public class HashCode { private static final int MULTIPLIER_VALUE = 37; @@ -203,6 +205,17 @@ public class HashCode { return this; } + public Builder append(List list) { + if (list == null) { + applyHash(); + return this; + } + for (O o : list) { + append(o); + } + return this; + } + public int build() { return hashcode; }