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;
//
@Override
+ public boolean isKnown() {
+ return database.isPostReplyKnown(this);
+ }
+
+ @Override
public String getPostId() {
return postId;
}
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<Sone> getLikes() {
+ return database.getLikes(this);
+ }
+
+ @Override
+ public Modifier<PostReply> modify() {
+ return new Modifier<PostReply>() {
+ private boolean known = isKnown();
+
+ @Override
+ public Modifier<PostReply> setKnown() {
+ known = true;
+ return this;
+ }
+
+ @Override
+ public PostReply update(Optional<ReplyUpdated<PostReply>> replyUpdated) {
+ if (known) {
+ database.setPostReplyKnown(DefaultPostReply.this);
+ }
+ if (replyUpdated.isPresent()) {
+ replyUpdated.get().replyUpdated(DefaultPostReply.this);
+ }
+ return DefaultPostReply.this;
+ }
+ };
+ }
+
}