package net.pterodactylus.sone.data.impl;
-import java.util.UUID;
-
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.database.Database;
import net.pterodactylus.sone.database.PostBuilder;
+import com.google.common.base.Optional;
+
/**
* {@link PostBuilder} implementation that creates {@link PostImpl} objects.
*
*/
public class DefaultPostBuilder extends AbstractPostBuilder {
- private final Database database;
-
/**
* Creates a new post builder.
*
* @param database
*/
- public DefaultPostBuilder(Database database) {
- this.database = database;
+ public DefaultPostBuilder(Database database, String soneId) {
+ super(database, soneId);
}
/** {@inheritDoc} */
@Override
- public Post build() {
+ public Post build(Optional<PostCreated> postCreated) {
validate();
- return new PostImpl(database, randomId ? UUID.randomUUID().toString() : id, senderId, recipientId, currentTime ? System.currentTimeMillis() : time, text);
+ PostImpl post = new PostImpl(database, getId(), senderId, recipientId.orNull(), getTime(), text);
+ if (postCreated.isPresent()) {
+ postCreated.get().postCreated(post);
+ }
+ return post;
}
}