blob: 865379e2cc137971f58a2f144128c9528327fb2c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_102) on Sat Mar 09 11:45:58 PST 2019 -->
<title>KafkaStreams (kafka 2.2.0 API)</title>
<meta name="date" content="2019-03-09">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="KafkaStreams (kafka 2.2.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":42,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kafka/streams/KafkaStreams.html" target="_top">Frames</a></li>
<li><a href="KafkaStreams.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.kafka.streams</div>
<h2 title="Class KafkaStreams" class="title">Class KafkaStreams</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.kafka.streams.KafkaStreams</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.lang.AutoCloseable</dd>
</dl>
<hr>
<br>
<pre><a href="../../../../org/apache/kafka/common/annotation/InterfaceStability.Evolving.html" title="annotation in org.apache.kafka.common.annotation">@InterfaceStability.Evolving</a>
public class <span class="typeNameLabel">KafkaStreams</span>
extends java.lang.Object
implements java.lang.AutoCloseable</pre>
<div class="block">A Kafka client that allows for performing continuous computation on input coming from one or more input topics and
sends output to zero, one, or more output topics.
<p>
The computational logic can be specified either by using the <a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams"><code>Topology</code></a> to define a DAG topology of
<a href="../../../../org/apache/kafka/streams/processor/Processor.html" title="interface in org.apache.kafka.streams.processor"><code>Processor</code></a>s or by using the <a href="../../../../org/apache/kafka/streams/StreamsBuilder.html" title="class in org.apache.kafka.streams"><code>StreamsBuilder</code></a> which provides the high-level DSL to define
transformations.
<p>
One <code>KafkaStreams</code> instance can contain one or more threads specified in the configs for the processing work.
<p>
A <code>KafkaStreams</code> instance can co-ordinate with any other instances with the same
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> (whether in the same process, on other processes on this
machine, or on remote machines) as a single (possibly distributed) stream processing application.
These instances will divide up the work based on the assignment of the input topic partitions so that all partitions
are being consumed.
If instances are added or fail, all (remaining) instances will rebalance the partition assignment among themselves
to balance processing load and ensure that all input topic partitions are processed.
<p>
Internally a <code>KafkaStreams</code> instance contains a normal <a href="../../../../org/apache/kafka/clients/producer/KafkaProducer.html" title="class in org.apache.kafka.clients.producer"><code>KafkaProducer</code></a> and <a href="../../../../org/apache/kafka/clients/consumer/KafkaConsumer.html" title="class in org.apache.kafka.clients.consumer"><code>KafkaConsumer</code></a> instance
that is used for reading input and writing output.
<p>
A simple example might look like this:
<pre><code>
Map&lt;String, Object&gt; props = new HashMap&lt;&gt;();
props.put(StreamsConfig.APPLICATION_ID_CONFIG, "my-stream-processing-application");
props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass());
props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass());
StreamsBuilder builder = new StreamsBuilder();
builder.&lt;String, String&gt;stream("my-input-topic").mapValues(value -&gt; value.length().toString()).to("my-output-topic");
KafkaStreams streams = new KafkaStreams(builder.build(), props);
streams.start();
</code></pre></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/kafka/streams/StreamsBuilder.html" title="class in org.apache.kafka.streams"><code>StreamsBuilder</code></a>,
<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams"><code>Topology</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams">KafkaStreams.State</a></span></code>
<div class="block">Kafka Streams states are the possible state that a Kafka Streams instance can be in.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html" title="interface in org.apache.kafka.streams">KafkaStreams.StateListener</a></span></code>
<div class="block">Listen to <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams"><code>KafkaStreams.State</code></a> change events.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams">KafkaStreams.State</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#state">state</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected org.apache.kafka.streams.processor.internals.StreamThread[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#threads">threads</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-">KafkaStreams</a></span>(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props)</code>
<div class="block">Create a <code>KafkaStreams</code> instance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.streams.KafkaClientSupplier-">KafkaStreams</a></span>(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props,
<a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams">KafkaClientSupplier</a>&nbsp;clientSupplier)</code>
<div class="block">Create a <code>KafkaStreams</code> instance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.streams.KafkaClientSupplier-org.apache.kafka.common.utils.Time-">KafkaStreams</a></span>(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props,
<a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams">KafkaClientSupplier</a>&nbsp;clientSupplier,
org.apache.kafka.common.utils.Time&nbsp;time)</code>
<div class="block">Create a <code>KafkaStreams</code> instance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.common.utils.Time-">KafkaStreams</a></span>(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props,
org.apache.kafka.common.utils.Time&nbsp;time)</code>
<div class="block">Create a <code>KafkaStreams</code> instance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-org.apache.kafka.streams.StreamsConfig-">KafkaStreams</a></span>(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams">StreamsConfig</a>&nbsp;config)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-"><code>KafkaStreams(Topology, Properties)</code></a> instead</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-org.apache.kafka.streams.StreamsConfig-org.apache.kafka.streams.KafkaClientSupplier-">KafkaStreams</a></span>(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams">StreamsConfig</a>&nbsp;config,
<a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams">KafkaClientSupplier</a>&nbsp;clientSupplier)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.streams.KafkaClientSupplier-"><code>KafkaStreams(Topology, Properties, KafkaClientSupplier)</code></a> instead</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-org.apache.kafka.streams.StreamsConfig-org.apache.kafka.common.utils.Time-">KafkaStreams</a></span>(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams">StreamsConfig</a>&nbsp;config,
org.apache.kafka.common.utils.Time&nbsp;time)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.common.utils.Time-"><code>KafkaStreams(Topology, Properties, Time)</code></a> instead</span></div>
</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.util.Collection&lt;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#allMetadata--">allMetadata</a></span>()</code>
<div class="block">Find all currently running <code>KafkaStreams</code> instances (potentially remotely) that use the same
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all instances that belong to
the same Kafka Streams application) and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for each discovered instance.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.Collection&lt;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#allMetadataForStore-java.lang.String-">allMetadataForStore</a></span>(java.lang.String&nbsp;storeName)</code>
<div class="block">Find all currently running <code>KafkaStreams</code> instances (potentially remotely) that
use the same <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all
instances that belong to the same Kafka Streams application)
and that contain a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> with the given <code>storeName</code>
and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for each discovered instance.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#cleanUp--">cleanUp</a></span>()</code>
<div class="block">Do a clean up of the local <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> directory (<a href="../../../../org/apache/kafka/streams/StreamsConfig.html#STATE_DIR_CONFIG"><code>StreamsConfig.STATE_DIR_CONFIG</code></a>) by deleting all
data with regard to the <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close--">close</a></span>()</code>
<div class="block">Shutdown this <code>KafkaStreams</code> instance by signaling all the threads to stop, and then wait for them to join.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close-java.time.Duration-">close</a></span>(java.time.Duration&nbsp;timeout)</code>
<div class="block">Shutdown this <code>KafkaStreams</code> by signaling all the threads to stop, and then wait up to the timeout for the
threads to join.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close-long-java.util.concurrent.TimeUnit-">close</a></span>(long&nbsp;timeout,
java.util.concurrent.TimeUnit&nbsp;timeUnit)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close-java.time.Duration-"><code>close(Duration)</code></a> instead; note, that <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close-java.time.Duration-"><code>close(Duration)</code></a> has different semantics and does not block on zero, e.g., `Duration.ofMillis(0)`.</span></div>
</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../org/apache/kafka/streams/processor/ThreadMetadata.html" title="class in org.apache.kafka.streams.processor">ThreadMetadata</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#localThreadsMetadata--">localThreadsMetadata</a></span>()</code>
<div class="block">Returns runtime information about the local threads of this <a href="../../../../org/apache/kafka/streams/KafkaStreams.html" title="class in org.apache.kafka.streams"><code>KafkaStreams</code></a> instance.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>&lt;K&gt;&nbsp;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#metadataForKey-java.lang.String-K-org.apache.kafka.common.serialization.Serializer-">metadataForKey</a></span>(java.lang.String&nbsp;storeName,
K&nbsp;key,
<a href="../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a>&lt;K&gt;&nbsp;keySerializer)</code>
<div class="block">Find the currently running <code>KafkaStreams</code> instance (potentially remotely) that
use the same <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all
instances that belong to the same Kafka Streams application)
and that contain a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> with the given <code>storeName</code>
and the <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> contains the given <code>key</code>
and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for it.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>&lt;K&gt;&nbsp;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#metadataForKey-java.lang.String-K-org.apache.kafka.streams.processor.StreamPartitioner-">metadataForKey</a></span>(java.lang.String&nbsp;storeName,
K&nbsp;key,
<a href="../../../../org/apache/kafka/streams/processor/StreamPartitioner.html" title="interface in org.apache.kafka.streams.processor">StreamPartitioner</a>&lt;? super K,?&gt;&nbsp;partitioner)</code>
<div class="block">Find the currently running <code>KafkaStreams</code> instance (potentially remotely) that
use the same <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all
instances that belong to the same Kafka Streams application)
and that contain a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> with the given <code>storeName</code>
and the <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> contains the given <code>key</code>
and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for it.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.util.Map&lt;<a href="../../../../org/apache/kafka/common/MetricName.html" title="class in org.apache.kafka.common">MetricName</a>,? extends <a href="../../../../org/apache/kafka/common/Metric.html" title="interface in org.apache.kafka.common">Metric</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#metrics--">metrics</a></span>()</code>
<div class="block">Get read-only handle on global metrics registry, including streams client's own metrics plus
its embedded producer, consumer and admin clients' metrics.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#setGlobalStateRestoreListener-org.apache.kafka.streams.processor.StateRestoreListener-">setGlobalStateRestoreListener</a></span>(<a href="../../../../org/apache/kafka/streams/processor/StateRestoreListener.html" title="interface in org.apache.kafka.streams.processor">StateRestoreListener</a>&nbsp;globalStateRestoreListener)</code>
<div class="block">Set the listener which is triggered whenever a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> is being restored in order to resume
processing.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#setStateListener-org.apache.kafka.streams.KafkaStreams.StateListener-">setStateListener</a></span>(<a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html" title="interface in org.apache.kafka.streams">KafkaStreams.StateListener</a>&nbsp;listener)</code>
<div class="block">An app can set a single <a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html" title="interface in org.apache.kafka.streams"><code>KafkaStreams.StateListener</code></a> so that the app is notified when state changes.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#setUncaughtExceptionHandler-java.lang.Thread.UncaughtExceptionHandler-">setUncaughtExceptionHandler</a></span>(java.lang.Thread.UncaughtExceptionHandler&nbsp;eh)</code>
<div class="block">Set the handler invoked when a <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#NUM_STREAM_THREADS_CONFIG"><code>internal thread</code></a> abruptly
terminates due to an uncaught exception.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#start--">start</a></span>()</code>
<div class="block">Start the <code>KafkaStreams</code> instance by starting all its threads.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams">KafkaStreams.State</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#state--">state</a></span>()</code>
<div class="block">Return the current <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams"><code>KafkaStreams.State</code></a> of this <code>KafkaStreams</code> instance.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/kafka/streams/KafkaStreams.html#store-java.lang.String-org.apache.kafka.streams.state.QueryableStoreType-">store</a></span>(java.lang.String&nbsp;storeName,
<a href="../../../../org/apache/kafka/streams/state/QueryableStoreType.html" title="interface in org.apache.kafka.streams.state">QueryableStoreType</a>&lt;T&gt;&nbsp;queryableStoreType)</code>
<div class="block">Get a facade wrapping the local <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> instances with the provided <code>storeName</code> if the Store's
type is accepted by the provided <a href="../../../../org/apache/kafka/streams/state/QueryableStoreType.html#accepts-org.apache.kafka.streams.processor.StateStore-"><code>queryableStoreType</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="threads">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>threads</h4>
<pre>protected final&nbsp;org.apache.kafka.streams.processor.internals.StreamThread[] threads</pre>
</li>
</ul>
<a name="state">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>state</h4>
<pre>protected volatile&nbsp;<a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams">KafkaStreams.State</a> state</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KafkaStreams</h4>
<pre>public&nbsp;KafkaStreams(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props)</pre>
<div class="block">Create a <code>KafkaStreams</code> instance.
<p>
Note: even if you never call <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#start--"><code>start()</code></a> on a <code>KafkaStreams</code> instance,
you still must <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close--"><code>close()</code></a> it to avoid resource leaks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topology</code> - the topology specifying the computational logic</dd>
<dd><code>props</code> - properties for <a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams"><code>StreamsConfig</code></a></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/kafka/streams/errors/StreamsException.html" title="class in org.apache.kafka.streams.errors">StreamsException</a></code> - if any fatal error occurs</dd>
</dl>
</li>
</ul>
<a name="KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.streams.KafkaClientSupplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KafkaStreams</h4>
<pre>public&nbsp;KafkaStreams(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props,
<a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams">KafkaClientSupplier</a>&nbsp;clientSupplier)</pre>
<div class="block">Create a <code>KafkaStreams</code> instance.
<p>
Note: even if you never call <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#start--"><code>start()</code></a> on a <code>KafkaStreams</code> instance,
you still must <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close--"><code>close()</code></a> it to avoid resource leaks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topology</code> - the topology specifying the computational logic</dd>
<dd><code>props</code> - properties for <a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams"><code>StreamsConfig</code></a></dd>
<dd><code>clientSupplier</code> - the Kafka clients supplier which provides underlying producer and consumer clients
for the new <code>KafkaStreams</code> instance</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/kafka/streams/errors/StreamsException.html" title="class in org.apache.kafka.streams.errors">StreamsException</a></code> - if any fatal error occurs</dd>
</dl>
</li>
</ul>
<a name="KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.common.utils.Time-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KafkaStreams</h4>
<pre>public&nbsp;KafkaStreams(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props,
org.apache.kafka.common.utils.Time&nbsp;time)</pre>
<div class="block">Create a <code>KafkaStreams</code> instance.
<p>
Note: even if you never call <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#start--"><code>start()</code></a> on a <code>KafkaStreams</code> instance,
you still must <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close--"><code>close()</code></a> it to avoid resource leaks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topology</code> - the topology specifying the computational logic</dd>
<dd><code>props</code> - properties for <a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams"><code>StreamsConfig</code></a></dd>
<dd><code>time</code> - <code>Time</code> implementation; cannot be null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/kafka/streams/errors/StreamsException.html" title="class in org.apache.kafka.streams.errors">StreamsException</a></code> - if any fatal error occurs</dd>
</dl>
</li>
</ul>
<a name="KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.streams.KafkaClientSupplier-org.apache.kafka.common.utils.Time-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KafkaStreams</h4>
<pre>public&nbsp;KafkaStreams(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;props,
<a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams">KafkaClientSupplier</a>&nbsp;clientSupplier,
org.apache.kafka.common.utils.Time&nbsp;time)</pre>
<div class="block">Create a <code>KafkaStreams</code> instance.
<p>
Note: even if you never call <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#start--"><code>start()</code></a> on a <code>KafkaStreams</code> instance,
you still must <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close--"><code>close()</code></a> it to avoid resource leaks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topology</code> - the topology specifying the computational logic</dd>
<dd><code>props</code> - properties for <a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams"><code>StreamsConfig</code></a></dd>
<dd><code>clientSupplier</code> - the Kafka clients supplier which provides underlying producer and consumer clients
for the new <code>KafkaStreams</code> instance</dd>
<dd><code>time</code> - <code>Time</code> implementation; cannot be null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/kafka/streams/errors/StreamsException.html" title="class in org.apache.kafka.streams.errors">StreamsException</a></code> - if any fatal error occurs</dd>
</dl>
</li>
</ul>
<a name="KafkaStreams-org.apache.kafka.streams.Topology-org.apache.kafka.streams.StreamsConfig-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KafkaStreams</h4>
<pre>@Deprecated
public&nbsp;KafkaStreams(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams">StreamsConfig</a>&nbsp;config)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-"><code>KafkaStreams(Topology, Properties)</code></a> instead</span></div>
</li>
</ul>
<a name="KafkaStreams-org.apache.kafka.streams.Topology-org.apache.kafka.streams.StreamsConfig-org.apache.kafka.streams.KafkaClientSupplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KafkaStreams</h4>
<pre>@Deprecated
public&nbsp;KafkaStreams(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams">StreamsConfig</a>&nbsp;config,
<a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams">KafkaClientSupplier</a>&nbsp;clientSupplier)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.streams.KafkaClientSupplier-"><code>KafkaStreams(Topology, Properties, KafkaClientSupplier)</code></a> instead</span></div>
</li>
</ul>
<a name="KafkaStreams-org.apache.kafka.streams.Topology-org.apache.kafka.streams.StreamsConfig-org.apache.kafka.common.utils.Time-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>KafkaStreams</h4>
<pre>@Deprecated
public&nbsp;KafkaStreams(<a href="../../../../org/apache/kafka/streams/Topology.html" title="class in org.apache.kafka.streams">Topology</a>&nbsp;topology,
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams">StreamsConfig</a>&nbsp;config,
org.apache.kafka.common.utils.Time&nbsp;time)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#KafkaStreams-org.apache.kafka.streams.Topology-java.util.Properties-org.apache.kafka.common.utils.Time-"><code>KafkaStreams(Topology, Properties, Time)</code></a> instead</span></div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="state--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>state</h4>
<pre>public&nbsp;<a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams">KafkaStreams.State</a>&nbsp;state()</pre>
<div class="block">Return the current <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams"><code>KafkaStreams.State</code></a> of this <code>KafkaStreams</code> instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current state of this Kafka Streams instance</dd>
</dl>
</li>
</ul>
<a name="setStateListener-org.apache.kafka.streams.KafkaStreams.StateListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStateListener</h4>
<pre>public&nbsp;void&nbsp;setStateListener(<a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html" title="interface in org.apache.kafka.streams">KafkaStreams.StateListener</a>&nbsp;listener)</pre>
<div class="block">An app can set a single <a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html" title="interface in org.apache.kafka.streams"><code>KafkaStreams.StateListener</code></a> so that the app is notified when state changes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - a new state listener</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if this <code>KafkaStreams</code> instance is not in state <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html#CREATED"><code>CREATED</code></a>.</dd>
</dl>
</li>
</ul>
<a name="setUncaughtExceptionHandler-java.lang.Thread.UncaughtExceptionHandler-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUncaughtExceptionHandler</h4>
<pre>public&nbsp;void&nbsp;setUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler&nbsp;eh)</pre>
<div class="block">Set the handler invoked when a <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#NUM_STREAM_THREADS_CONFIG"><code>internal thread</code></a> abruptly
terminates due to an uncaught exception.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>eh</code> - the uncaught exception handler for all internal threads; <code>null</code> deletes the current handler</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if this <code>KafkaStreams</code> instance is not in state <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html#CREATED"><code>CREATED</code></a>.</dd>
</dl>
</li>
</ul>
<a name="setGlobalStateRestoreListener-org.apache.kafka.streams.processor.StateRestoreListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setGlobalStateRestoreListener</h4>
<pre>public&nbsp;void&nbsp;setGlobalStateRestoreListener(<a href="../../../../org/apache/kafka/streams/processor/StateRestoreListener.html" title="interface in org.apache.kafka.streams.processor">StateRestoreListener</a>&nbsp;globalStateRestoreListener)</pre>
<div class="block">Set the listener which is triggered whenever a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> is being restored in order to resume
processing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>globalStateRestoreListener</code> - The listener triggered when <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> is being restored.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if this <code>KafkaStreams</code> instance is not in state <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html#CREATED"><code>CREATED</code></a>.</dd>
</dl>
</li>
</ul>
<a name="metrics--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metrics</h4>
<pre>public&nbsp;java.util.Map&lt;<a href="../../../../org/apache/kafka/common/MetricName.html" title="class in org.apache.kafka.common">MetricName</a>,? extends <a href="../../../../org/apache/kafka/common/Metric.html" title="interface in org.apache.kafka.common">Metric</a>&gt;&nbsp;metrics()</pre>
<div class="block">Get read-only handle on global metrics registry, including streams client's own metrics plus
its embedded producer, consumer and admin clients' metrics.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of all metrics.</dd>
</dl>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;void&nbsp;start()
throws java.lang.IllegalStateException,
<a href="../../../../org/apache/kafka/streams/errors/StreamsException.html" title="class in org.apache.kafka.streams.errors">StreamsException</a></pre>
<div class="block">Start the <code>KafkaStreams</code> instance by starting all its threads.
This function is expected to be called only once during the life cycle of the client.
<p>
Because threads are started in the background, this method does not block.
However, if you have global stores in your topology, this method blocks until all global stores are restored.
As a consequence, any fatal exception that happens during processing is by default only logged.
If you want to be notified about dying threads, you can
<a href="../../../../org/apache/kafka/streams/KafkaStreams.html#setUncaughtExceptionHandler-java.lang.Thread.UncaughtExceptionHandler-"><code>register an uncaught exception handler</code></a>
before starting the <code>KafkaStreams</code> instance.
<p>
Note, for brokers with version <code>0.9.x</code> or lower, the broker version cannot be checked.
There will be no error and the client will hang and retry to verify the broker version until it
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html#REQUEST_TIMEOUT_MS_CONFIG"><code>times out</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if process was already started</dd>
<dd><code><a href="../../../../org/apache/kafka/streams/errors/StreamsException.html" title="class in org.apache.kafka.streams.errors">StreamsException</a></code> - if the Kafka brokers have version 0.10.0.x or
if <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#PROCESSING_GUARANTEE_CONFIG"><code>exactly-once</code></a> is enabled for pre 0.11.0.x brokers</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()</pre>
<div class="block">Shutdown this <code>KafkaStreams</code> instance by signaling all the threads to stop, and then wait for them to join.
This will block until all threads have stopped.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
</dl>
</li>
</ul>
<a name="close-long-java.util.concurrent.TimeUnit-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>@Deprecated
public&nbsp;boolean&nbsp;close(long&nbsp;timeout,
java.util.concurrent.TimeUnit&nbsp;timeUnit)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close-java.time.Duration-"><code>close(Duration)</code></a> instead; note, that <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close-java.time.Duration-"><code>close(Duration)</code></a> has different semantics and does not block on zero, e.g., `Duration.ofMillis(0)`.</span></div>
<div class="block">Shutdown this <code>KafkaStreams</code> by signaling all the threads to stop, and then wait up to the timeout for the
threads to join.
A <code>timeout</code> of 0 means to wait forever.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - how long to wait for the threads to shutdown. Can't be negative. If <code>timeout=0</code> just checking the state and return immediately.</dd>
<dd><code>timeUnit</code> - unit of time used for timeout</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if all threads were successfully stopped&mdash;<code>false</code> if the timeout was reached
before all threads stopped
Note that this method must not be called in the <code>onChange</code> callback of <a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html" title="interface in org.apache.kafka.streams"><code>KafkaStreams.StateListener</code></a>.</dd>
</dl>
</li>
</ul>
<a name="close-java.time.Duration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;boolean&nbsp;close(java.time.Duration&nbsp;timeout)
throws java.lang.IllegalArgumentException</pre>
<div class="block">Shutdown this <code>KafkaStreams</code> by signaling all the threads to stop, and then wait up to the timeout for the
threads to join.
A <code>timeout</code> of 0 means to wait forever.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - how long to wait for the threads to shutdown</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if all threads were successfully stopped&mdash;<code>false</code> if the timeout was reached
before all threads stopped
Note that this method must not be called in the <a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html#onChange-org.apache.kafka.streams.KafkaStreams.State-org.apache.kafka.streams.KafkaStreams.State-"><code>KafkaStreams.StateListener.onChange(KafkaStreams.State, KafkaStreams.State)</code></a> callback of <a href="../../../../org/apache/kafka/streams/KafkaStreams.StateListener.html" title="interface in org.apache.kafka.streams"><code>KafkaStreams.StateListener</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>timeout</code> can't be represented as <code>long milliseconds</code></dd>
</dl>
</li>
</ul>
<a name="cleanUp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanUp</h4>
<pre>public&nbsp;void&nbsp;cleanUp()</pre>
<div class="block">Do a clean up of the local <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> directory (<a href="../../../../org/apache/kafka/streams/StreamsConfig.html#STATE_DIR_CONFIG"><code>StreamsConfig.STATE_DIR_CONFIG</code></a>) by deleting all
data with regard to the <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a>.
<p>
May only be called either before this <code>KafkaStreams</code> instance is <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#start--"><code>started</code></a> or after the
instance is <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#close--"><code>closed</code></a>.
<p>
Calling this method triggers a restore of local <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a>s on the next <a href="../../../../org/apache/kafka/streams/KafkaStreams.html#start--"><code>application start</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if this <code>KafkaStreams</code> instance is currently <a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html#RUNNING"><code>running</code></a></dd>
<dd><code><a href="../../../../org/apache/kafka/streams/errors/StreamsException.html" title="class in org.apache.kafka.streams.errors">StreamsException</a></code> - if cleanup failed</dd>
</dl>
</li>
</ul>
<a name="allMetadata--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allMetadata</h4>
<pre>public&nbsp;java.util.Collection&lt;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a>&gt;&nbsp;allMetadata()</pre>
<div class="block">Find all currently running <code>KafkaStreams</code> instances (potentially remotely) that use the same
<a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all instances that belong to
the same Kafka Streams application) and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for each discovered instance.
<p>
Note: this is a point in time view and it may change due to partition reassignment.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for each <code>KafkaStreams</code> instances of this application</dd>
</dl>
</li>
</ul>
<a name="allMetadataForStore-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allMetadataForStore</h4>
<pre>public&nbsp;java.util.Collection&lt;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a>&gt;&nbsp;allMetadataForStore(java.lang.String&nbsp;storeName)</pre>
<div class="block">Find all currently running <code>KafkaStreams</code> instances (potentially remotely) that
<ul>
<li>use the same <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all
instances that belong to the same Kafka Streams application)</li>
<li>and that contain a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> with the given <code>storeName</code></li>
</ul>
and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for each discovered instance.
<p>
Note: this is a point in time view and it may change due to partition reassignment.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>storeName</code> - the <code>storeName</code> to find metadata for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for each <code>KafkaStreams</code> instances with the provide <code>storeName</code> of
this application</dd>
</dl>
</li>
</ul>
<a name="metadataForKey-java.lang.String-java.lang.Object-org.apache.kafka.common.serialization.Serializer-">
<!-- -->
</a><a name="metadataForKey-java.lang.String-K-org.apache.kafka.common.serialization.Serializer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metadataForKey</h4>
<pre>public&nbsp;&lt;K&gt;&nbsp;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a>&nbsp;metadataForKey(java.lang.String&nbsp;storeName,
K&nbsp;key,
<a href="../../../../org/apache/kafka/common/serialization/Serializer.html" title="interface in org.apache.kafka.common.serialization">Serializer</a>&lt;K&gt;&nbsp;keySerializer)</pre>
<div class="block">Find the currently running <code>KafkaStreams</code> instance (potentially remotely) that
<ul>
<li>use the same <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all
instances that belong to the same Kafka Streams application)</li>
<li>and that contain a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> with the given <code>storeName</code></li>
<li>and the <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> contains the given <code>key</code></li>
</ul>
and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for it.
<p>
This will use the default Kafka Streams partitioner to locate the partition.
If a <a href="../../../../org/apache/kafka/streams/processor/StreamPartitioner.html" title="interface in org.apache.kafka.streams.processor"><code>custom partitioner</code></a> has been
<a href="../../../../org/apache/kafka/clients/producer/ProducerConfig.html#PARTITIONER_CLASS_CONFIG"><code>configured</code></a> via <a href="../../../../org/apache/kafka/streams/StreamsConfig.html" title="class in org.apache.kafka.streams"><code>StreamsConfig</code></a> or
<a href="../../../../org/apache/kafka/streams/kstream/KStream.html#through-java.lang.String-org.apache.kafka.streams.kstream.Produced-"><code>KStream.through(String, Produced)</code></a>, or if the original <a href="../../../../org/apache/kafka/streams/kstream/KTable.html" title="interface in org.apache.kafka.streams.kstream"><code>KTable</code></a>'s input
<a href="../../../../org/apache/kafka/streams/StreamsBuilder.html#table-java.lang.String-"><code>topic</code></a> is partitioned differently, please use
<a href="../../../../org/apache/kafka/streams/KafkaStreams.html#metadataForKey-java.lang.String-K-org.apache.kafka.streams.processor.StreamPartitioner-"><code>metadataForKey(String, Object, StreamPartitioner)</code></a>.
<p>
Note:
<ul>
<li>this is a point in time view and it may change due to partition reassignment</li>
<li>the key may not exist in the <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a>; this method provides a way of finding which host it
<em>would</em> exist on</li>
<li>if this is for a window store the serializer should be the serializer for the record key,
not the window serializer</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - key type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>storeName</code> - the <code>storeName</code> to find metadata for</dd>
<dd><code>key</code> - the key to find metadata for</dd>
<dd><code>keySerializer</code> - serializer for the key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for the <code>KafkaStreams</code> instance with the provide <code>storeName</code> and
<code>key</code> of this application or <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html#NOT_AVAILABLE"><code>StreamsMetadata.NOT_AVAILABLE</code></a> if Kafka Streams is (re-)initializing</dd>
</dl>
</li>
</ul>
<a name="metadataForKey-java.lang.String-java.lang.Object-org.apache.kafka.streams.processor.StreamPartitioner-">
<!-- -->
</a><a name="metadataForKey-java.lang.String-K-org.apache.kafka.streams.processor.StreamPartitioner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metadataForKey</h4>
<pre>public&nbsp;&lt;K&gt;&nbsp;<a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state">StreamsMetadata</a>&nbsp;metadataForKey(java.lang.String&nbsp;storeName,
K&nbsp;key,
<a href="../../../../org/apache/kafka/streams/processor/StreamPartitioner.html" title="interface in org.apache.kafka.streams.processor">StreamPartitioner</a>&lt;? super K,?&gt;&nbsp;partitioner)</pre>
<div class="block">Find the currently running <code>KafkaStreams</code> instance (potentially remotely) that
<ul>
<li>use the same <a href="../../../../org/apache/kafka/streams/StreamsConfig.html#APPLICATION_ID_CONFIG"><code>application ID</code></a> as this instance (i.e., all
instances that belong to the same Kafka Streams application)</li>
<li>and that contain a <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> with the given <code>storeName</code></li>
<li>and the <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> contains the given <code>key</code></li>
</ul>
and return <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for it.
<p>
Note:
<ul>
<li>this is a point in time view and it may change due to partition reassignment</li>
<li>the key may not exist in the <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a>; this method provides a way of finding which host it
<em>would</em> exist on</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - key type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>storeName</code> - the <code>storeName</code> to find metadata for</dd>
<dd><code>key</code> - the key to find metadata for</dd>
<dd><code>partitioner</code> - the partitioner to be use to locate the host for the key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html" title="class in org.apache.kafka.streams.state"><code>StreamsMetadata</code></a> for the <code>KafkaStreams</code> instance with the provide <code>storeName</code> and
<code>key</code> of this application or <a href="../../../../org/apache/kafka/streams/state/StreamsMetadata.html#NOT_AVAILABLE"><code>StreamsMetadata.NOT_AVAILABLE</code></a> if Kafka Streams is (re-)initializing</dd>
</dl>
</li>
</ul>
<a name="store-java.lang.String-org.apache.kafka.streams.state.QueryableStoreType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>store</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;T&nbsp;store(java.lang.String&nbsp;storeName,
<a href="../../../../org/apache/kafka/streams/state/QueryableStoreType.html" title="interface in org.apache.kafka.streams.state">QueryableStoreType</a>&lt;T&gt;&nbsp;queryableStoreType)</pre>
<div class="block">Get a facade wrapping the local <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> instances with the provided <code>storeName</code> if the Store's
type is accepted by the provided <a href="../../../../org/apache/kafka/streams/state/QueryableStoreType.html#accepts-org.apache.kafka.streams.processor.StateStore-"><code>queryableStoreType</code></a>.
The returned object can be used to query the <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> instances.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - return type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>storeName</code> - name of the store to find</dd>
<dd><code>queryableStoreType</code> - accept only stores that are accepted by <a href="../../../../org/apache/kafka/streams/state/QueryableStoreType.html#accepts-org.apache.kafka.streams.processor.StateStore-"><code>QueryableStoreType.accepts(StateStore)</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A facade wrapping the local <a href="../../../../org/apache/kafka/streams/processor/StateStore.html" title="interface in org.apache.kafka.streams.processor"><code>StateStore</code></a> instances</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/kafka/streams/errors/InvalidStateStoreException.html" title="class in org.apache.kafka.streams.errors">InvalidStateStoreException</a></code> - if Kafka Streams is (re-)initializing or a store with <code>storeName</code> and
<code>queryableStoreType</code> doesn't exist</dd>
</dl>
</li>
</ul>
<a name="localThreadsMetadata--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>localThreadsMetadata</h4>
<pre>public&nbsp;java.util.Set&lt;<a href="../../../../org/apache/kafka/streams/processor/ThreadMetadata.html" title="class in org.apache.kafka.streams.processor">ThreadMetadata</a>&gt;&nbsp;localThreadsMetadata()</pre>
<div class="block">Returns runtime information about the local threads of this <a href="../../../../org/apache/kafka/streams/KafkaStreams.html" title="class in org.apache.kafka.streams"><code>KafkaStreams</code></a> instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the set of <a href="../../../../org/apache/kafka/streams/processor/ThreadMetadata.html" title="class in org.apache.kafka.streams.processor"><code>ThreadMetadata</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/kafka/streams/KafkaClientSupplier.html" title="interface in org.apache.kafka.streams"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/kafka/streams/KafkaStreams.State.html" title="enum in org.apache.kafka.streams"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/kafka/streams/KafkaStreams.html" target="_top">Frames</a></li>
<li><a href="KafkaStreams.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>