Rework the text parser.
[Sone.git] / src / main / java / net / pterodactylus / sone / text / FreenetLinkPart.java
index be3aef9..feb8353 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - FreenetLinkPart.java - Copyright © 2011 David Roden
+ * Sone - FreenetLinkPart.java - Copyright © 2011–2013 David Roden
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 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,28 @@ public class FreenetLinkPart extends LinkPart {
                return trusted;
        }
 
+       @Override
+       public boolean isFreenetLink() {
+               return true;
+       }
+
+       @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());
+       }
+
 }