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;
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;
*/
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;
// ACCESSORS
//
- /**
- * {@inheritDoc}
- */
@Override
public String getId() {
- return id.toString();
+ return id;
}
- /**
- * {@inheritDoc}
- */
@Override
public Sone getSone() {
return database.getSone(soneId).get();
}
- /**
- * {@inheritDocs}
- */
@Override
public Optional<String> getRecipientId() {
return Optional.fromNullable(recipientId);
}
- /**
- * {@inheritDoc}
- */
@Override
public Optional<Sone> getRecipient() {
return database.getSone(recipientId);
}
- /**
- * {@inheritDoc}
- */
@Override
public long getTime() {
return time;
}
- /**
- * {@inheritDoc}
- */
@Override
public String getText() {
return text;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean isKnown() {
return known;
}
- /**
- * {@inheritDoc}
- */
@Override
public DefaultPost setKnown(boolean known) {
this.known = known;
return this;
}
+ @Override
+ public List<PostReply> getReplies() {
+ return from(database.getReplies(getId())).toSortedList(Reply.TIME_COMPARATOR);
+ }
+
//
// OBJECT METHODS
//
- /**
- * {@inheritDoc}
- */
@Override
public int hashCode() {
return id.hashCode();
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean equals(Object object) {
if (!(object instanceof DefaultPost)) {
return post.id.equals(id);
}
- /**
- * {@inheritDoc}
- */
@Override
public String toString() {
return String.format("%s[id=%s,sone=%s,recipient=%s,time=%d,text=%s]", getClass().getName(), id, soneId, recipientId, time, text);