blob: 154012277b2aa390cfd0bb613f614baff1aa9674 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Planner (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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="Planner (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":38,"i2":6,"i3":6,"i4":6,"i5":18,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Planner.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.tools</a></div>
<h2 title="Interface Planner" class="title">Interface Planner</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code>java.lang.AutoCloseable</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../prepare/PlannerImpl.html" title="class in org.apache.calcite.prepare">PlannerImpl</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">Planner</span>
extends java.lang.AutoCloseable</pre>
<div class="block">A fa&ccedil;ade that covers Calcite's query planning process: parse SQL,
validate the parse tree, convert the parse tree to a relational expression,
and optimize the relational expression.
<p>Planner is NOT thread safe. However, it can be reused for
different queries. The consumer of this interface is responsible for calling
reset() after each use of Planner that corresponds to a different
query.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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="#close()">close</a></span>()</code></th>
<td class="colLast">
<div class="block">Releases all internal resources utilized while this <code>Planner</code>
exists.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(org.apache.calcite.sql.SqlNode)">convert</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#rel(org.apache.calcite.sql.SqlNode)"><code>rel(org.apache.calcite.sql.SqlNode)</code></a>.</div>
</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEmptyTraitSet()">getEmptyTraitSet</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeFactory()">getTypeFactory</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type factory.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parse(java.io.Reader)">parse</a></span>&#8203;(java.io.Reader&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Parses and validates a SQL statement.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>default <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parse(java.lang.String)">parse</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Parses and validates a SQL statement.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rel(org.apache.calcite.sql.SqlNode)">rel</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Converts a SQL parse tree into a tree of relational expressions.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
<td class="colLast">
<div class="block">Resets this <code>Planner</code> to be used with a new query.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(int,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode)">transform</a></span>&#8203;(int&nbsp;ruleSetIndex,
<a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;requiredOutputTraits,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Converts one relational expression tree into another relational expression
based on a particular rule set and requires set of traits.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validate(org.apache.calcite.sql.SqlNode)">validate</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</code></th>
<td class="colLast">
<div class="block">Validates a SQL statement.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateAndGetType(org.apache.calcite.sql.SqlNode)">validateAndGetType</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</code></th>
<td class="colLast">
<div class="block">Validates a SQL statement.</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="parse(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parse</h4>
<pre class="methodSignature">default&nbsp;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parse&#8203;(java.lang.String&nbsp;sql)
throws <a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></pre>
<div class="block">Parses and validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - The SQL statement to parse.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root node of the SQL parse tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code> - on parse error</dd>
</dl>
</li>
</ul>
<a id="parse(java.io.Reader)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parse</h4>
<pre class="methodSignature"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parse&#8203;(java.io.Reader&nbsp;source)
throws <a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></pre>
<div class="block">Parses and validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - A reader which will provide the SQL statement to parse.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root node of the SQL parse tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code> - on parse error</dd>
</dl>
</li>
</ul>
<a id="validate(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validate</h4>
<pre class="methodSignature"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;validate&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)
throws <a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></pre>
<div class="block">Validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sqlNode</code> - Root node of the SQL parse tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Validated node</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></code> - if not valid</dd>
</dl>
</li>
</ul>
<a id="validateAndGetType(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateAndGetType</h4>
<pre class="methodSignature"><a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;validateAndGetType&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)
throws <a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></pre>
<div class="block">Validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sqlNode</code> - Root node of the SQL parse tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Validated node and its validated type.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></code> - if not valid</dd>
</dl>
</li>
</ul>
<a id="rel(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rel</h4>
<pre class="methodSignature"><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a>&nbsp;rel&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)
throws <a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></pre>
<div class="block">Converts a SQL parse tree into a tree of relational expressions.
<p>You must call <a href="#validate(org.apache.calcite.sql.SqlNode)"><code>validate(org.apache.calcite.sql.SqlNode)</code></a> first.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - The root node of the SQL parse tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root node of the newly generated RelNode tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></code> - if the node
cannot be converted or has not been validated</dd>
</dl>
</li>
</ul>
<a id="convert(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre class="methodSignature">@Deprecated
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convert&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)
throws <a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#rel(org.apache.calcite.sql.SqlNode)"><code>rel(org.apache.calcite.sql.SqlNode)</code></a>.</div>
</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></code></dd>
</dl>
</li>
</ul>
<a id="getTypeFactory()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeFactory</h4>
<pre class="methodSignature"><a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;getTypeFactory()</pre>
<div class="block">Returns the type factory.</div>
</li>
</ul>
<a id="transform(int,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transform</h4>
<pre class="methodSignature"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;transform&#8203;(int&nbsp;ruleSetIndex,
<a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;requiredOutputTraits,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)
throws <a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></pre>
<div class="block">Converts one relational expression tree into another relational expression
based on a particular rule set and requires set of traits.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ruleSetIndex</code> - The RuleSet to use for conversion purposes. Note that
this is zero-indexed and is based on the list and order
of RuleSets provided in the construction of this
Planner.</dd>
<dd><code>requiredOutputTraits</code> - The set of RelTraits required of the root node
at the termination of the planning cycle.</dd>
<dd><code>rel</code> - The root of the RelNode tree to convert.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root of the new RelNode tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></code> - on conversion
error</dd>
</dl>
</li>
</ul>
<a id="reset()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre class="methodSignature">void&nbsp;reset()</pre>
<div class="block">Resets this <code>Planner</code> to be used with a new query. This
should be called between each new query.</div>
</li>
</ul>
<a id="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre class="methodSignature">void&nbsp;close()</pre>
<div class="block">Releases all internal resources utilized while this <code>Planner</code>
exists. Once called, this Planner object is no longer valid.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
</dl>
</li>
</ul>
<a id="getEmptyTraitSet()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getEmptyTraitSet</h4>
<pre class="methodSignature"><a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;getEmptyTraitSet()</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/Planner.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>