Override hashCode() and equals().
[xudocci.git] / src / main / java / net / pterodactylus / xdcc / data / Pack.java
index 1ec5a09..c41694f 100644 (file)
@@ -17,6 +17,8 @@
 
 package net.pterodactylus.xdcc.data;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 /**
  * A pack is a downloadable file offered by a {@link Bot}.
  *
@@ -44,9 +46,9 @@ public class Pack {
         *              The name of the pack
         */
        public Pack(String id, String size, String name) {
-               this.id = id;
-               this.size = size;
-               this.name = name;
+               this.id = checkNotNull(id, "id must not be null");
+               this.size = checkNotNull(size, "size must not be null");
+               this.name = checkNotNull(name, "name must not be null");
        }
 
        //
@@ -83,4 +85,22 @@ public class Pack {
                return name;
        }
 
+       //
+       // OBJECT METHODS
+       //
+
+       @Override
+       public boolean equals(Object object) {
+               if (!(object instanceof Pack)) {
+                       return false;
+               }
+               Pack pack = (Pack) object;
+               return id().equals(pack.id()) && name().equals(pack.name());
+       }
+
+       @Override
+       public int hashCode() {
+               return id().hashCode() ^ name().hashCode();
+       }
+
 }