@Override public CompletableFuture<Boolean> remove(K key, V value) { checkNotNull(key, ERROR_NULL_KEY); checkNotNull(value, ERROR_NULL_VALUE); checkIfUnmodifiable(); return database .remove(name, keyCache.getUnchecked(key), serializer.encode(value)) .thenApply(this::unwrapResult); }
@Override public CompletableFuture<Versioned<V>> remove(K key) { checkNotNull(key, ERROR_NULL_KEY); checkIfUnmodifiable(); return database .remove(name, keyCache.getUnchecked(key)) .thenApply(this::unwrapResult) .thenApply(v -> v != null ? v.<V>map(serializer::decode) : null) .whenComplete( (r, e) -> { if (r != null) { notifyListeners(new MapEvent<>(name, MapEvent.Type.REMOVE, key, r)); } }); }
@Override public CompletableFuture<Boolean> remove(K key, long version) { checkNotNull(key, ERROR_NULL_KEY); checkIfUnmodifiable(); return database.remove(name, keyCache.getUnchecked(key), version).thenApply(this::unwrapResult); }