X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fnotify%2FListNotification.java;h=cf658bd268df005caa395029642a0f3608d4ec51;hp=3a79c93ef35a0f53f45db1920dc60a2dda44949f;hb=10340e6f541b0e5082512607904f2db61e0b2bf4;hpb=99202fc71976dda021446626a0147431e419299e diff --git a/src/main/java/net/pterodactylus/sone/notify/ListNotification.java b/src/main/java/net/pterodactylus/sone/notify/ListNotification.java index 3a79c93..cf658bd 100644 --- a/src/main/java/net/pterodactylus/sone/notify/ListNotification.java +++ b/src/main/java/net/pterodactylus/sone/notify/ListNotification.java @@ -110,6 +110,7 @@ public class ListNotification extends TemplateNotification { public void setElements(Collection elements) { this.elements.clear(); this.elements.addAll(elements); + touch(); } /** @@ -160,4 +161,46 @@ public class ListNotification extends TemplateNotification { elements.clear(); } + // + // OBJECT METHODS + // + + /** + * {@inheritDoc} + */ + @Override + public int hashCode() { + int hashCode = super.hashCode(); + for (T element : elements) { + hashCode ^= element.hashCode(); + } + return hashCode; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object object) { + if (!(object instanceof ListNotification)) { + return false; + } + ListNotification listNotification = (ListNotification) object; + if (!super.equals(listNotification)) { + return false; + } + if (!key.equals(listNotification.key)) { + return false; + } + if (elements.size() != listNotification.elements.size()) { + return false; + } + for (int index = 0; index < elements.size(); ++index) { + if (!elements.get(index).equals(listNotification.elements.get(index))) { + return false; + } + } + return true; + } + }