blob: 06d229c05f4d2aa50b4836cfeac3c85d5fa251e7 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.2) on Thu Dec 31 14:31:42 PST 2020 -->
<title>NCIntentMatch (Apache NLPCraft 0.7.3)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-12-31">
<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.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.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="NCIntentMatch (Apache NLPCraft 0.7.3)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":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"><link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <script src="https://nlpcraft.apache.org/javadoc/resources/sh/scripts/XRegExp.js" type="text/javascript"></script> <script src="https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shCore.js" type="text/javascript"></script> <script src="https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shAutoloader.js" type="text/javascript"></script> <link href="https://nlpcraft.apache.org/javadoc/resources/sh/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css" title="Style"> <link href="https://nlpcraft.apache.org/javadoc/resources/sh/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css" title="Style"> <link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> <script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- ========= 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/NCIntentMatch.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 class="aboutLanguage">Apache NLPCraft <span style="font-size: 80%">0.7.3</span></div>
</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.apache.nlpcraft.model</a></div>
<h2 title="Interface NCIntentMatch" class="title">Interface NCIntentMatch</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">NCIntentMatch</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">An intent match context that can be passed into the callback of the matched intent.
Note that when using <a href="NCIntent.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntent</code></a> and <a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a>
annotations the callback method can be defined parameter-less (and this context won't be passed in).
If used, intent context must be the 1st formal parameter in intent callback.
<p>
Read full documentation in <a target=_ href="https://nlpcraft.apache.org/intent-matching.html">Intent Matching</a> section and review
<a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/">examples</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NCIntent.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntent</code></a>,
<a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a>,
<a href="NCIntentSkip.html" title="class in org.apache.nlpcraft.model"><code>NCIntentSkip</code></a>,
<a href="NCIntentSample.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentSample</code></a>,
<a href="NCIntentRef.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentRef</code></a></dd>
</dl>
</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><a href="NCContext.html" title="interface in org.apache.nlpcraft.model">NCContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext()">getContext</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets context of the user input query.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><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></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIntentId()">getIntentId</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets ID of the matched intent.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIntentTokens()">getIntentTokens</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets a subset of tokens representing matched intent.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTermTokens(int)">getTermTokens</a></span>&#8203;(int&nbsp;idx)</code></th>
<td class="colLast">
<div class="block">Gets tokens for given term.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTermTokens(java.lang.String)">getTermTokens</a></span>&#8203;(<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;termId)</code></th>
<td class="colLast">
<div class="block">Gets tokens for given term.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="NCVariant.html" title="interface in org.apache.nlpcraft.model">NCVariant</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVariant()">getVariant</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets sentence parsing variant that produced the matching for this intent.</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="#isAmbiguous()">isAmbiguous</a></span>()</code></th>
<td class="colLast">
<div class="block">Indicates whether or not the intent match was ambiguous (not exact).</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="getIntentId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIntentId</h4>
<pre class="methodSignature"><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;getIntentId()</pre>
<div class="block">Gets ID of the matched intent.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ID of the matched intent.</dd>
</dl>
</li>
</ul>
<a id="getContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContext</h4>
<pre class="methodSignature"><a href="NCContext.html" title="interface in org.apache.nlpcraft.model">NCContext</a>&nbsp;getContext()</pre>
<div class="block">Gets context of the user input query.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Original query context.</dd>
</dl>
</li>
</ul>
<a id="getIntentTokens()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIntentTokens</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;&gt;&nbsp;getIntentTokens()</pre>
<div class="block">Gets a subset of tokens representing matched intent. This subset is grouped by the matched terms
where a <code>null</code> sub-list defines an optional term. Order and index of sub-lists corresponds
to the order and index of terms in the matching intent. Number of sub-lists will always be the same
as the number of terms in the matched intent.
<p>
Note that unlike <a href="#getVariant()"><code>getVariant()</code></a> method
this method returns only subset of the tokens that were part of the matched intent. Specifically, it will
not return tokens for free words, stopwords or unmatched ("dangling") tokens.
<p>
Consider using <a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a> annotation instead for simpler access to intent tokens.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of list of tokens representing matched intent.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getVariant()"><code>getVariant()</code></a>,
<a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a></dd>
</dl>
</li>
</ul>
<a id="getTermTokens(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTermTokens</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;&nbsp;getTermTokens&#8203;(int&nbsp;idx)</pre>
<div class="block">Gets tokens for given term. This is a companion method for <a href="#getIntentTokens()"><code>getIntentTokens()</code></a>.
<p>
Consider using <a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a> annotation instead for simpler access to intent tokens.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>idx</code> - Index of the term (starting from <code>0</code>).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of tokens, potentially <code>null</code>, for given term.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a>,
<a href="#getTermTokens(java.lang.String)"><code>getTermTokens(String)</code></a></dd>
</dl>
</li>
</ul>
<a id="getTermTokens(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTermTokens</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;&nbsp;getTermTokens&#8203;(<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;termId)</pre>
<div class="block">Gets tokens for given term. This is a companion method for <a href="#getIntentTokens()"><code>getIntentTokens()</code></a>.
<p>
Consider using <a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a> annotation instead for simpler access to intent tokens.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>termId</code> - ID of the term for which to get tokens.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of tokens, potentially <code>null</code>, for given term.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NCIntentTerm.html" title="annotation in org.apache.nlpcraft.model"><code>NCIntentTerm</code></a>,
<a href="#getTermTokens(int)"><code>getTermTokens(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getVariant()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariant</h4>
<pre class="methodSignature"><a href="NCVariant.html" title="interface in org.apache.nlpcraft.model">NCVariant</a>&nbsp;getVariant()</pre>
<div class="block">Gets sentence parsing variant that produced the matching for this intent. Returned variant is one of the
variants provided by <a href="NCContext.html#getVariants()"><code>NCContext.getVariants()</code></a> methods. Note that tokens returned by this method are
a superset of the tokens returned by <a href="#getIntentTokens()"><code>getIntentTokens()</code></a> method, i.e. not all tokens
from this variant may have been used in matching of the winning intent.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Sentence parsing variant that produced the matching for this intent.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getIntentTokens()"><code>getIntentTokens()</code></a></dd>
</dl>
</li>
</ul>
<a id="isAmbiguous()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isAmbiguous</h4>
<pre class="methodSignature">boolean&nbsp;isAmbiguous()</pre>
<div class="block">Indicates whether or not the intent match was ambiguous (not exact).
<p>
An exact match means that for the intent to match it has to use all non-free word tokens
in the user input, i.e. only free word tokens can be left after the match. An ambiguous match
doesn't have this restriction. Note that an ambiguous match should be used with a great care.
An ambiguous match completely ignores extra found user or system tokens (which are not part
of the intent template) which could have altered the matching outcome had they been considered.
<p>
Intent callbacks that check this property should always provide custom rejection message.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if the intent match was exact, <code>false</code> 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/NCIntentMatch.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 class="aboutLanguage"><span style="vertical-align: super">Apache NLPCraft <span style="font-size: 80%">0.7.3</span></span> <a style="vertical-align: super; margin-right: 10px" href="https://github.com/apache/incubator-nlpcraft" target="github"><i class="fa fa-github github-logo"></i></a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft/src/main/scala/org/apache/nlpcraft/examples" data-icon="octicon-eye" aria-label="NLPCraft Examples">Examples</a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft" data-icon="octicon-star" aria-label="Star on GitHub">Star</a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/fork" data-icon="octicon-repo-forked" aria-label="Fork on GitHub">Fork</a> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.autoloader( 'java https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushJava.js', 'js jscript javascript https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushJScript.js', 'text plain https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushPlain.js', 'py python https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushPython.js', 'ruby rails ror rb https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushRuby.js', 'scala https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushScala.js', 'sql https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushSql.js', 'xml xhtml xslt html https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushXml.js' ); SyntaxHighlighter.all(); </script></div>
</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><center> <br/> <span style="font-size: larger">Copyright &#169; 2020 Apache Software Foundation</span> <br/> <br/> <img src="https://www.apache.org/img/ASF20thAnniversary.jpg" height="64px" alt="ASF Logo"> </center></small></p>
</footer>
</body>
</html>