KeyValueServiceCoordinationStore implements CoordinationStore<T> { @VisibleForTesting Optional<T> getValue(long sequenceNumber) { Preconditions.checkState( sequenceNumber > 0, "Only positive sequence numbers are supported, but found %s", sequenceNumber); return readFromCoordinationTable(getCellForSequence(sequenceNumber)) .map(Value::getContents) .map(this::deserializeValue); } @VisibleForTesting  KeyValueServiceCoordinationStore(
            ObjectMapper objectMapper,
            KeyValueService kvs,
            byte[] coordinationRow,
            LongSupplier sequenceNumberSupplier,
            BiPredicate<T, T> shouldReuseExtantValue,
            Class<T> clazz); static CoordinationStore<T> create(
            ObjectMapper objectMapper,
            KeyValueService kvs,
            byte[] coordinationRow,
            LongSupplier sequenceNumberSupplier,
            BiPredicate<T, T> shouldReuseExistingValue,
            Class<T> clazz,
            boolean initializeAsync); @Override boolean isInitialized(); @Override Optional<ValueAndBound<T>> getAgreedValue(); @Override CheckAndSetResult<ValueAndBound<T>> transformAgreedValue(Function<ValueAndBound<T>, T> transform);  }
@Test public void throwsIfAttemptingToGetAtNegativeSequenceNumber() { assertThatThrownBy(() -> coordinationStore.getValue(-1)) .isInstanceOf(IllegalStateException.class) .hasMessageContaining("Only positive sequence numbers are supported"); }