Fix checks for ID and time.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 22 Jan 2013 06:57:29 +0000 (07:57 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 23 Jan 2013 22:12:45 +0000 (23:12 +0100)
src/main/java/net/pterodactylus/sone/data/impl/PostBuilderImpl.java

index d407133..967de9d 100644 (file)
@@ -138,11 +138,9 @@ public class PostBuilderImpl implements PostBuilder {
         */
        @Override
        public Post build() {
-               checkState(!randomId && (id == null), "neither random ID or custom ID set");
-               checkState(randomId && (id != null), "both random ID and custom ID set");
+               checkState((randomId && (id == null)) || (!randomId && (id != null)), "exactly one of random ID or custom ID must be set");
                checkState(sender != null, "sender must not be null");
-               checkState(!currentTime && (time == 0), "neither current time or custom time set");
-               checkState(currentTime && (time != 0), "both current time and custom time set");
+               checkState((currentTime && (time == 0)) || (!currentTime && (time > 0)), "one of current time or custom time must be set");
                checkState(!StringUtils.isBlank(text), "text must not be empty");
                checkState((recipient == null) || !recipient.equals(sender), "sender and recipient must not be the same");
                return new PostImpl(randomId ? UUID.randomUUID().toString() : id, sender, currentTime ? System.currentTimeMillis() : time, text).setRecipient(recipient);