X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FPostReplyBuilderImpl.java;h=5c7f49466c4c9c947a5403384fe9151824165113;hb=550219212ea7809a6575b9d6bbe81030cb6f8618;hp=18ce2005f321fcb4da587ca219fdf423c6fc4e0a;hpb=8503021c00d63885288c507d9930fefabd5d7678;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/impl/PostReplyBuilderImpl.java b/src/main/java/net/pterodactylus/sone/data/impl/PostReplyBuilderImpl.java index 18ce200..5c7f494 100644 --- a/src/main/java/net/pterodactylus/sone/data/impl/PostReplyBuilderImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/PostReplyBuilderImpl.java @@ -17,15 +17,9 @@ package net.pterodactylus.sone.data.impl; -import static com.google.common.base.Preconditions.checkState; - -import java.util.UUID; - -import net.pterodactylus.sone.core.PostProvider; import net.pterodactylus.sone.data.PostReply; -import net.pterodactylus.sone.data.PostReplyBuilder; - -import org.apache.commons.lang.StringUtils; +import net.pterodactylus.sone.database.Database; +import net.pterodactylus.sone.database.PostReplyBuilder; /** * {@link PostReplyBuilder} implementation that creates {@link PostReplyImpl} @@ -33,31 +27,12 @@ import org.apache.commons.lang.StringUtils; * * @author David ‘Bombe’ Roden */ -public class PostReplyBuilderImpl extends AbstractReplyBuilder implements PostReplyBuilder { - - /** The post builder. */ - private final PostProvider postProvider; +public class PostReplyBuilderImpl extends AbstractPostReplyBuilder { - /** The ID of the post the created reply refers to. */ - private String postId; + private final Database database; - /** - * Creates a new post reply builder. - * - * @param postProvider - * The post provider - */ - public PostReplyBuilderImpl(PostProvider postProvider) { - this.postProvider = postProvider; - } - - /** - * {@inheritDoc} - */ - @Override - public PostReplyBuilder to(String postId) { - this.postId = postId; - return this; + public PostReplyBuilderImpl(Database database) { + this.database = database; } /** @@ -65,18 +40,10 @@ public class PostReplyBuilderImpl extends AbstractReplyBuilder */ @Override public PostReply build() { - checkState((randomId && (id == null)) || (!randomId && (id != null)), "either random ID nor custom ID must be set"); - checkState(sender != null, "sender must not be null"); - checkState((currentTime && (time == 0)) || (!currentTime && (time >= 0)), "either current time or custom time must be set"); - checkState(!StringUtils.isBlank(text), "text must not be empty"); - checkState(postId != null, "post must not be null"); + validate(); /* create new post reply. */ - PostReplyImpl postReplyImpl = new PostReplyImpl(postProvider, randomId ? UUID.randomUUID().toString() : id); - postReplyImpl.setSone(sender); - postReplyImpl.setPost(postId); - postReplyImpl.setTime(currentTime ? System.currentTimeMillis() : time); - postReplyImpl.setText(text); - return postReplyImpl; + return new PostReplyImpl(database, getId(), senderId, getTime(), text, postId); } + }