@SuppressWarnings("OptionalUsedAsFieldOrParameterType") @VisibleForTesting CheckAndSetResult<SequenceAndBound> checkAndSetCoordinationValue( Optional<SequenceAndBound> oldValue, SequenceAndBound newValue) { CheckAndSetRequest request = new CheckAndSetRequest.Builder() .table(AtlasDbConstants.COORDINATION_TABLE) .cell(getCoordinationValueCell()) .oldValue(oldValue.map(this::serializeSequenceAndBound)) .newValue(serializeSequenceAndBound(newValue)) .build(); try { kvs.checkAndSet(request); return ImmutableCheckAndSetResult.of(true, ImmutableList.of(newValue)); } catch (CheckAndSetException e) { return ImmutableCheckAndSetResult.of(false, e.getActualValues() .stream() .map(this::deserializeSequenceAndBound) .collect(Collectors.toList())); } }
@SuppressWarnings("OptionalUsedAsFieldOrParameterType") @VisibleForTesting CheckAndSetResult<SequenceAndBound> checkAndSetCoordinationValue( Optional<SequenceAndBound> oldValue, SequenceAndBound newValue) { CheckAndSetRequest request = new CheckAndSetRequest.Builder() .table(AtlasDbConstants.COORDINATION_TABLE) .cell(getCoordinationValueCell()) .oldValue(oldValue.map(this::serializeSequenceAndBound)) .newValue(serializeSequenceAndBound(newValue)) .build(); try { kvs.checkAndSet(request); return ImmutableCheckAndSetResult.of(true, ImmutableList.of(newValue)); } catch (CheckAndSetException e) { return ImmutableCheckAndSetResult.of(false, e.getActualValues() .stream() .map(this::deserializeSequenceAndBound) .collect(Collectors.toList())); } }