blob: c51f2b1422c684e48ade921c44166fc60c0f42bc [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="de">
<head>
<!-- Generated by javadoc (17) -->
<title>TopologyBuilder (Storm 2.6.2 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.storm.topology, class: TopologyBuilder">
<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.6.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="class-use/TopologyBuilder.html">Use</a></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.storm.topology</a></div>
<h1 title="Class TopologyBuilder" class="title">Class TopologyBuilder</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/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.storm.topology.TopologyBuilder</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">TopologyBuilder</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">TopologyBuilder exposes the Java API for specifying a topology for Storm to execute. Topologies are Thrift structures in the end, but
since the Thrift API is so verbose, TopologyBuilder greatly eases the process of creating topologies. The template for creating and
submitting a topology looks something like:
<p>```java TopologyBuilder builder = new TopologyBuilder();
<p>builder.setSpout("1", new TestWordSpout(true), 5); builder.setSpout("2", new TestWordSpout(true), 3); builder.setBolt("3", new
TestWordCounter(), 3) .fieldsGrouping("1", new Fields("word")) .fieldsGrouping("2", new Fields("word")); builder.setBolt("4", new
TestGlobalCount()) .globalGrouping("1");
<p>Map&lt;String, Object&gt; conf = new HashMap(); conf.put(Config.TOPOLOGY_WORKERS, 4);
<p>StormSubmitter.submitTopology("mytopology", conf, builder.createTopology()); ```
<p>Running the exact same topology in local mode (in process), and configuring it to log all tuples emitted, looks
like the following. Note that it lets the topology run for 10 seconds before shutting down the local cluster.
<p>```java TopologyBuilder builder = new TopologyBuilder();
<p>builder.setSpout("1", new TestWordSpout(true), 5); builder.setSpout("2", new TestWordSpout(true), 3); builder.setBolt("3", new
TestWordCounter(), 3) .fieldsGrouping("1", new Fields("word")) .fieldsGrouping("2", new Fields("word")); builder.setBolt("4", new
TestGlobalCount()) .globalGrouping("1");
<p>Map&lt;String, Object&gt; conf = new HashMap(); conf.put(Config.TOPOLOGY_WORKERS, 4); conf.put(Config.TOPOLOGY_DEBUG, true);
<p>try (LocalCluster cluster = new LocalCluster(); LocalTopology topo = cluster.submitTopology("mytopology", conf,
builder.createTopology());){ Utils.sleep(10000); } ```
<p>The pattern for `TopologyBuilder` is to map component ids to components using the setSpout and setBolt methods. Those methods return
objects that are then used to declare the inputs for that component.</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>protected class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="TopologyBuilder.BoltGetter.html" class="type-name-link" title="class in org.apache.storm.topology">TopologyBuilder.BoltGetter</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>protected class&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="TopologyBuilder.ConfigGetter.html" class="type-name-link" title="class in org.apache.storm.topology">TopologyBuilder.ConfigGetter</a>&lt;<a href="TopologyBuilder.ConfigGetter.html" title="type parameter in TopologyBuilder.ConfigGetter">T</a> extends <a href="ComponentConfigurationDeclarer.html" title="interface in org.apache.storm.topology">ComponentConfigurationDeclarer</a>&gt;</code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>protected class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="TopologyBuilder.SpoutGetter.html" class="type-name-link" title="class in org.apache.storm.topology">TopologyBuilder.SpoutGetter</a></code></div>
<div class="col-last even-row-color">&nbsp;</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">TopologyBuilder</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-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-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-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addWorkerHook(org.apache.storm.hooks.IWorkerHook)" class="member-name-link">addWorkerHook</a><wbr>(<a href="../hooks/IWorkerHook.html" title="interface in org.apache.storm.hooks">IWorkerHook</a>&nbsp;workerHook)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Add a new worker lifecycle hook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../generated/StormTopology.html" title="class in org.apache.storm.generated">StormTopology</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createTopology()" class="member-name-link">createTopology</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.lambda.SerializableBiConsumer,java.lang.Number,java.lang.String...)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableBiConsumer.html" title="interface in org.apache.storm.lambda">SerializableBiConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>,<wbr><a href="BasicOutputCollector.html" title="class in org.apache.storm.topology">BasicOutputCollector</a>&gt;&nbsp;biConsumer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;fields)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.lambda.SerializableBiConsumer,java.lang.String...)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableBiConsumer.html" title="interface in org.apache.storm.lambda">SerializableBiConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>,<wbr><a href="BasicOutputCollector.html" title="class in org.apache.storm.topology">BasicOutputCollector</a>&gt;&nbsp;biConsumer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;fields)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.lambda.SerializableConsumer)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableConsumer.html" title="interface in org.apache.storm.lambda">SerializableConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>&gt;&nbsp;consumer)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.lambda.SerializableConsumer,java.lang.Number)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableConsumer.html" title="interface in org.apache.storm.lambda">SerializableConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>&gt;&nbsp;consumer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IBasicBolt)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IBasicBolt.html" title="interface in org.apache.storm.topology">IBasicBolt</a>&nbsp;bolt)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IBasicBolt,java.lang.Number)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IBasicBolt.html" title="interface in org.apache.storm.topology">IBasicBolt</a>&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IRichBolt)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichBolt.html" title="interface in org.apache.storm.topology">IRichBolt</a>&nbsp;bolt)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology with parallelism of just one thread.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IRichBolt,java.lang.Number)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichBolt.html" title="interface in org.apache.storm.topology">IRichBolt</a>&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology with the specified amount of parallelism.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;<br><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IStatefulBolt)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulBolt.html" title="interface in org.apache.storm.topology">IStatefulBolt</a>&lt;T&gt;&nbsp;bolt)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;<br><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IStatefulBolt,java.lang.Number)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulBolt.html" title="interface in org.apache.storm.topology">IStatefulBolt</a>&lt;T&gt;&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;<br><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IStatefulWindowedBolt)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulWindowedBolt.html" title="interface in org.apache.storm.topology">IStatefulWindowedBolt</a>&lt;T&gt;&nbsp;bolt)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;<br><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IStatefulWindowedBolt,java.lang.Number)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulWindowedBolt.html" title="interface in org.apache.storm.topology">IStatefulWindowedBolt</a>&lt;T&gt;&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IWindowedBolt)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IWindowedBolt.html" title="interface in org.apache.storm.topology">IWindowedBolt</a>&nbsp;bolt)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setBolt(java.lang.String,org.apache.storm.topology.IWindowedBolt,java.lang.Number)" class="member-name-link">setBolt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IWindowedBolt.html" title="interface in org.apache.storm.topology">IWindowedBolt</a>&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new bolt in this topology.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSpout(java.lang.String,org.apache.storm.lambda.SerializableSupplier)" class="member-name-link">setSpout</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableSupplier.html" title="interface in org.apache.storm.lambda">SerializableSupplier</a>&lt;?&gt;&nbsp;supplier)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new spout in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSpout(java.lang.String,org.apache.storm.lambda.SerializableSupplier,java.lang.Number)" class="member-name-link">setSpout</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableSupplier.html" title="interface in org.apache.storm.lambda">SerializableSupplier</a>&lt;?&gt;&nbsp;supplier,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new spout in this topology with the specified parallelism.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSpout(java.lang.String,org.apache.storm.topology.IRichSpout)" class="member-name-link">setSpout</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichSpout.html" title="interface in org.apache.storm.topology">IRichSpout</a>&nbsp;spout)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new spout in this topology.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSpout(java.lang.String,org.apache.storm.topology.IRichSpout,java.lang.Number)" class="member-name-link">setSpout</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichSpout.html" title="interface in org.apache.storm.topology">IRichSpout</a>&nbsp;spout,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Define a new spout in this topology with the specified parallelism.</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/11/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/11/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/11/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/11/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/11/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/11/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/11/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/11/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/11/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/11/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/11/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/11/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>TopologyBuilder</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">TopologyBuilder</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="createTopology()">
<h3>createTopology</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../generated/StormTopology.html" title="class in org.apache.storm.generated">StormTopology</a></span>&nbsp;<span class="element-name">createTopology</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IRichBolt)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichBolt.html" title="interface in org.apache.storm.topology">IRichBolt</a>&nbsp;bolt)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology with parallelism of just one thread.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's outputs.</dd>
<dd><code>bolt</code> - the bolt</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IRichBolt,java.lang.Number)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichBolt.html" title="interface in org.apache.storm.topology">IRichBolt</a>&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology with the specified amount of parallelism.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's
outputs.</dd>
<dd><code>bolt</code> - the bolt</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this bolt. Each task will run on a thread in a process
somewhere around the cluster.</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IBasicBolt)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IBasicBolt.html" title="interface in org.apache.storm.topology">IBasicBolt</a>&nbsp;bolt)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a basic bolt, which is a simpler to use but more restricted kind of bolt. Basic
bolts are intended for non-aggregation processing and automate the anchoring/acking process to achieve proper reliability in the
topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's outputs.</dd>
<dd><code>bolt</code> - the basic bolt</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IBasicBolt,java.lang.Number)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IBasicBolt.html" title="interface in org.apache.storm.topology">IBasicBolt</a>&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a basic bolt, which is a simpler to use but more restricted kind of bolt. Basic
bolts are intended for non-aggregation processing and automate the anchoring/acking process to achieve proper reliability in the
topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's
outputs.</dd>
<dd><code>bolt</code> - the basic bolt</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this bolt. Each task will run on a thread in a process
somewhere around the cluster.</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IWindowedBolt)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IWindowedBolt.html" title="interface in org.apache.storm.topology">IWindowedBolt</a>&nbsp;bolt)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a windowed bolt, intended for windowing operations. The <a href="IWindowedBolt.html#execute(org.apache.storm.windowing.TupleWindow)"><code>IWindowedBolt.execute(TupleWindow)</code></a> method is triggered for each window interval with the list of current events in the window.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's outputs.</dd>
<dd><code>bolt</code> - the windowed bolt</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IWindowedBolt,java.lang.Number)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IWindowedBolt.html" title="interface in org.apache.storm.topology">IWindowedBolt</a>&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a windowed bolt, intended for windowing operations. The <a href="IWindowedBolt.html#execute(org.apache.storm.windowing.TupleWindow)"><code>IWindowedBolt.execute(TupleWindow)</code></a> method is triggered for each window interval with the list of current events in the window.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's
outputs.</dd>
<dd><code>bolt</code> - the windowed bolt</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this bolt. Each task will run on a thread in a process
somwehere around the cluster.</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IStatefulBolt)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulBolt.html" title="interface in org.apache.storm.topology">IStatefulBolt</a>&lt;T&gt;&nbsp;bolt)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a stateful bolt, that requires its state (of computation) to be saved. When this
bolt is initialized, the <a href="IStatefulComponent.html#initState(T)"><code>IStatefulComponent.initState(State)</code></a> method is invoked after <a href="IStatefulBolt.html#prepare(java.util.Map,org.apache.storm.task.TopologyContext,org.apache.storm.task.OutputCollector)"><code>IStatefulBolt.prepare(Map, TopologyContext, OutputCollector)</code></a> but before <a href="IStatefulBolt.html#execute(org.apache.storm.tuple.Tuple)"><code>IStatefulBolt.execute(Tuple)</code></a> with its previously saved state.
<p>
The framework provides at-least once guarantee for the state updates. Bolts (both stateful and non-stateful) in a stateful topology
are expected to anchor the tuples while emitting and ack the input tuples once its processed.
</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's outputs.</dd>
<dd><code>bolt</code> - the stateful bolt</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IStatefulBolt,java.lang.Number)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulBolt.html" title="interface in org.apache.storm.topology">IStatefulBolt</a>&lt;T&gt;&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a stateful bolt, that requires its state (of computation) to be saved. When this
bolt is initialized, the <a href="IStatefulComponent.html#initState(T)"><code>IStatefulComponent.initState(State)</code></a> method is invoked after <a href="IStatefulBolt.html#prepare(java.util.Map,org.apache.storm.task.TopologyContext,org.apache.storm.task.OutputCollector)"><code>IStatefulBolt.prepare(Map, TopologyContext, OutputCollector)</code></a> but before <a href="IStatefulBolt.html#execute(org.apache.storm.tuple.Tuple)"><code>IStatefulBolt.execute(Tuple)</code></a> with its previously saved state.
<p>
The framework provides at-least once guarantee for the state updates. Bolts (both stateful and non-stateful) in a stateful topology
are expected to anchor the tuples while emitting and ack the input tuples once its processed.
</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's
outputs.</dd>
<dd><code>bolt</code> - the stateful bolt</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this bolt. Each task will run on a thread in a process
somwehere around the cluster.</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IStatefulWindowedBolt)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulWindowedBolt.html" title="interface in org.apache.storm.topology">IStatefulWindowedBolt</a>&lt;T&gt;&nbsp;bolt)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a stateful windowed bolt, intended for stateful windowing operations. The <a href="IWindowedBolt.html#execute(org.apache.storm.windowing.TupleWindow)"><code>IWindowedBolt.execute(TupleWindow)</code></a> method is triggered for each window interval with the list of current events in the
window. During initialization of this bolt <a href="IStatefulComponent.html#initState(T)"><code>IStatefulComponent.initState(State)</code></a> is invoked with its previously saved
state.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>T</code> - the type of the state (e.g. <a href="../state/KeyValueState.html" title="interface in org.apache.storm.state"><code>KeyValueState</code></a>)</dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's outputs.</dd>
<dd><code>bolt</code> - the stateful windowed bolt</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.topology.IStatefulWindowedBolt,java.lang.Number)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="type-parameters">&lt;T extends <a href="../state/State.html" title="interface in org.apache.storm.state">State</a>&gt;</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IStatefulWindowedBolt.html" title="interface in org.apache.storm.topology">IStatefulWindowedBolt</a>&lt;T&gt;&nbsp;bolt,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a stateful windowed bolt, intended for stateful windowing operations. The <a href="IWindowedBolt.html#execute(org.apache.storm.windowing.TupleWindow)"><code>IWindowedBolt.execute(TupleWindow)</code></a> method is triggered for each window interval with the list of current events in the
window. During initialization of this bolt <a href="IStatefulComponent.html#initState(T)"><code>IStatefulComponent.initState(State)</code></a> is invoked with its previously saved
state.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's
outputs.</dd>
<dd><code>bolt</code> - the stateful windowed bolt</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this bolt. Each task will run on a thread in a process
somewhere around the cluster.</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.lambda.SerializableBiConsumer,java.lang.String...)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableBiConsumer.html" title="interface in org.apache.storm.lambda">SerializableBiConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>,<wbr><a href="BasicOutputCollector.html" title="class in org.apache.storm.topology">BasicOutputCollector</a>&gt;&nbsp;biConsumer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;fields)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a lambda basic bolt, which is a simpler to use but more restricted kind of bolt.
Basic bolts are intended for non-aggregation processing and automate the anchoring/acking process to achieve proper reliability in
the topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's outputs.</dd>
<dd><code>biConsumer</code> - lambda expression that implements tuple processing for this bolt</dd>
<dd><code>fields</code> - fields for tuple that should be emitted to downstream bolts</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.lambda.SerializableBiConsumer,java.lang.Number,java.lang.String...)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableBiConsumer.html" title="interface in org.apache.storm.lambda">SerializableBiConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>,<wbr><a href="BasicOutputCollector.html" title="class in org.apache.storm.topology">BasicOutputCollector</a>&gt;&nbsp;biConsumer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;fields)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a lambda basic bolt, which is a simpler to use but more restricted kind of bolt.
Basic bolts are intended for non-aggregation processing and automate the anchoring/acking process to achieve proper reliability in
the topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's
outputs.</dd>
<dd><code>biConsumer</code> - lambda expression that implements tuple processing for this bolt</dd>
<dd><code>fields</code> - fields for tuple that should be emitted to downstream bolts</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this bolt. Each task will run on a thread in a process
somewhere around the cluster.</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.lambda.SerializableConsumer)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableConsumer.html" title="interface in org.apache.storm.lambda">SerializableConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>&gt;&nbsp;consumer)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a lambda basic bolt, which is a simpler to use but more restricted kind of bolt.
Basic bolts are intended for non-aggregation processing and automate the anchoring/acking process to achieve proper reliability in
the topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's outputs.</dd>
<dd><code>consumer</code> - lambda expression that implements tuple processing for this bolt</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setBolt(java.lang.String,org.apache.storm.lambda.SerializableConsumer,java.lang.Number)">
<h3>setBolt</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="BoltDeclarer.html" title="interface in org.apache.storm.topology">BoltDeclarer</a></span>&nbsp;<span class="element-name">setBolt</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableConsumer.html" title="interface in org.apache.storm.lambda">SerializableConsumer</a>&lt;<a href="../tuple/Tuple.html" title="interface in org.apache.storm.tuple">Tuple</a>&gt;&nbsp;consumer,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new bolt in this topology. This defines a lambda basic bolt, which is a simpler to use but more restricted kind of bolt.
Basic bolts are intended for non-aggregation processing and automate the anchoring/acking process to achieve proper reliability in
the topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this bolt's
outputs.</dd>
<dd><code>consumer</code> - lambda expression that implements tuple processing for this bolt</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this bolt. Each task will run on a thread in a process
somewhere around the cluster.</dd>
<dt>Returns:</dt>
<dd>use the returned object to declare the inputs to this component</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSpout(java.lang.String,org.apache.storm.topology.IRichSpout)">
<h3>setSpout</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></span>&nbsp;<span class="element-name">setSpout</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichSpout.html" title="interface in org.apache.storm.topology">IRichSpout</a>&nbsp;spout)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new spout in this topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this spout's outputs.</dd>
<dd><code>spout</code> - the spout</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSpout(java.lang.String,org.apache.storm.topology.IRichSpout,java.lang.Number)">
<h3>setSpout</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></span>&nbsp;<span class="element-name">setSpout</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="IRichSpout.html" title="interface in org.apache.storm.topology">IRichSpout</a>&nbsp;spout,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new spout in this topology with the specified parallelism. If the spout declares itself as non-distributed, the
parallelism_hint will be ignored and only one task will be allocated to this component.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this spout's
outputs.</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this spout. Each task will run on a thread in a
process somewhere around the cluster.</dd>
<dd><code>spout</code> - the spout</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSpout(java.lang.String,org.apache.storm.lambda.SerializableSupplier)">
<h3>setSpout</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></span>&nbsp;<span class="element-name">setSpout</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableSupplier.html" title="interface in org.apache.storm.lambda">SerializableSupplier</a>&lt;?&gt;&nbsp;supplier)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new spout in this topology.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this spout's outputs.</dd>
<dd><code>supplier</code> - lambda expression that implements tuple generating for this spout</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSpout(java.lang.String,org.apache.storm.lambda.SerializableSupplier,java.lang.Number)">
<h3>setSpout</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SpoutDeclarer.html" title="interface in org.apache.storm.topology">SpoutDeclarer</a></span>&nbsp;<span class="element-name">setSpout</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="../lambda/SerializableSupplier.html" title="interface in org.apache.storm.lambda">SerializableSupplier</a>&lt;?&gt;&nbsp;supplier,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;parallelismHint)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Define a new spout in this topology with the specified parallelism. If the spout declares itself as non-distributed, the
parallelism_hint will be ignored and only one task will be allocated to this component.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id of this component. This id is referenced by other components that want to consume this spout's
outputs.</dd>
<dd><code>parallelismHint</code> - the number of tasks that should be assigned to execute this spout. Each task will run on a thread in a
process somewhere around the cluster.</dd>
<dd><code>supplier</code> - lambda expression that implements tuple generating for this spout</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if <code>parallelism_hint</code> is not positive</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addWorkerHook(org.apache.storm.hooks.IWorkerHook)">
<h3>addWorkerHook</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addWorkerHook</span><wbr><span class="parameters">(<a href="../hooks/IWorkerHook.html" title="interface in org.apache.storm.hooks">IWorkerHook</a>&nbsp;workerHook)</span></div>
<div class="block">Add a new worker lifecycle hook.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>workerHook</code> - the lifecycle hook to add</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>