Override Object methods.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 8 Nov 2013 17:45:28 +0000 (18:45 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 28 Feb 2014 21:25:55 +0000 (22:25 +0100)
src/main/java/net/pterodactylus/sone/text/FreenetLinkPart.java

index c667f38..c606149 100644 (file)
 
 package net.pterodactylus.sone.text;
 
+import static com.google.common.base.Objects.equal;
+import static java.lang.String.format;
+
+import com.google.common.base.Objects;
+
 /**
  * {@link LinkPart} implementation that stores an additional attribute: if the
  * link is an SSK or USK link and the post was created by an identity that owns
@@ -73,4 +78,23 @@ public class FreenetLinkPart extends LinkPart {
                return trusted;
        }
 
+       @Override
+       public int hashCode() {
+               return (getLink().hashCode() << 16) ^ (getText().hashCode() << 8 ) ^ getTitle().hashCode() ^ (isTrusted() ? -1 : 0);
+       }
+
+       @Override
+       public boolean equals(Object object) {
+               if (!(object instanceof FreenetLinkPart)) {
+                       return false;
+               }
+               FreenetLinkPart freenetLinkPart = (FreenetLinkPart) object;
+               return equal(getLink(), freenetLinkPart.getLink()) && equal(getText(), freenetLinkPart.getText()) && equal(getTitle(), freenetLinkPart.getTitle()) && (isTrusted() == freenetLinkPart.isTrusted());
+       }
+
+       @Override
+       public String toString() {
+               return format("FreenetLink(link=%s, text=%s, title=%s, trusted=%s)", getLink(), getText(), getTitle(), isTrusted());
+       }
+
 }