// ACCESSORS
//
- /** {@inheritDocs} */
+ @Override
+ public boolean isKnown() {
+ return database.isPostReplyKnown(this);
+ }
+
@Override
public String getPostId() {
return postId;
}
- /** {@inheritDoc} */
@Override
public Optional<Post> getPost() {
return database.getPost(postId);
}
+ @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;
+ }
+ };
+ }
+
}