X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FAbstractReplyBuilder.java;h=10a0a5826b74434b4ee3450fe5c6b3832b910e3c;hb=e80be3f00b1d486fd3995d8f29ce3bf04da7b61d;hp=5c1b97678bb086d54d795cd47af1c823d2392e44;hpb=550219212ea7809a6575b9d6bbe81030cb6f8618;p=Sone.git
diff --git a/src/main/java/net/pterodactylus/sone/data/impl/AbstractReplyBuilder.java b/src/main/java/net/pterodactylus/sone/data/impl/AbstractReplyBuilder.java
index 5c1b976..10a0a58 100644
--- a/src/main/java/net/pterodactylus/sone/data/impl/AbstractReplyBuilder.java
+++ b/src/main/java/net/pterodactylus/sone/data/impl/AbstractReplyBuilder.java
@@ -20,12 +20,14 @@ package net.pterodactylus.sone.data.impl;
import static com.google.common.base.Optional.absent;
import static com.google.common.base.Optional.fromNullable;
import static com.google.common.base.Optional.of;
+import static com.google.common.base.Preconditions.checkState;
import static java.lang.System.currentTimeMillis;
import static java.util.UUID.randomUUID;
import net.pterodactylus.sone.database.ReplyBuilder;
import com.google.common.base.Optional;
+import org.apache.commons.lang.StringUtils;
/**
* Abstract implementation of a {@link ReplyBuilder}.
@@ -34,41 +36,24 @@ import com.google.common.base.Optional;
* The interface implemented and exposed by the builder
* @author David âBombeâ Roden
*/
-public class AbstractReplyBuilder> implements ReplyBuilder {
+public abstract class AbstractReplyBuilder> implements ReplyBuilder {
+ protected final String senderId;
protected Optional id = absent();
-
- /** The sender of the reply. */
- protected String senderId;
-
protected Optional time = absent();
-
- /** The text of the reply. */
protected String text;
- /**
- * {@inheritDoc}
- */
- @Override
- @SuppressWarnings("unchecked")
- public B withId(String id) {
- this.id = fromNullable(id);
- return (B) this;
+ protected AbstractReplyBuilder(String senderId) {
+ this.senderId = senderId;
}
- /**
- * {@inheritDoc}
- */
@Override
@SuppressWarnings("unchecked")
- public B from(String senderId) {
- this.senderId = senderId;
+ public B withId(String id) {
+ this.id = fromNullable(id);
return (B) this;
}
- /**
- * {@inheritDoc}
- */
@Override
@SuppressWarnings("unchecked")
public B withTime(long time) {
@@ -76,9 +61,6 @@ public class AbstractReplyBuilder> implements ReplyBui
return (B) this;
}
- /**
- * {@inheritDoc}
- */
@Override
@SuppressWarnings("unchecked")
public B withText(String text) {
@@ -94,4 +76,15 @@ public class AbstractReplyBuilder> implements ReplyBui
return time.isPresent() ? time.get() : currentTimeMillis();
}
+ /**
+ * Validates the state of this post reply builder.
+ *
+ * @throws IllegalStateException
+ * if the state is not valid for building a new post reply
+ */
+ protected void validate() throws IllegalStateException {
+ checkState(senderId != null, "sender must not be null");
+ checkState(!StringUtils.isBlank(text), "text must not be empty");
+ }
+
}