blob: e2a6b13a8f6db10973303615db1a964435fb4393 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.11) on Mon Oct 11 11:08:51 CDT 2021 -->
<title>ContentProducer (Eclipse Jetty API Doc - v10.0.7)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-10-11">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ContentProducer (Eclipse Jetty API Doc - v10.0.7)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ContentProducer.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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.server</a></div>
<h2 title="Interface ContentProducer" class="title">Interface ContentProducer</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public interface <span class="typeNameLabel">ContentProducer</span></pre>
<div class="block">ContentProducer is the bridge between <a href="HttpInput.html" title="class in org.eclipse.jetty.server"><code>HttpInput</code></a> and <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.
It wraps a <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a> and uses the <a href="HttpChannel.html#needContent()"><code>HttpChannel.needContent()</code></a>,
<a href="HttpChannel.html#produceContent()"><code>HttpChannel.produceContent()</code></a> and <a href="HttpChannel.html#failAllContent(java.lang.Throwable)"><code>HttpChannel.failAllContent(Throwable)</code></a>
methods, tracks the current state of the channel's input by updating the
<a href="HttpChannelState.html" title="class in org.eclipse.jetty.server"><code>HttpChannelState</code></a> and provides the necessary mechanism to unblock
the reader thread when using a blocking implementation or to know if the reader thread
has to be rescheduled when using an async implementation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#available()">available</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the byte count that can immediately be read from this
<a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance or the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkMinDataRate()">checkMinDataRate</a></span>()</code></th>
<td class="colLast">
<div class="block">Check if the current data rate consumption is above the minimal rate.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#consumeAll()">consumeAll</a></span>()</code></th>
<td class="colLast">
<div class="block">Fail all content currently available in this <a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance
as well as in the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInterceptor()">getInterceptor</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRawContentArrived()">getRawContentArrived</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the byte count produced by the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasContent()">hasContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Check if this <a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance contains some
content without querying the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isError()">isError</a></span>()</code></th>
<td class="colLast">
<div class="block">Check if the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a> reached an error content.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReady()">isReady</a></span>()</code></th>
<td class="colLast">
<div class="block">Check if this <a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance has some content that can be read without blocking.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../util/thread/AutoLock.html" title="class in org.eclipse.jetty.util.thread">AutoLock</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lock()">lock</a></span>()</code></th>
<td class="colLast">
<div class="block">Lock this instance.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextContent()">nextContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the next content that can be read from or that describes the special condition
that was reached (error, eof).</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onContentProducible()">onContentProducible</a></span>()</code></th>
<td class="colLast">
<div class="block">Wake up the thread that is waiting for the next content.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reclaim(org.eclipse.jetty.server.HttpInput.Content)">reclaim</a></span>&#8203;(<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;content)</code></th>
<td class="colLast">
<div class="block">Free up the content by calling <a href="../util/Callback.html#succeeded()"><code>Callback.succeeded()</code></a> on it
and updating this instance' internal state.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recycle()">recycle</a></span>()</code></th>
<td class="colLast">
<div class="block">Reset all internal state and clear any held resources.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInterceptor(org.eclipse.jetty.server.HttpInput.Interceptor)">setInterceptor</a></span>&#8203;(<a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;interceptor)</code></th>
<td class="colLast">
<div class="block">Set the interceptor.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="lock()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lock</h4>
<pre class="methodSignature"><a href="../util/thread/AutoLock.html" title="class in org.eclipse.jetty.util.thread">AutoLock</a>&nbsp;lock()</pre>
<div class="block">Lock this instance. The lock must be held before any method of this instance's
method be called, and must be manually released afterward.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the lock that is guarding this instance.</dd>
</dl>
</li>
</ul>
<a id="recycle()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recycle</h4>
<pre class="methodSignature">void&nbsp;recycle()</pre>
<div class="block">Reset all internal state and clear any held resources.</div>
</li>
</ul>
<a id="consumeAll()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consumeAll</h4>
<pre class="methodSignature">boolean&nbsp;consumeAll()</pre>
<div class="block">Fail all content currently available in this <a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance
as well as in the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.
This call is always non-blocking.
Doesn't change state.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if EOF was reached.</dd>
</dl>
</li>
</ul>
<a id="checkMinDataRate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkMinDataRate</h4>
<pre class="methodSignature">void&nbsp;checkMinDataRate()</pre>
<div class="block">Check if the current data rate consumption is above the minimal rate.
Abort the channel, fail the content currently available and throw a
BadMessageException(REQUEST_TIMEOUT_408) if the check fails.</div>
</li>
</ul>
<a id="getRawContentArrived()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRawContentArrived</h4>
<pre class="methodSignature">long&nbsp;getRawContentArrived()</pre>
<div class="block">Get the byte count produced by the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.
This call is always non-blocking.
Doesn't change state.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the byte count produced by the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.</dd>
</dl>
</li>
</ul>
<a id="available()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>available</h4>
<pre class="methodSignature">int&nbsp;available()</pre>
<div class="block">Get the byte count that can immediately be read from this
<a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance or the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.
This call is always non-blocking.
Doesn't change state.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the available byte count.</dd>
</dl>
</li>
</ul>
<a id="hasContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasContent</h4>
<pre class="methodSignature">boolean&nbsp;hasContent()</pre>
<div class="block">Check if this <a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance contains some
content without querying the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.
This call is always non-blocking.
Doesn't change state.
Doesn't query the HttpChannel.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this <a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance contains content, false otherwise.</dd>
</dl>
</li>
</ul>
<a id="isError()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isError</h4>
<pre class="methodSignature">boolean&nbsp;isError()</pre>
<div class="block">Check if the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a> reached an error content.
This call is always non-blocking.
Doesn't change state.
Doesn't query the HttpChannel.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the underlying <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a> reached an error content, false otherwise.</dd>
</dl>
</li>
</ul>
<a id="nextContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextContent</h4>
<pre class="methodSignature"><a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;nextContent()</pre>
<div class="block">Get the next content that can be read from or that describes the special condition
that was reached (error, eof).
This call may or may not block until some content is available, depending on the implementation.
The returned content is decoded by the interceptor set with <a href="#setInterceptor(org.eclipse.jetty.server.HttpInput.Interceptor)"><code>setInterceptor(HttpInput.Interceptor)</code></a>
or left as-is if no intercept is set.
After this call, state can be either of UNREADY or IDLE.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the next content that can be read from or null if the implementation does not block
and has no available content.</dd>
</dl>
</li>
</ul>
<a id="reclaim(org.eclipse.jetty.server.HttpInput.Content)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reclaim</h4>
<pre class="methodSignature">void&nbsp;reclaim&#8203;(<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;content)</pre>
<div class="block">Free up the content by calling <a href="../util/Callback.html#succeeded()"><code>Callback.succeeded()</code></a> on it
and updating this instance' internal state.</div>
</li>
</ul>
<a id="isReady()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReady</h4>
<pre class="methodSignature">boolean&nbsp;isReady()</pre>
<div class="block">Check if this <a href="ContentProducer.html" title="interface in org.eclipse.jetty.server"><code>ContentProducer</code></a> instance has some content that can be read without blocking.
If there is some, the next call to <a href="#nextContent()"><code>nextContent()</code></a> will not block.
If there isn't any and the implementation does not block, this method will trigger a
<code>ReadListener</code> callback once some content is available.
This call is always non-blocking.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if some content is immediately available, false otherwise.</dd>
</dl>
</li>
</ul>
<a id="getInterceptor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterceptor</h4>
<pre class="methodSignature"><a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;getInterceptor()</pre>
<div class="block">Get the <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a>, or null if none set.</dd>
</dl>
</li>
</ul>
<a id="setInterceptor(org.eclipse.jetty.server.HttpInput.Interceptor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInterceptor</h4>
<pre class="methodSignature">void&nbsp;setInterceptor&#8203;(<a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;interceptor)</pre>
<div class="block">Set the interceptor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>interceptor</code> - The interceptor to use.</dd>
</dl>
</li>
</ul>
<a id="onContentProducible()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onContentProducible</h4>
<pre class="methodSignature">boolean&nbsp;onContentProducible()</pre>
<div class="block">Wake up the thread that is waiting for the next content.
After this call, state can be READY.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the thread has to be rescheduled, false otherwise.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ContentProducer.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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>