<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Mon Feb 22 09:51:41 CST 2021 -->
<title>Servlet3Continuation (Jetty :: Project 9.4.37.v20210219 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-02-22">
<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="Servlet3Continuation (Jetty :: Project 9.4.37.v20210219 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":42,"i13":42,"i14":42,"i15":42,"i16":42,"i17":42,"i18":42,"i19":42,"i20":42};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
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/Servlet3Continuation.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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.continuation</a></div>
<h2 title="Class Servlet3Continuation" class="title">Class Servlet3Continuation</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.continuation.Servlet3Continuation</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.util.EventListener</code>, <code>javax.servlet.AsyncListener</code>, <code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
</dl>
<hr>
<pre>@Deprecated
public class <span class="typeNameLabel">Servlet3Continuation</span>
extends java.lang.Object
implements <a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a>, javax.servlet.AsyncListener</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use Servlet 3.0 <code>AsyncContext</code> instead</div>
</div>
<div class="block">This implementation of Continuation is used by <a href="ContinuationSupport.html" title="class in org.eclipse.jetty.continuation"><code>ContinuationSupport</code></a>
 when it detects that the application has been deployed in a Servlet 3
 server.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.continuation.Continuation">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.jetty.continuation.<a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></h3>
<code><a href="Continuation.html#ATTRIBUTE">ATTRIBUTE</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.servlet.ServletRequest)">Servlet3Continuation</a></span>&#8203;(javax.servlet.ServletRequest&nbsp;request)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== 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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addContinuationListener(org.eclipse.jetty.continuation.ContinuationListener)">addContinuationListener</a></span>&#8203;(<a href="ContinuationListener.html" title="interface in org.eclipse.jetty.continuation">ContinuationListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Add a ContinuationListener.</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="#complete()">complete</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Complete a suspended request.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAttribute(java.lang.String)">getAttribute</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Get a request attribute.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>javax.servlet.ServletResponse</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getServletResponse()">getServletResponse</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Get the suspended response.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isExpired()">isExpired</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</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="#isInitial()">isInitial</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</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="#isResponseWrapped()">isResponseWrapped</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Is the suspended response wrapped.</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="#isResumed()">isResumed</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSuspended()">isSuspended</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keepWrappers()">keepWrappers</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onComplete(javax.servlet.AsyncEvent)">onComplete</a></span>&#8203;(javax.servlet.AsyncEvent&nbsp;event)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</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="#onError(javax.servlet.AsyncEvent)">onError</a></span>&#8203;(javax.servlet.AsyncEvent&nbsp;event)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</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="#onStartAsync(javax.servlet.AsyncEvent)">onStartAsync</a></span>&#8203;(javax.servlet.AsyncEvent&nbsp;event)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</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="#onTimeout(javax.servlet.AsyncEvent)">onTimeout</a></span>&#8203;(javax.servlet.AsyncEvent&nbsp;event)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAttribute(java.lang.String)">removeAttribute</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Remove a request attribute.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resume()">resume</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Resume a suspended request.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAttribute(java.lang.String,java.lang.Object)">setAttribute</a></span>&#8203;(java.lang.String&nbsp;name,
            java.lang.Object&nbsp;attribute)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Set a request attribute.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimeout(long)">setTimeout</a></span>&#8203;(long&nbsp;timeoutMs)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Set the continuation timeout.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#suspend()">suspend</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Suspend the processing of the request and associated
 <code>ServletResponse</code>.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#suspend(javax.servlet.ServletResponse)">suspend</a></span>&#8203;(javax.servlet.ServletResponse&nbsp;response)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Suspend the processing of the request and associated
 <code>ServletResponse</code>.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#undispatch()">undispatch</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Undispatch the request.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(javax.servlet.ServletRequest)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Servlet3Continuation</h4>
<pre>public&nbsp;Servlet3Continuation&#8203;(javax.servlet.ServletRequest&nbsp;request)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="addContinuationListener(org.eclipse.jetty.continuation.ContinuationListener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addContinuationListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addContinuationListener&#8203;(<a href="ContinuationListener.html" title="interface in org.eclipse.jetty.continuation">ContinuationListener</a>&nbsp;listener)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#addContinuationListener(org.eclipse.jetty.continuation.ContinuationListener)">Continuation</a></code></span></div>
<div class="block">Add a ContinuationListener.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#addContinuationListener(org.eclipse.jetty.continuation.ContinuationListener)">addContinuationListener</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the listener</dd>
</dl>
</li>
</ul>
<a id="complete()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>complete</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;complete()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#complete()">Continuation</a></code></span></div>
<div class="block">Complete a suspended request.

 <p>
 This method can be called by any thread that has been passed a reference
 to a suspended request. When a request is completed, the associated
 response object committed and flushed. The request is not redispatched.
 </p>

 <p>
 If complete is called before a suspended request is returned to the
 container (ie the thread that called <a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a> is still
 within the filter chain and/or servlet service method), then the complete
 does not take effect until the call to the filter chain and/or servlet
 returns to the container. In this case both <a href="Continuation.html#isSuspended()"><code>Continuation.isSuspended()</code></a> and
 <a href="Continuation.html#isResumed()"><code>Continuation.isResumed()</code></a> return true.
 </p>

 <p>
 Typically resume() is used after a call to <a href="Continuation.html#suspend(javax.servlet.ServletResponse)"><code>Continuation.suspend(ServletResponse)</code></a> with
 a possibly wrapped response. The async handler should use the response
 provided by <a href="Continuation.html#getServletResponse()"><code>Continuation.getServletResponse()</code></a> to write the response before
 calling <a href="Continuation.html#complete()"><code>Continuation.complete()</code></a>. If the request was suspended with a
 call to <a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a> then no response object will be available via
 <a href="Continuation.html#getServletResponse()"><code>Continuation.getServletResponse()</code></a>.
 </p>

 <p>
 Once complete has been called and any thread calling the filter chain
 and/or servlet chain has returned to the container, the request lifecycle
 is complete. The container is able to recycle request objects, so it is
 not valid hold a request or continuation reference after the end of the
 life cycle.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#complete()">complete</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a></dd>
</dl>
</li>
</ul>
<a id="getServletResponse()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServletResponse</h4>
<pre class="methodSignature">public&nbsp;javax.servlet.ServletResponse&nbsp;getServletResponse()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#getServletResponse()">Continuation</a></code></span></div>
<div class="block">Get the suspended response.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#getServletResponse()">getServletResponse</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>ServletResponse</code> passed to <a href="Continuation.html#suspend(javax.servlet.ServletResponse)"><code>Continuation.suspend(ServletResponse)</code></a>.</dd>
</dl>
</li>
</ul>
<a id="isExpired()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExpired</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isExpired()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#isExpired()">isExpired</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true after a request has been redispatched as the result of a
 timeout. Returns false after any subsequent call to suspend.</dd>
</dl>
</li>
</ul>
<a id="isInitial()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInitial</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isInitial()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#isInitial()">isInitial</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true while the request is within the initial dispatch to the
 filter chain and/or servlet. Will return false once the calling
 thread has returned to the container after suspend has been
 called and during any subsequent redispatch.</dd>
</dl>
</li>
</ul>
<a id="isResumed()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isResumed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isResumed()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#isResumed()">isResumed</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the request has been redispatched by a call to
 <a href="Continuation.html#resume()"><code>Continuation.resume()</code></a>. Returns false after any subsequent call to
 suspend</dd>
</dl>
</li>
</ul>
<a id="isSuspended()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSuspended</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSuspended()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#isSuspended()">isSuspended</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true after <a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a> has been called and before the
 request has been redispatched due to being resumed, completed or
 timed out.</dd>
</dl>
</li>
</ul>
<a id="keepWrappers()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>keepWrappers</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;keepWrappers()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="resume()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;resume()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#resume()">Continuation</a></code></span></div>
<div class="block">Resume a suspended request.

 <p>
 This method can be called by any thread that has been passed a reference
 to a continuation. When called the request is redispatched to the
 normal filter chain and servlet processing with <a href="Continuation.html#isInitial()"><code>Continuation.isInitial()</code></a> false.
 </p>
 <p>
 If resume is called before a suspended request is returned to the
 container (ie the thread that called <a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a> is still
 within the filter chain and/or servlet service method), then the resume
 does not take effect until the call to the filter chain and/or servlet
 returns to the container. In this case both <a href="Continuation.html#isSuspended()"><code>Continuation.isSuspended()</code></a> and
 <a href="Continuation.html#isResumed()"><code>Continuation.isResumed()</code></a> return true. Multiple calls to resume are ignored.
 </p>
 <p>
 Typically resume() is used after a call to <a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a> with
 no arguments. The dispatch after a resume call will use the original
 request and response objects, even if <a href="Continuation.html#suspend(javax.servlet.ServletResponse)"><code>Continuation.suspend(ServletResponse)</code></a>
 had been passed a wrapped response.
 </p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#resume()">resume</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a></dd>
</dl>
</li>
</ul>
<a id="setTimeout(long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeout</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setTimeout&#8203;(long&nbsp;timeoutMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#setTimeout(long)">Continuation</a></code></span></div>
<div class="block">Set the continuation timeout.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#setTimeout(long)">setTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeoutMs</code> - The time in milliseconds to wait before expiring this
 continuation after a call to <a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a> or <a href="Continuation.html#suspend(javax.servlet.ServletResponse)"><code>Continuation.suspend(ServletResponse)</code></a>.
 A timeout of &lt;=0 means the continuation will never expire.</dd>
</dl>
</li>
</ul>
<a id="suspend(javax.servlet.ServletResponse)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>suspend</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;suspend&#8203;(javax.servlet.ServletResponse&nbsp;response)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#suspend(javax.servlet.ServletResponse)">Continuation</a></code></span></div>
<div class="block">Suspend the processing of the request and associated
 <code>ServletResponse</code>.

 <p>
 After this method has been called, the lifecycle of the request will be
 extended beyond the return to the container from the
 <code>Servlet.service(ServletRequest, ServletResponse)</code> method and
 <code>Filter.doFilter(ServletRequest, ServletResponse, FilterChain)</code>
 calls. When a suspended request is returned to the container after
 a dispatch, then the container will not commit the associated response
 (unless an exception other than <a href="ContinuationThrowable.html" title="class in org.eclipse.jetty.continuation"><code>ContinuationThrowable</code></a> is thrown).
 </p>
 <p>
 When the thread calling the filter chain and/or servlet has returned to
 the container with a suspended request, the thread is freed for other
 tasks and the request is held until either:
 <ul>
 <li>a call to <a href="Continuation.html#resume()"><code>Continuation.resume()</code></a>.</li>
 <li>a call to <a href="Continuation.html#complete()"><code>Continuation.complete()</code></a>.</li>
 <li>the timeout expires.</li>
 </ul>
 <p>
 Typically suspend with a response argument is uses when a call to <a href="Continuation.html#complete()"><code>Continuation.complete()</code></a>
 is expected. If a call to <a href="Continuation.html#resume()"><code>Continuation.resume()</code></a> is expected, then the
 <a href="Continuation.html#suspend()"><code>Continuation.suspend()</code></a> method should be used instead of this method.
 </p>
 <p>
 Filters that may wrap the response object should check <a href="Continuation.html#isResponseWrapped()"><code>Continuation.isResponseWrapped()</code></a>
 to decide if they should destroy/finish the wrapper. If <a href="Continuation.html#isResponseWrapped()"><code>Continuation.isResponseWrapped()</code></a>
 returns true, then the wrapped request has been passed to the asynchronous
 handler and the wrapper should not be destroyed/finished until after a call to
 <a href="Continuation.html#complete()"><code>Continuation.complete()</code></a> (potentially using a <a href="ContinuationListener.html#onComplete(org.eclipse.jetty.continuation.Continuation)"><code>ContinuationListener.onComplete(Continuation)</code></a>
 listener).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#suspend(javax.servlet.ServletResponse)">suspend</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>response</code> - The response to return via a call to <a href="Continuation.html#getServletResponse()"><code>Continuation.getServletResponse()</code></a></dd>
</dl>
</li>
</ul>
<a id="suspend()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>suspend</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;suspend()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#suspend()">Continuation</a></code></span></div>
<div class="block">Suspend the processing of the request and associated
 <code>ServletResponse</code>.

 <p>
 After this method has been called, the lifecycle of the request will be
 extended beyond the return to the container from the
 <code>Servlet.service(ServletRequest, ServletResponse)</code> method and
 <code>Filter.doFilter(ServletRequest, ServletResponse, FilterChain)</code>
 calls. When a suspended request is returned to the container after
 a dispatch, then the container will not commit the associated response
 (unless an exception other than <a href="ContinuationThrowable.html" title="class in org.eclipse.jetty.continuation"><code>ContinuationThrowable</code></a> is thrown).
 </p>

 <p>
 When the thread calling the filter chain and/or servlet has returned to
 the container with a suspended request, the thread is freed for other
 tasks and the request is held until either:
 <ul>
 <li>a call to <a href="Continuation.html#resume()"><code>Continuation.resume()</code></a>.</li>
 <li>a call to <a href="Continuation.html#complete()"><code>Continuation.complete()</code></a>.</li>
 <li>the timeout expires.</li>
 </ul>
 <p>
 Typically suspend with no arguments is uses when a call to <a href="Continuation.html#resume()"><code>Continuation.resume()</code></a>
 is expected. If a call to <a href="Continuation.html#complete()"><code>Continuation.complete()</code></a> is expected, then the
 <a href="Continuation.html#suspend(javax.servlet.ServletResponse)"><code>Continuation.suspend(ServletResponse)</code></a> method should be used instead of this method.
 </p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#suspend()">suspend</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
</dl>
</li>
</ul>
<a id="isResponseWrapped()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isResponseWrapped</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isResponseWrapped()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#isResponseWrapped()">Continuation</a></code></span></div>
<div class="block">Is the suspended response wrapped.
 <p>
 Filters that wrap the response object should check this method to
 determine if they should destroy/finish the wrapped response. If
 the request was suspended with a call to <a href="Continuation.html#suspend(javax.servlet.ServletResponse)"><code>Continuation.suspend(ServletResponse)</code></a>
 that passed the wrapped response, then the filter should register
 a <a href="ContinuationListener.html" title="interface in org.eclipse.jetty.continuation"><code>ContinuationListener</code></a> to destroy/finish the wrapped response
 during a call to <a href="ContinuationListener.html#onComplete(org.eclipse.jetty.continuation.Continuation)"><code>ContinuationListener.onComplete(Continuation)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#isResponseWrapped()">isResponseWrapped</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if <a href="Continuation.html#suspend(javax.servlet.ServletResponse)"><code>Continuation.suspend(ServletResponse)</code></a> has been passed a
 <code>ServletResponseWrapper</code> instance.</dd>
</dl>
</li>
</ul>
<a id="getAttribute(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttribute</h4>
<pre class="methodSignature">public&nbsp;java.lang.Object&nbsp;getAttribute&#8203;(java.lang.String&nbsp;name)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#getAttribute(java.lang.String)">Continuation</a></code></span></div>
<div class="block">Get a request attribute.
 This method is a convenience method to call the <code>ServletRequest.getAttribute(String)</code>
 method on the associated request object.
 This is a thread safe call and may be called by any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#getAttribute(java.lang.String)">getAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the attribute name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the attribute value</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Continuation.html#getAttribute(java.lang.String)"><code>Continuation.getAttribute(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="removeAttribute(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAttribute</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeAttribute&#8203;(java.lang.String&nbsp;name)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#removeAttribute(java.lang.String)">Continuation</a></code></span></div>
<div class="block">Remove a request attribute.
 This method is a convenience method to call the <code>ServletRequest.removeAttribute(String)</code>
 method on the associated request object.
 This is a thread safe call and may be called by any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#removeAttribute(java.lang.String)">removeAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the attribute name</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Continuation.html#removeAttribute(java.lang.String)"><code>Continuation.removeAttribute(java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a id="setAttribute(java.lang.String,java.lang.Object)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttribute</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setAttribute&#8203;(java.lang.String&nbsp;name,
                         java.lang.Object&nbsp;attribute)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#setAttribute(java.lang.String,java.lang.Object)">Continuation</a></code></span></div>
<div class="block">Set a request attribute.
 This method is a convenience method to call the <code>ServletRequest.setAttribute(String, Object)</code>
 method on the associated request object.
 This is a thread safe call and may be called by any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#setAttribute(java.lang.String,java.lang.Object)">setAttribute</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the attribute name</dd>
<dd><code>attribute</code> - the attribute value</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Continuation.html#setAttribute(java.lang.String,java.lang.Object)"><code>Continuation.setAttribute(java.lang.String, java.lang.Object)</code></a></dd>
</dl>
</li>
</ul>
<a id="undispatch()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>undispatch</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;undispatch()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Continuation.html#undispatch()">Continuation</a></code></span></div>
<div class="block">Undispatch the request.
 <p>
 This method can be called on a suspended continuation in order
 to exit the dispatch to the filter/servlet by throwing a <a href="ContinuationThrowable.html" title="class in org.eclipse.jetty.continuation"><code>ContinuationThrowable</code></a>
 which is caught either by the container or the <a href="ContinuationFilter.html" title="class in org.eclipse.jetty.continuation"><code>ContinuationFilter</code></a>.
 This is an alternative to simply returning from the dispatch in the case
 where filters in the filter chain may not be prepared to handle a suspended
 request.
 </p>
 This method should only be used as a last resort and a normal return is a prefereable
 solution if filters can be updated to handle that case.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Continuation.html#undispatch()">undispatch</a></code>&nbsp;in interface&nbsp;<code><a href="Continuation.html" title="interface in org.eclipse.jetty.continuation">Continuation</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Continuation.html#undispatch()"><code>Continuation.undispatch()</code></a></dd>
</dl>
</li>
</ul>
<a id="onComplete(javax.servlet.AsyncEvent)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onComplete</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onComplete&#8203;(javax.servlet.AsyncEvent&nbsp;event)
                throws java.io.IOException</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>onComplete</code>&nbsp;in interface&nbsp;<code>javax.servlet.AsyncListener</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="onError(javax.servlet.AsyncEvent)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onError</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onError&#8203;(javax.servlet.AsyncEvent&nbsp;event)
             throws java.io.IOException</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>onError</code>&nbsp;in interface&nbsp;<code>javax.servlet.AsyncListener</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="onStartAsync(javax.servlet.AsyncEvent)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStartAsync</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onStartAsync&#8203;(javax.servlet.AsyncEvent&nbsp;event)
                  throws java.io.IOException</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>onStartAsync</code>&nbsp;in interface&nbsp;<code>javax.servlet.AsyncListener</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="onTimeout(javax.servlet.AsyncEvent)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onTimeout</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onTimeout&#8203;(javax.servlet.AsyncEvent&nbsp;event)
               throws java.io.IOException</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>onTimeout</code>&nbsp;in interface&nbsp;<code>javax.servlet.AsyncListener</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></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/Servlet3Continuation.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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>
