Move reply like functionality from Sone to Reply.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / impl / DefaultPostReply.java
index 705586b..5af6f42 100644 (file)
 
 package net.pterodactylus.sone.data.impl;
 
+import java.util.Set;
+
 import net.pterodactylus.sone.data.Post;
 import net.pterodactylus.sone.data.PostReply;
+import net.pterodactylus.sone.data.Sone;
 import net.pterodactylus.sone.database.Database;
 
 import com.google.common.base.Optional;
@@ -73,6 +76,26 @@ public class DefaultPostReply extends DefaultReply<PostReply> implements PostRep
        }
 
        @Override
+       public void like(Sone localSone) {
+               database.likePostReply(this, localSone);
+       }
+
+       @Override
+       public void unlike(Sone localSone) {
+               database.unlikePostReply(this, localSone);
+       }
+
+       @Override
+       public boolean isLiked(Sone sone) {
+               return database.isLiked(this, sone);
+       }
+
+       @Override
+       public Set<Sone> getLikes() {
+               return database.getLikes(this);
+       }
+
+       @Override
        public Modifier<PostReply> modify() {
                return new Modifier<PostReply>() {
                        private boolean known = isKnown();
@@ -84,10 +107,13 @@ public class DefaultPostReply extends DefaultReply<PostReply> implements PostRep
                        }
 
                        @Override
-                       public PostReply update() {
+                       public PostReply update(Optional<ReplyUpdated<PostReply>> replyUpdated) {
                                if (known) {
                                        database.setPostReplyKnown(DefaultPostReply.this);
                                }
+                               if (replyUpdated.isPresent()) {
+                                       replyUpdated.get().replyUpdated(DefaultPostReply.this);
+                               }
                                return DefaultPostReply.this;
                        }
                };