X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FDefaultPostReply.java;h=5af6f42b050f743d8c7b6763b61dce67149a9469;hb=0a4b6fc252003c71f4bdef09560e87982838d9c8;hp=6c08106b8d71ed6a25178f41a056566cff04456c;hpb=8d5dcab8d96af52241aaf425440680806c5e20d3;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/impl/DefaultPostReply.java b/src/main/java/net/pterodactylus/sone/data/impl/DefaultPostReply.java index 6c08106..5af6f42 100644 --- a/src/main/java/net/pterodactylus/sone/data/impl/DefaultPostReply.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/DefaultPostReply.java @@ -17,8 +17,11 @@ 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; @@ -57,16 +60,63 @@ public class DefaultPostReply extends DefaultReply implements PostRep // ACCESSORS // - /** {@inheritDocs} */ + @Override + public boolean isKnown() { + return database.isPostReplyKnown(this); + } + @Override public String getPostId() { return postId; } - /** {@inheritDoc} */ @Override public Optional getPost() { return database.getPost(postId); } + @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 getLikes() { + return database.getLikes(this); + } + + @Override + public Modifier modify() { + return new Modifier() { + private boolean known = isKnown(); + + @Override + public Modifier setKnown() { + known = true; + return this; + } + + @Override + public PostReply update(Optional> replyUpdated) { + if (known) { + database.setPostReplyKnown(DefaultPostReply.this); + } + if (replyUpdated.isPresent()) { + replyUpdated.get().replyUpdated(DefaultPostReply.this); + } + return DefaultPostReply.this; + } + }; + } + }