+ this(Clock.systemUTC(), success, empty, exception);
+ }
+
+ /**
+ * Creates a new state.
+ *
+ * @param clock The clock for generating {@link #time}
+ * @param success {@code true} if the state is successful, {@code false}
+ * otherwise
+ * @param exception The exception that occured while retrieving the state
+ */
+ protected AbstractState(Clock clock, boolean success, boolean empty, Throwable exception) {
+ this.time = clock.millis();