All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.atomix.core.map.impl.DelegatingAsyncAtomicMap Maven / Gradle / Ivy

There is a newer version: 3.2.0-alpha12
Show newest version
/*
 * Copyright 2016-present Open Networking Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.atomix.core.map.impl;

import java.time.Duration;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Predicate;

import io.atomix.core.collection.AsyncDistributedCollection;
import io.atomix.core.map.AsyncAtomicMap;
import io.atomix.core.map.AtomicMap;
import io.atomix.core.map.AtomicMapEventListener;
import io.atomix.core.set.AsyncDistributedSet;
import io.atomix.core.transaction.TransactionId;
import io.atomix.core.transaction.TransactionLog;
import io.atomix.primitive.PrimitiveState;
import io.atomix.primitive.impl.DelegatingAsyncPrimitive;
import io.atomix.utils.time.Versioned;

/**
 * {@code AsyncConsistentMap} that merely delegates control to
 * another AsyncConsistentMap.
 *
 * @param  key type
 * @param  value type
 */
public class DelegatingAsyncAtomicMap
    extends DelegatingAsyncPrimitive> implements AsyncAtomicMap {

  DelegatingAsyncAtomicMap(AsyncAtomicMap delegate) {
    super(delegate);
  }

  @Override
  public CompletableFuture size() {
    return delegate().size();
  }

  @Override
  public CompletableFuture containsKey(K key) {
    return delegate().containsKey(key);
  }

  @Override
  public CompletableFuture containsValue(V value) {
    return delegate().containsValue(value);
  }

  @Override
  public CompletableFuture> get(K key) {
    return delegate().get(key);
  }

  @Override
  public CompletableFuture>> getAllPresent(Iterable keys) {
    return delegate().getAllPresent(keys);
  }

  @Override
  public CompletableFuture> getOrDefault(K key, V defaultValue) {
    return delegate().getOrDefault(key, defaultValue);
  }

  @Override
  public CompletableFuture> computeIf(K key,
                                                   Predicate condition,
                                                   BiFunction remappingFunction) {
    return delegate().computeIf(key, condition, remappingFunction);
  }

  @Override
  public CompletableFuture> put(K key, V value, Duration ttl) {
    return delegate().put(key, value, ttl);
  }

  @Override
  public CompletableFuture> putAndGet(K key, V value, Duration ttl) {
    return delegate().putAndGet(key, value, ttl);
  }

  @Override
  public CompletableFuture> remove(K key) {
    return delegate().remove(key);
  }

  @Override
  public CompletableFuture clear() {
    return delegate().clear();
  }

  @Override
  public AsyncDistributedSet keySet() {
    return delegate().keySet();
  }

  @Override
  public AsyncDistributedCollection> values() {
    return delegate().values();
  }

  @Override
  public AsyncDistributedSet>> entrySet() {
    return delegate().entrySet();
  }

  @Override
  public CompletableFuture> putIfAbsent(K key, V value, Duration ttl) {
    return delegate().putIfAbsent(key, value, ttl);
  }

  @Override
  public CompletableFuture remove(K key, V value) {
    return delegate().remove(key, value);
  }

  @Override
  public CompletableFuture remove(K key, long version) {
    return delegate().remove(key, version);
  }

  @Override
  public CompletableFuture> replace(K key, V value) {
    return delegate().replace(key, value);
  }

  @Override
  public CompletableFuture replace(K key, V oldValue, V newValue) {
    return delegate().replace(key, oldValue, newValue);
  }

  @Override
  public CompletableFuture replace(K key, long oldVersion, V newValue) {
    return delegate().replace(key, oldVersion, newValue);
  }

  @Override
  public CompletableFuture addListener(AtomicMapEventListener listener, Executor executor) {
    return delegate().addListener(listener, executor);
  }

  @Override
  public CompletableFuture removeListener(AtomicMapEventListener listener) {
    return delegate().removeListener(listener);
  }

  @Override
  public CompletableFuture prepare(TransactionLog> transactionLog) {
    return delegate().prepare(transactionLog);
  }

  @Override
  public CompletableFuture commit(TransactionId transactionId) {
    return delegate().commit(transactionId);
  }

  @Override
  public CompletableFuture rollback(TransactionId transactionId) {
    return delegate().rollback(transactionId);
  }

  @Override
  public void addStateChangeListener(Consumer listener) {
    delegate().addStateChangeListener(listener);
  }

  @Override
  public void removeStateChangeListener(Consumer listener) {
    delegate().removeStateChangeListener(listener);
  }

  @Override
  public AtomicMap sync(Duration operationTimeout) {
    return new BlockingAtomicMap<>(this, operationTimeout.toMillis());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy