From b8f9a4b96f8ebd6c41f9806e1189edefcbf5c490 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 27 Nov 2011 08:26:52 +0100 Subject: Implement correct hashCode() and equals() in EnchantmentLevel --- .../essentials/storage/EnchantmentLevel.java | 33 ++++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/storage/EnchantmentLevel.java b/Essentials/src/com/earth2me/essentials/storage/EnchantmentLevel.java index 0a0299ed3..a664929f3 100644 --- a/Essentials/src/com/earth2me/essentials/storage/EnchantmentLevel.java +++ b/Essentials/src/com/earth2me/essentials/storage/EnchantmentLevel.java @@ -7,9 +7,9 @@ import org.bukkit.enchantments.Enchantment; public class EnchantmentLevel implements Entry { private Enchantment enchantment; - private int level; + private int level; - public EnchantmentLevel(Enchantment enchantment, int level) + public EnchantmentLevel(final Enchantment enchantment, final int level) { this.enchantment = enchantment; this.level = level; @@ -20,7 +20,7 @@ public class EnchantmentLevel implements Entry return enchantment; } - public void setEnchantment(Enchantment enchantment) + public void setEnchantment(final Enchantment enchantment) { this.enchantment = enchantment; } @@ -30,7 +30,7 @@ public class EnchantmentLevel implements Entry return level; } - public void setLevel(int level) + public void setLevel(final int level) { this.level = level; } @@ -48,10 +48,33 @@ public class EnchantmentLevel implements Entry } @Override - public Integer setValue(Integer v) + public Integer setValue(final Integer v) { int t = level; level = v; return t; } + + @Override + public int hashCode() + { + return enchantment.hashCode() ^ level; + } + + @Override + public boolean equals(final Object obj) + { + if (obj instanceof Entry) + { + final Entry entry = (Entry)obj; + if (entry.getKey() instanceof Enchantment + && entry.getValue() instanceof Integer) + { + final Enchantment enchantment = (Enchantment)entry.getKey(); + final Integer level = (Integer)entry.getValue(); + return this.enchantment.equals(enchantment) && this.level == level.intValue(); + } + } + return false; + } } -- cgit v1.2.3