Rework the text parser.
[Sone.git] / src / main / java / net / pterodactylus / sone / text / SonePart.java
index 475c091..23d9fc3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - SoneLinkPart.java - Copyright © 2011–2012 David Roden
+ * Sone - SonePart.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 com.google.common.base.Objects.hashCode;
+import static net.pterodactylus.sone.template.SoneAccessor.getNiceName;
+
 import net.pterodactylus.sone.data.Sone;
+import net.pterodactylus.sone.template.SoneAccessor;
+
+import com.google.common.base.Objects;
 
 /**
  * {@link Part} implementation that stores a reference to a {@link Sone}.
@@ -43,6 +50,16 @@ public class SonePart implements Part {
        // ACCESSORS
        //
 
+       @Override
+       public boolean isPlainText() {
+               return false;
+       }
+
+       @Override
+       public boolean isFreenetLink() {
+               return false;
+       }
+
        /**
         * Returns the referenced Sone.
         *
@@ -52,4 +69,27 @@ public class SonePart implements Part {
                return sone;
        }
 
+       //
+       // PART METHODS
+       //
+
+       @Override
+       public String getText() {
+               return getNiceName(sone);
+       }
+
+       @Override
+       public int hashCode() {
+               return Objects.hashCode(sone);
+       }
+
+       @Override
+       public boolean equals(Object object) {
+               if (!(object instanceof SonePart)) {
+                       return false;
+               }
+               SonePart sonePart = (SonePart) object;
+               return equal(getSone(), sonePart.getSone());
+       }
+
 }