Rename post and reply implementations; use builder to create replies.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / impl / DefaultPostBuilder.java
index bf1c1e7..0d4c71c 100644 (file)
 
 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 net.pterodactylus.sone.database.SoneProvider;
+
+import com.google.common.base.Optional;
 
 /**
- * {@link PostBuilder} implementation that creates {@link PostImpl} objects.
+ * {@link PostBuilder} implementation that creates {@link DefaultPost} objects.
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 public class DefaultPostBuilder extends AbstractPostBuilder {
 
-       private final SoneProvider soneProvider;
-
        /**
         * Creates a new post builder.
         *
-        * @param soneProvider
-        *              The Sone provider
+        * @param database
         */
-       public DefaultPostBuilder(SoneProvider soneProvider) {
-               this.soneProvider = soneProvider;
+       public DefaultPostBuilder(Database database, String soneId) {
+               super(database, soneId);
        }
 
        /** {@inheritDoc} */
        @Override
-       public Post build() {
+       public Post build(Optional<PostCreated> postCreated) {
                validate();
-               return new PostImpl(soneProvider, randomId ? UUID.randomUUID().toString() : id, senderId, recipientId, currentTime ? System.currentTimeMillis() : time, text);
+               DefaultPost post = new DefaultPost(database, getId(), senderId, recipientId.orNull(), getTime(), text);
+               if (postCreated.isPresent()) {
+                       postCreated.get().postCreated(post);
+               }
+               return post;
        }
 
 }