blob: 4053017a0ab6877ff237b1615a424f94430534bc [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SessionCallback (ActiveMQ Artemis Website 2.33.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SessionCallback (ActiveMQ Artemis Website 2.33.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":18,"i3":6,"i4":6,"i5":18,"i6":6,"i7":18,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":18,"i15":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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/SessionCallback.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="../../../../../../../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>
<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.apache.activemq.artemis.spi.core.protocol</a></div>
<h2 title="Interface SessionCallback" class="title">Interface SessionCallback</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public interface <span class="typeNameLabel">SessionCallback</span></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section>
<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><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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="#afterDelivery()">afterDelivery</a></span>()</code></th>
<td class="colLast">
<div class="block">This can be used to complete certain operations outside of the lock,
like acks or other operations.</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="#browserFinished(org.apache.activemq.artemis.core.server.ServerConsumer)">browserFinished</a></span>&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumer)</code></th>
<td class="colLast">
<div class="block">Some protocols (Openwire) needs a special message with the browser is finished.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(boolean)">close</a></span>&#8203;(boolean&nbsp;failed)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#closed()">closed</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disconnect(org.apache.activemq.artemis.core.server.ServerConsumer,java.lang.String)">disconnect</a></span>&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;errorMessage)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>default org.apache.activemq.artemis.core.transaction.Transaction</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentTransaction()">getCurrentTransaction</a></span>()</code></th>
<td class="colLast">&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="#hasCredits(org.apache.activemq.artemis.core.server.ServerConsumer)">hasCredits</a></span>&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID)</code></th>
<td class="colLast">
<div class="block">This one gives a chance for Proton to have its own flow control.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>default boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasCredits(org.apache.activemq.artemis.core.server.ServerConsumer,org.apache.activemq.artemis.core.server.MessageReference)">hasCredits</a></span>&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref)</code></th>
<td class="colLast">
<div class="block">This one includes the MessageReference for protocols like MQTT 5 (which only enforces flow control on durable
messages (i.e.</div>
</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="#isWritable(org.apache.activemq.artemis.spi.core.remoting.ReadyListener,java.lang.Object)">isWritable</a></span>&#8203;(<a href="../remoting/ReadyListener.html" title="interface in org.apache.activemq.artemis.spi.core.remoting">ReadyListener</a>&nbsp;callback,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;protocolContext)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendLargeMessage(org.apache.activemq.artemis.core.server.MessageReference,org.apache.activemq.artemis.core.server.ServerConsumer,long,int)">sendLargeMessage</a></span>&#8203;(org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref,
org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
long&nbsp;bodySize,
int&nbsp;deliveryCount)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendLargeMessageContinuation(org.apache.activemq.artemis.core.server.ServerConsumer,byte%5B%5D,boolean,boolean)">sendLargeMessageContinuation</a></span>&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
byte[]&nbsp;body,
boolean&nbsp;continues,
boolean&nbsp;requiresResponse)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendMessage(org.apache.activemq.artemis.core.server.MessageReference,org.apache.activemq.artemis.core.server.ServerConsumer,int)">sendMessage</a></span>&#8203;(org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref,
org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
int&nbsp;deliveryCount)</code></th>
<td class="colLast">&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="#sendProducerCreditsFailMessage(int,org.apache.activemq.artemis.api.core.SimpleString)">sendProducerCreditsFailMessage</a></span>&#8203;(int&nbsp;credits,
<a href="../../../api/core/SimpleString.html" title="class in org.apache.activemq.artemis.api.core">SimpleString</a>&nbsp;address)</code></th>
<td class="colLast">&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="#sendProducerCreditsMessage(int,org.apache.activemq.artemis.api.core.SimpleString)">sendProducerCreditsMessage</a></span>&#8203;(int&nbsp;credits,
<a href="../../../api/core/SimpleString.html" title="class in org.apache.activemq.artemis.api.core">SimpleString</a>&nbsp;address)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>default boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsDirectDelivery()">supportsDirectDelivery</a></span>()</code></th>
<td class="colLast">
<div class="block">A requirement to do direct delivery is:
no extra locking required at the protocol layer.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateDeliveryCountAfterCancel(org.apache.activemq.artemis.core.server.ServerConsumer,org.apache.activemq.artemis.core.server.MessageReference,boolean)">updateDeliveryCountAfterCancel</a></span>&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumer,
org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref,
boolean&nbsp;failed)</code></th>
<td class="colLast">
<div class="block">Use this to updates specifics on the message after a redelivery happened.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="supportsDirectDelivery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>supportsDirectDelivery</h4>
<pre class="methodSignature">default&nbsp;boolean&nbsp;supportsDirectDelivery()</pre>
<div class="block">A requirement to do direct delivery is:
no extra locking required at the protocol layer.
which cannot be guaranteed at AMQP as proton will need the locking.
So, disable this on AMQP or any other protocol requiring extra lock.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a id="hasCredits(org.apache.activemq.artemis.core.server.ServerConsumer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasCredits</h4>
<pre class="methodSignature">boolean&nbsp;hasCredits&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID)</pre>
<div class="block">This one gives a chance for Proton to have its own flow control.</div>
</li>
</ul>
<a id="hasCredits(org.apache.activemq.artemis.core.server.ServerConsumer,org.apache.activemq.artemis.core.server.MessageReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasCredits</h4>
<pre class="methodSignature">default&nbsp;boolean&nbsp;hasCredits&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref)</pre>
<div class="block">This one includes the MessageReference for protocols like MQTT 5 (which only enforces flow control on durable
messages (i.e. QoS 1 &amp; 2))</div>
</li>
</ul>
<a id="afterDelivery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterDelivery</h4>
<pre class="methodSignature">void&nbsp;afterDelivery()
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></pre>
<div class="block">This can be used to complete certain operations outside of the lock,
like acks or other operations.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">Exception</a></code></dd>
</dl>
</li>
</ul>
<a id="updateDeliveryCountAfterCancel(org.apache.activemq.artemis.core.server.ServerConsumer,org.apache.activemq.artemis.core.server.MessageReference,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateDeliveryCountAfterCancel</h4>
<pre class="methodSignature">boolean&nbsp;updateDeliveryCountAfterCancel&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumer,
org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref,
boolean&nbsp;failed)</pre>
<div class="block">Use this to updates specifics on the message after a redelivery happened.
Return true if there was specific logic applied on the protocol, so the ServerConsumer won't make any adjustments.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>consumer</code> - </dd>
<dd><code>ref</code> - </dd>
<dd><code>failed</code> - </dd>
</dl>
</li>
</ul>
<a id="sendProducerCreditsMessage(int,org.apache.activemq.artemis.api.core.SimpleString)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendProducerCreditsMessage</h4>
<pre class="methodSignature">void&nbsp;sendProducerCreditsMessage&#8203;(int&nbsp;credits,
<a href="../../../api/core/SimpleString.html" title="class in org.apache.activemq.artemis.api.core">SimpleString</a>&nbsp;address)</pre>
</li>
</ul>
<a id="sendProducerCreditsFailMessage(int,org.apache.activemq.artemis.api.core.SimpleString)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendProducerCreditsFailMessage</h4>
<pre class="methodSignature">void&nbsp;sendProducerCreditsFailMessage&#8203;(int&nbsp;credits,
<a href="../../../api/core/SimpleString.html" title="class in org.apache.activemq.artemis.api.core">SimpleString</a>&nbsp;address)</pre>
</li>
</ul>
<a id="sendMessage(org.apache.activemq.artemis.core.server.MessageReference,org.apache.activemq.artemis.core.server.ServerConsumer,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendMessage</h4>
<pre class="methodSignature">int&nbsp;sendMessage&#8203;(org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref,
org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
int&nbsp;deliveryCount)</pre>
</li>
</ul>
<a id="sendLargeMessage(org.apache.activemq.artemis.core.server.MessageReference,org.apache.activemq.artemis.core.server.ServerConsumer,long,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendLargeMessage</h4>
<pre class="methodSignature">int&nbsp;sendLargeMessage&#8203;(org.apache.activemq.artemis.core.server.MessageReference&nbsp;ref,
org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
long&nbsp;bodySize,
int&nbsp;deliveryCount)</pre>
</li>
</ul>
<a id="sendLargeMessageContinuation(org.apache.activemq.artemis.core.server.ServerConsumer,byte[],boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendLargeMessageContinuation</h4>
<pre class="methodSignature">int&nbsp;sendLargeMessageContinuation&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerID,
byte[]&nbsp;body,
boolean&nbsp;continues,
boolean&nbsp;requiresResponse)</pre>
</li>
</ul>
<a id="closed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closed</h4>
<pre class="methodSignature">void&nbsp;closed()</pre>
</li>
</ul>
<a id="disconnect(org.apache.activemq.artemis.core.server.ServerConsumer,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnect</h4>
<pre class="methodSignature">void&nbsp;disconnect&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumerId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;errorMessage)</pre>
</li>
</ul>
<a id="isWritable(org.apache.activemq.artemis.spi.core.remoting.ReadyListener,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWritable</h4>
<pre class="methodSignature">boolean&nbsp;isWritable&#8203;(<a href="../remoting/ReadyListener.html" title="interface in org.apache.activemq.artemis.spi.core.remoting">ReadyListener</a>&nbsp;callback,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;protocolContext)</pre>
</li>
</ul>
<a id="browserFinished(org.apache.activemq.artemis.core.server.ServerConsumer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>browserFinished</h4>
<pre class="methodSignature">void&nbsp;browserFinished&#8203;(org.apache.activemq.artemis.core.server.ServerConsumer&nbsp;consumer)</pre>
<div class="block">Some protocols (Openwire) needs a special message with the browser is finished.</div>
</li>
</ul>
<a id="close(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;close&#8203;(boolean&nbsp;failed)</pre>
</li>
</ul>
<a id="getCurrentTransaction()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getCurrentTransaction</h4>
<pre class="methodSignature">default&nbsp;org.apache.activemq.artemis.core.transaction.Transaction&nbsp;getCurrentTransaction()</pre>
</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/SessionCallback.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="../../../../../../../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; 2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>