Move unliking a post from Sone to Post.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / impl / DefaultPost.java
index cb8fa2f..fa21e7a 100644 (file)
 
 package net.pterodactylus.sone.data.impl;
 
-import java.util.UUID;
+import static com.google.common.collect.FluentIterable.from;
+
+import java.util.List;
 
 import net.pterodactylus.sone.data.Post;
+import net.pterodactylus.sone.data.PostReply;
+import net.pterodactylus.sone.data.Reply;
 import net.pterodactylus.sone.data.Sone;
 import net.pterodactylus.sone.database.Database;
 
@@ -35,8 +39,8 @@ public class DefaultPost implements Post {
 
        private final Database database;
 
-       /** The GUID of the post. */
-       private final UUID id;
+       /** The ID of the post. */
+       private final String id;
 
        /** The ID of the owning Sone. */
        private final String soneId;
@@ -71,7 +75,7 @@ public class DefaultPost implements Post {
         */
        public DefaultPost(Database database, String id, String soneId, String recipientId, long time, String text) {
                this.database = database;
-               this.id = UUID.fromString(id);
+               this.id = id;
                this.soneId = soneId;
                this.recipientId = recipientId;
                this.time = time;
@@ -84,7 +88,7 @@ public class DefaultPost implements Post {
 
        @Override
        public String getId() {
-               return id.toString();
+               return id;
        }
 
        @Override
@@ -123,6 +127,21 @@ public class DefaultPost implements Post {
                return this;
        }
 
+       @Override
+       public void like(Sone localSone) {
+               database.likePost(this, localSone);
+       }
+
+       @Override
+       public void unlike(Sone localSone) {
+               database.unlikePost(this, localSone);
+       }
+
+       @Override
+       public List<PostReply> getReplies() {
+               return from(database.getReplies(getId())).toSortedList(Reply.TIME_COMPARATOR);
+       }
+
        //
        // OBJECT METHODS
        //