Rework the text parser.
[Sone.git] / src / main / java / net / pterodactylus / sone / text / LinkPart.java
index 202b9db..f516f87 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - LinkPart.java - Copyright © 2011–2012 David Roden
+ * Sone - LinkPart.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
@@ -17,6 +17,8 @@
 
 package net.pterodactylus.sone.text;
 
+import static com.google.common.base.Objects.equal;
+
 /**
  * {@link Part} implementation that can hold a link. A link contains of three
  * attributes: the link itself, the text that is shown instead of the link, and
@@ -85,18 +87,37 @@ public class LinkPart implements Part {
                return title;
        }
 
+       @Override
+       public boolean isPlainText() {
+               return false;
+       }
+
+       @Override
+       public boolean isFreenetLink() {
+               return false;
+       }
+
        //
        // PART METHODS
        //
 
-       /**
-        * Returns the text of this part.
-        *
-        * @return The text of this part
-        */
        @Override
        public String getText() {
                return text;
        }
 
+       @Override
+       public int hashCode() {
+               return getLink().hashCode() ^ (getTitle().hashCode() << 16) ^ getText().hashCode();
+       }
+
+       @Override
+       public boolean equals(Object object) {
+               if (!(object instanceof LinkPart)) {
+                       return false;
+               }
+               LinkPart linkPart = (LinkPart) object;
+               return equal(getLink(), linkPart.getLink()) && equal(getText(), linkPart.getText()) && equal(getTitle(), linkPart.getTitle());
+       }
+
 }