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

com.yahoo.jdisc.handler.FutureCompletion Maven / Gradle / Ivy

There is a newer version: 8.441.21
Show newest version
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.jdisc.handler;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;

/**
 * 

This class provides an implementation of {@link CompletionHandler} that allows you to wait for either {@link * #completed()} or {@link #failed(Throwable)} to be called. If failed() was called, the corresponding Throwable will * be rethrown when calling either of the get() methods. Unless an exception is thrown, the get() methods will always * return Boolean.TRUE.

* *

Notice that calling {@link #cancel(boolean)} throws an UnsupportedOperationException.

* * @author Simon Thoresen Hult */ public final class FutureCompletion extends CompletableFuture implements CompletionHandler { @Override public void completed() { complete(true); } @Override public void failed(Throwable t) { completeExceptionally(t); } @Override public final boolean cancel(boolean mayInterruptIfRunning) { throw new UnsupportedOperationException(); } @Override public final boolean isCancelled() { return false; } public void addListener(Runnable r, Executor e) { whenCompleteAsync((__, ___) -> r.run(), e); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy