/** * This file is part of ObjectFabric (http://objectfabric.org). * * ObjectFabric is licensed under the Apache License, Version 2.0, the terms * of which may be found at http://www.apache.org/licenses/LICENSE-2.0.html. * * Copyright ObjectFabric Inc. * * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ package org.objectfabric; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; /** * This future simply returns its given value. Useful when a future is needed and the * corresponding value has already been computed. */ final class CompletedFuture<V> implements Future<V> { private final V _value; public CompletedFuture(V value) { _value = value; } // @Override public boolean cancel(boolean mayInterruptIfRunning) { return false; } @Override public V get() throws ExecutionException { return _value; } @Override public V get(long timeout, TimeUnit unit) throws ExecutionException { return get(); } @Override public boolean isCancelled() { return false; } @Override public boolean isDone() { return true; } }