X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2FPostBuilder.java;h=775378c87e897dfbcc75f83f921f414cbc5f4d22;hb=b72418365155d4c0dd89215c5aeff27feeae68dd;hp=449147a32ece51042a15bf2275b467f87c2fbe8f;hpb=6e9a43ccd93ae125720547c0fe421dc81a54ba90;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/database/PostBuilder.java b/src/main/java/net/pterodactylus/sone/database/PostBuilder.java index 449147a..775378c 100644 --- a/src/main/java/net/pterodactylus/sone/database/PostBuilder.java +++ b/src/main/java/net/pterodactylus/sone/database/PostBuilder.java @@ -20,6 +20,8 @@ package net.pterodactylus.sone.database; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.Sone; +import com.google.common.base.Optional; + /** * Builder for {@link Post} objects. *

@@ -43,34 +45,6 @@ import net.pterodactylus.sone.data.Sone; public interface PostBuilder { /** - * Copies all attributes of the given post to this post builder. - * - * @param post - * The post whose attributes to copy into this builder - * @return This builder - * @throws NullPointerException - * if {@code post} is {@code null} - */ - public PostBuilder copyPost(Post post) throws NullPointerException; - - /** - * Configures this builder to use the given Sone as sender of the new post. - * - * @param senderId - * The ID of the sender of the post - * @return This post builder - */ - public PostBuilder from(String senderId); - - /** - * Configures this builder to use a random ID for the new post. If this - * method is used, {@link #withId(String)} must not be used. - * - * @return This post builder - */ - public PostBuilder randomId(); - - /** * Configures this builder to use the given ID as ID for the new post. If * this method is used, {@link #randomId()} must not be used. * @@ -81,14 +55,6 @@ public interface PostBuilder { public PostBuilder withId(String id); /** - * Configures this builder to use the current time when creating the post. - * If this method is used, {@link #withTime(long)} must not be used. - * - * @return This post builder - */ - public PostBuilder currentTime(); - - /** * Configures the builder to use the given time as time for the new post. If * this method is used, {@link #currentTime()} must not be used. * @@ -115,7 +81,7 @@ public interface PostBuilder { * The ID of the recipient of the post * @return This post builder */ - public PostBuilder to(String recipientId); + public PostBuilder to(Optional recipientId); /** * Verifies this builder’s configuration and creates a new post. @@ -139,6 +105,12 @@ public interface PostBuilder { * @throws IllegalStateException * if this builder’s configuration is not valid */ - public Post build() throws IllegalStateException; + public Post build(Optional postCreated) throws IllegalStateException; + + interface PostCreated { + + void postCreated(Post post); + + } }