blob: 094b446eeb8a9fe23da62047f13155872587c4d3 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>KafkaFuture (kafka 3.6.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.kafka.common, class: KafkaFuture">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.kafka.common</a></div>
<h1 title="Class KafkaFuture" class="title">Class KafkaFuture&lt;T&gt;</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.kafka.common.KafkaFuture&lt;T&gt;</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;T&gt;</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">KafkaFuture&lt;T&gt;</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;T&gt;</span></div>
<div class="block">A flexible future which supports call chaining and other asynchronous programming patterns.
<h3>Relation to <code>CompletionStage</code></h3>
<p>It is possible to obtain a <code>CompletionStage</code> from a
<code>KafkaFuture</code> instance by calling <a href="#toCompletionStage()"><code>toCompletionStage()</code></a>.
If converting <a href="#whenComplete(org.apache.kafka.common.KafkaFuture.BiConsumer)"><code>whenComplete(BiConsumer)</code></a> or <a href="#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction)"><code>thenApply(BaseFunction)</code></a> to
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/CompletableFuture.html#whenComplete(java.util.function.BiConsumer)" title="class or interface in java.util.concurrent" class="external-link"><code>CompletableFuture.whenComplete(java.util.function.BiConsumer)</code></a> or
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/CompletableFuture.html#thenApply(java.util.function.Function)" title="class or interface in java.util.concurrent" class="external-link"><code>CompletableFuture.thenApply(java.util.function.Function)</code></a> be aware that the returned
<code>KafkaFuture</code> will fail with an <code>ExecutionException</code>, whereas a <code>CompletionStage</code> fails
with a <code>CompletionException</code>.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="KafkaFuture.BaseFunction.html" class="type-name-link" title="interface in org.apache.kafka.common">KafkaFuture.BaseFunction</a>&lt;<a href="KafkaFuture.BaseFunction.html" title="type parameter in KafkaFuture.BaseFunction">A</a>,<wbr><a href="KafkaFuture.BaseFunction.html" title="type parameter in KafkaFuture.BaseFunction">B</a>&gt;</code></div>
<div class="col-last even-row-color">
<div class="block">A function which takes objects of type A and returns objects of type B.</div>
</div>
<div class="col-first odd-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="KafkaFuture.BiConsumer.html" class="type-name-link" title="interface in org.apache.kafka.common">KafkaFuture.BiConsumer</a>&lt;<a href="KafkaFuture.BiConsumer.html" title="type parameter in KafkaFuture.BiConsumer">A</a>,<wbr><a href="KafkaFuture.BiConsumer.html" title="type parameter in KafkaFuture.BiConsumer">B</a>&gt;</code></div>
<div class="col-last odd-row-color">
<div class="block">A consumer of two different types of object.</div>
</div>
<div class="col-first even-row-color"><code>static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="KafkaFuture.Function.html" class="type-name-link" title="class in org.apache.kafka.common">KafkaFuture.Function</a>&lt;<a href="KafkaFuture.Function.html" title="type parameter in KafkaFuture.Function">A</a>,<wbr><a href="KafkaFuture.Function.html" title="type parameter in KafkaFuture.Function">B</a>&gt;</code></div>
<div class="col-last even-row-color">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Since Kafka 3.0.</div>
</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">KafkaFuture</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#allOf(org.apache.kafka.common.KafkaFuture...)" class="member-name-link">allOf</a><wbr>(<a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;?&gt;...&nbsp;futures)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a new KafkaFuture that is completed when all the given futures have completed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#cancel(boolean)" class="member-name-link">cancel</a><wbr>(boolean&nbsp;mayInterruptIfRunning)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">If not already completed, completes this future with a CancellationException.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#complete(T)" class="member-name-link">complete</a><wbr>(<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&nbsp;newValue)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">If not already completed, sets the value returned by get() and related methods to the given
value.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;U&gt;&nbsp;<a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;U&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#completedFuture(U)" class="member-name-link">completedFuture</a><wbr>(U&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a new KafkaFuture that is already completed with the given value.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#completeExceptionally(java.lang.Throwable)" class="member-name-link">completeExceptionally</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;newException)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">If not already completed, causes invocations of get() and related methods to throw the given
exception.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#get()" class="member-name-link">get</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Waits if necessary for this future to complete, and then returns its result.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#get(long,java.util.concurrent.TimeUnit)" class="member-name-link">get</a><wbr>(long&nbsp;timeout,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/TimeUnit.html" title="class or interface in java.util.concurrent" class="external-link">TimeUnit</a>&nbsp;unit)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Waits if necessary for at most the given time for this future to complete, and then returns
its result, if available.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getNow(T)" class="member-name-link">getNow</a><wbr>(<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&nbsp;valueIfAbsent)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the result value (or throws any encountered exception) if completed, else returns
the given valueIfAbsent.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isCancelled()" class="member-name-link">isCancelled</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns true if this CompletableFuture was cancelled before it completed normally.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isCompletedExceptionally()" class="member-name-link">isCompletedExceptionally</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns true if this CompletableFuture completed exceptionally, in any way.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isDone()" class="member-name-link">isDone</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns true if completed in any fashion: normally, exceptionally, or via cancellation.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract &lt;R&gt;&nbsp;<a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;R&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction)" class="member-name-link">thenApply</a><wbr>(<a href="KafkaFuture.BaseFunction.html" title="interface in org.apache.kafka.common">KafkaFuture.BaseFunction</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>,<wbr>R&gt;&nbsp;function)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns a new KafkaFuture that, when this future completes normally, is executed with this
futures's result as the argument to the supplied function.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract &lt;R&gt;&nbsp;<a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;R&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#thenApply(org.apache.kafka.common.KafkaFuture.Function)" class="member-name-link">thenApply</a><wbr>(<a href="KafkaFuture.Function.html" title="class in org.apache.kafka.common">KafkaFuture.Function</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>,<wbr>R&gt;&nbsp;function)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Prefer <a href="#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction)"><code>thenApply(BaseFunction)</code></a> as this function is here for backwards compatibility reasons
and might be deprecated/removed in a future release.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/CompletionStage.html" title="class or interface in java.util.concurrent" class="external-link">CompletionStage</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#toCompletionStage()" class="member-name-link">toCompletionStage</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets a <code>CompletionStage</code> with the same completion properties as this <code>KafkaFuture</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#whenComplete(org.apache.kafka.common.KafkaFuture.BiConsumer)" class="member-name-link">whenComplete</a><wbr>(<a href="KafkaFuture.BiConsumer.html" title="interface in org.apache.kafka.common">KafkaFuture.BiConsumer</a>&lt;? super <a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>,<wbr>? super <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&gt;&nbsp;action)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns a new KafkaFuture with the same result or exception as this future, that executes the given action
when this future completes.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>KafkaFuture</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">KafkaFuture</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="completedFuture(U)">
<h3 id="completedFuture(java.lang.Object)">completedFuture</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;U&gt;</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;U&gt;</span>&nbsp;<span class="element-name">completedFuture</span><wbr><span class="parameters">(U&nbsp;value)</span></div>
<div class="block">Returns a new KafkaFuture that is already completed with the given value.</div>
</section>
</li>
<li>
<section class="detail" id="allOf(org.apache.kafka.common.KafkaFuture...)">
<h3>allOf</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Void.html" title="class or interface in java.lang" class="external-link">Void</a>&gt;</span>&nbsp;<span class="element-name">allOf</span><wbr><span class="parameters">(<a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;?&gt;...&nbsp;futures)</span></div>
<div class="block">Returns a new KafkaFuture that is completed when all the given futures have completed. If
any future throws an exception, the returned future returns it. If multiple futures throw
an exception, which one gets returned is arbitrarily chosen.</div>
</section>
</li>
<li>
<section class="detail" id="toCompletionStage()">
<h3>toCompletionStage</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/CompletionStage.html" title="class or interface in java.util.concurrent" class="external-link">CompletionStage</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</span>&nbsp;<span class="element-name">toCompletionStage</span>()</div>
<div class="block">Gets a <code>CompletionStage</code> with the same completion properties as this <code>KafkaFuture</code>.
The returned instance will complete when this future completes and in the same way
(with the same result or exception).
<p>Calling <code>toCompletableFuture()</code> on the returned instance will yield a <code>CompletableFuture</code>,
but invocation of the completion methods (<code>complete()</code> and other methods in the <code>complete*()</code>
and <code>obtrude*()</code> families) on that <code>CompletableFuture</code> instance will result in
<code>UnsupportedOperationException</code> being thrown. Unlike a "minimal" <code>CompletableFuture</code>,
the <code>get*()</code> and other methods of <code>CompletableFuture</code> that are not inherited from
<code>CompletionStage</code> will work normally.
<p>If you want to block on the completion of a KafkaFuture you should use
<a href="#get()"><code>get()</code></a>, <a href="#get(long,java.util.concurrent.TimeUnit)"><code>get(long, TimeUnit)</code></a> or <a href="#getNow(T)"><code>getNow(Object)</code></a>, rather than calling
<code>.toCompletionStage().toCompletableFuture().get()</code> etc.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>Kafka 3.0</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction)">
<h3>thenApply</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="type-parameters">&lt;R&gt;</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;R&gt;</span>&nbsp;<span class="element-name">thenApply</span><wbr><span class="parameters">(<a href="KafkaFuture.BaseFunction.html" title="interface in org.apache.kafka.common">KafkaFuture.BaseFunction</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>,<wbr>R&gt;&nbsp;function)</span></div>
<div class="block">Returns a new KafkaFuture that, when this future completes normally, is executed with this
futures's result as the argument to the supplied function.
The function may be invoked by the thread that calls <code>thenApply</code> or it may be invoked by the thread that
completes the future.</div>
</section>
</li>
<li>
<section class="detail" id="thenApply(org.apache.kafka.common.KafkaFuture.Function)">
<h3>thenApply</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="type-parameters">&lt;R&gt;</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;R&gt;</span>&nbsp;<span class="element-name">thenApply</span><wbr><span class="parameters">(<a href="KafkaFuture.Function.html" title="class in org.apache.kafka.common">KafkaFuture.Function</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>,<wbr>R&gt;&nbsp;function)</span></div>
<div class="block">Prefer <a href="#thenApply(org.apache.kafka.common.KafkaFuture.BaseFunction)"><code>thenApply(BaseFunction)</code></a> as this function is here for backwards compatibility reasons
and might be deprecated/removed in a future release.</div>
</section>
</li>
<li>
<section class="detail" id="whenComplete(org.apache.kafka.common.KafkaFuture.BiConsumer)">
<h3>whenComplete</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="class in org.apache.kafka.common">KafkaFuture</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</span>&nbsp;<span class="element-name">whenComplete</span><wbr><span class="parameters">(<a href="KafkaFuture.BiConsumer.html" title="interface in org.apache.kafka.common">KafkaFuture.BiConsumer</a>&lt;? super <a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>,<wbr>? super <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&gt;&nbsp;action)</span></div>
<div class="block">Returns a new KafkaFuture with the same result or exception as this future, that executes the given action
when this future completes.
When this future is done, the given action is invoked with the result (or null if none) and the exception
(or null if none) of this future as arguments.
The returned future is completed when the action returns.
The supplied action should not throw an exception. However, if it does, the following rules apply:
if this future completed normally but the supplied action throws an exception, then the returned future completes
exceptionally with the supplied action's exception.
Or, if this future completed exceptionally and the supplied action throws an exception, then the returned future
completes exceptionally with this future's exception.
The action may be invoked by the thread that calls <code>whenComplete</code> or it may be invoked by the thread that
completes the future.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>action</code> - the action to preform</dd>
<dt>Returns:</dt>
<dd>the new future</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="complete(T)">
<h3 id="complete(java.lang.Object)">complete</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">complete</span><wbr><span class="parameters">(<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&nbsp;newValue)</span></div>
<div class="block">If not already completed, sets the value returned by get() and related methods to the given
value.</div>
</section>
</li>
<li>
<section class="detail" id="completeExceptionally(java.lang.Throwable)">
<h3>completeExceptionally</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">completeExceptionally</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a>&nbsp;newException)</span></div>
<div class="block">If not already completed, causes invocations of get() and related methods to throw the given
exception.</div>
</section>
</li>
<li>
<section class="detail" id="cancel(boolean)">
<h3>cancel</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">cancel</span><wbr><span class="parameters">(boolean&nbsp;mayInterruptIfRunning)</span></div>
<div class="block">If not already completed, completes this future with a CancellationException. Dependent
futures that have not already completed will also complete exceptionally, with a
CompletionException caused by this CancellationException.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html#cancel(boolean)" title="class or interface in java.util.concurrent" class="external-link">cancel</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="get()">
<h3>get</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a></span>&nbsp;<span class="element-name">get</span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InterruptedException.html" title="class or interface in java.lang" class="external-link">InterruptedException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutionException.html" title="class or interface in java.util.concurrent" class="external-link">ExecutionException</a></span></div>
<div class="block">Waits if necessary for this future to complete, and then returns its result.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html#get()" title="class or interface in java.util.concurrent" class="external-link">get</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InterruptedException.html" title="class or interface in java.lang" class="external-link">InterruptedException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutionException.html" title="class or interface in java.util.concurrent" class="external-link">ExecutionException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="get(long,java.util.concurrent.TimeUnit)">
<h3>get</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a></span>&nbsp;<span class="element-name">get</span><wbr><span class="parameters">(long&nbsp;timeout,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/TimeUnit.html" title="class or interface in java.util.concurrent" class="external-link">TimeUnit</a>&nbsp;unit)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InterruptedException.html" title="class or interface in java.lang" class="external-link">InterruptedException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutionException.html" title="class or interface in java.util.concurrent" class="external-link">ExecutionException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/TimeoutException.html" title="class or interface in java.util.concurrent" class="external-link">TimeoutException</a></span></div>
<div class="block">Waits if necessary for at most the given time for this future to complete, and then returns
its result, if available.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html#get(long,java.util.concurrent.TimeUnit)" title="class or interface in java.util.concurrent" class="external-link">get</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InterruptedException.html" title="class or interface in java.lang" class="external-link">InterruptedException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutionException.html" title="class or interface in java.util.concurrent" class="external-link">ExecutionException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/TimeoutException.html" title="class or interface in java.util.concurrent" class="external-link">TimeoutException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNow(T)">
<h3 id="getNow(java.lang.Object)">getNow</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a></span>&nbsp;<span class="element-name">getNow</span><wbr><span class="parameters">(<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&nbsp;valueIfAbsent)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InterruptedException.html" title="class or interface in java.lang" class="external-link">InterruptedException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutionException.html" title="class or interface in java.util.concurrent" class="external-link">ExecutionException</a></span></div>
<div class="block">Returns the result value (or throws any encountered exception) if completed, else returns
the given valueIfAbsent.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InterruptedException.html" title="class or interface in java.lang" class="external-link">InterruptedException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ExecutionException.html" title="class or interface in java.util.concurrent" class="external-link">ExecutionException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isCancelled()">
<h3>isCancelled</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isCancelled</span>()</div>
<div class="block">Returns true if this CompletableFuture was cancelled before it completed normally.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html#isCancelled()" title="class or interface in java.util.concurrent" class="external-link">isCancelled</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isCompletedExceptionally()">
<h3>isCompletedExceptionally</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isCompletedExceptionally</span>()</div>
<div class="block">Returns true if this CompletableFuture completed exceptionally, in any way.</div>
</section>
</li>
<li>
<section class="detail" id="isDone()">
<h3>isDone</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isDone</span>()</div>
<div class="block">Returns true if completed in any fashion: normally, exceptionally, or via cancellation.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html#isDone()" title="class or interface in java.util.concurrent" class="external-link">isDone</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Future.html" title="class or interface in java.util.concurrent" class="external-link">Future</a>&lt;<a href="KafkaFuture.html" title="type parameter in KafkaFuture">T</a>&gt;</code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>