blob: b66109db098bddc52a0cc48a102f8a75e10cf05f [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>PushProjector.RefAndExprConverter (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="PushProjector.RefAndExprConverter (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/PushProjector.RefAndExprConverter.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><a href="#field.detail">Field</a>&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.apache.calcite.rel.rules</a></div>
<h2 title="Class PushProjector.RefAndExprConverter" class="title">Class PushProjector.RefAndExprConverter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../rex/RexShuttle.html" title="class in org.apache.calcite.rex">org.apache.calcite.rex.RexShuttle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../plan/RelOptUtil.RexInputConverter.html" title="class in org.apache.calcite.plan">org.apache.calcite.plan.RelOptUtil.RexInputConverter</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.rel.rules.PushProjector.RefAndExprConverter</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../rex/RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a>&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="PushProjector.html" title="class in org.apache.calcite.rel.rules">PushProjector</a></dd>
</dl>
<hr>
<pre>private class <span class="typeNameLabel">PushProjector.RefAndExprConverter</span>
extends <a href="../../plan/RelOptUtil.RexInputConverter.html" title="class in org.apache.calcite.plan">RelOptUtil.RexInputConverter</a></pre>
<div class="block">Walks an expression tree, replacing input refs with new values to reflect
projection and converting special expressions to field references.</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>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#firstLeftRef">firstLeftRef</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#firstRightRef">firstRightRef</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#preserveLeft">preserveLeft</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#preserveRight">preserveRight</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.plan.RelOptUtil.RexInputConverter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.plan.<a href="../../plan/RelOptUtil.RexInputConverter.html" title="class in org.apache.calcite.plan">RelOptUtil.RexInputConverter</a></h3>
<code><a href="../../plan/RelOptUtil.RexInputConverter.html#destFields">destFields</a>, <a href="../../plan/RelOptUtil.RexInputConverter.html#rexBuilder">rexBuilder</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(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List,int%5B%5D,java.util.List,int,java.util.List,int)">RefAndExprConverter</a></span>&#8203;(<a href="../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
java.util.List&lt;<a href="../type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;srcFields,
java.util.List&lt;<a href="../type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;destFields,
int[]&nbsp;adjustments,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;preserveLeft,
int&nbsp;firstLeftRef,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;preserveRight,
int&nbsp;firstRightRef)</code></th>
<td class="colLast">&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></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>private int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findExprInLists(org.apache.calcite.rex.RexNode,java.util.List,int,java.util.List,int)">findExprInLists</a></span>&#8203;(<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rex,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rexList1,
int&nbsp;adjust1,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rexList2,
int&nbsp;adjust2)</code></th>
<td class="colLast">
<div class="block">Looks for a matching RexNode from among two lists of RexNodes and
returns the offset into the list corresponding to the match, adjusted
by an amount, depending on whether the match was from the first or
second list.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#visitCall(org.apache.calcite.rex.RexCall)">visitCall</a></span>&#8203;(<a href="../../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.plan.RelOptUtil.RexInputConverter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.plan.<a href="../../plan/RelOptUtil.RexInputConverter.html" title="class in org.apache.calcite.plan">RelOptUtil.RexInputConverter</a></h3>
<code><a href="../../plan/RelOptUtil.RexInputConverter.html#visitInputRef(org.apache.calcite.rex.RexInputRef)">visitInputRef</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.rex.RexShuttle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.rex.<a href="../../rex/RexShuttle.html" title="class in org.apache.calcite.rex">RexShuttle</a></h3>
<code><a href="../../rex/RexShuttle.html#apply(java.lang.Iterable)">apply</a>, <a href="../../rex/RexShuttle.html#apply(java.util.List)">apply</a>, <a href="../../rex/RexShuttle.html#apply(org.apache.calcite.rex.RexNode)">apply</a>, <a href="../../rex/RexShuttle.html#mutate(java.util.List)">mutate</a>, <a href="../../rex/RexShuttle.html#visitArray(org.apache.calcite.rex.RexNode%5B%5D,boolean%5B%5D)">visitArray</a>, <a href="../../rex/RexShuttle.html#visitCorrelVariable(org.apache.calcite.rex.RexCorrelVariable)">visitCorrelVariable</a>, <a href="../../rex/RexShuttle.html#visitDynamicParam(org.apache.calcite.rex.RexDynamicParam)">visitDynamicParam</a>, <a href="../../rex/RexShuttle.html#visitFieldAccess(org.apache.calcite.rex.RexFieldAccess)">visitFieldAccess</a>, <a href="../../rex/RexShuttle.html#visitFieldCollations(java.util.List,boolean%5B%5D)">visitFieldCollations</a>, <a href="../../rex/RexShuttle.html#visitList(java.util.List,boolean%5B%5D)">visitList</a>, <a href="../../rex/RexShuttle.html#visitList(java.util.List,java.util.List)">visitList</a>, <a href="../../rex/RexShuttle.html#visitLiteral(org.apache.calcite.rex.RexLiteral)">visitLiteral</a>, <a href="../../rex/RexShuttle.html#visitLocalRef(org.apache.calcite.rex.RexLocalRef)">visitLocalRef</a>, <a href="../../rex/RexShuttle.html#visitOver(org.apache.calcite.rex.RexOver)">visitOver</a>, <a href="../../rex/RexShuttle.html#visitPatternFieldRef(org.apache.calcite.rex.RexPatternFieldRef)">visitPatternFieldRef</a>, <a href="../../rex/RexShuttle.html#visitRangeRef(org.apache.calcite.rex.RexRangeRef)">visitRangeRef</a>, <a href="../../rex/RexShuttle.html#visitSubQuery(org.apache.calcite.rex.RexSubQuery)">visitSubQuery</a>, <a href="../../rex/RexShuttle.html#visitTableInputRef(org.apache.calcite.rex.RexTableInputRef)">visitTableInputRef</a>, <a href="../../rex/RexShuttle.html#visitWindow(org.apache.calcite.rex.RexWindow)">visitWindow</a></code></li>
</ul>
<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">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="preserveLeft">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>preserveLeft</h4>
<pre>private final&nbsp;java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt; preserveLeft</pre>
</li>
</ul>
<a id="firstLeftRef">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>firstLeftRef</h4>
<pre>private final&nbsp;int firstLeftRef</pre>
</li>
</ul>
<a id="preserveRight">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>preserveRight</h4>
<pre>private final&nbsp;java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt; preserveRight</pre>
</li>
</ul>
<a id="firstRightRef">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>firstRightRef</h4>
<pre>private final&nbsp;int firstRightRef</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= 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;(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List,int[],java.util.List,int,java.util.List,int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RefAndExprConverter</h4>
<pre>RefAndExprConverter&#8203;(<a href="../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
java.util.List&lt;<a href="../type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;srcFields,
java.util.List&lt;<a href="../type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;destFields,
int[]&nbsp;adjustments,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;preserveLeft,
int&nbsp;firstLeftRef,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;preserveRight,
int&nbsp;firstRightRef)</pre>
</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="visitCall(org.apache.calcite.rex.RexCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>visitCall</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;visitCall&#8203;(<a href="../../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../rex/RexVisitor.html#visitCall(org.apache.calcite.rex.RexCall)">visitCall</a></code>&nbsp;in interface&nbsp;<code><a href="../../rex/RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a>&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../rex/RexShuttle.html#visitCall(org.apache.calcite.rex.RexCall)">visitCall</a></code>&nbsp;in class&nbsp;<code><a href="../../rex/RexShuttle.html" title="class in org.apache.calcite.rex">RexShuttle</a></code></dd>
</dl>
</li>
</ul>
<a id="findExprInLists(org.apache.calcite.rex.RexNode,java.util.List,int,java.util.List,int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>findExprInLists</h4>
<pre class="methodSignature">private&nbsp;int&nbsp;findExprInLists&#8203;(<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rex,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rexList1,
int&nbsp;adjust1,
java.util.List&lt;<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rexList2,
int&nbsp;adjust2)</pre>
<div class="block">Looks for a matching RexNode from among two lists of RexNodes and
returns the offset into the list corresponding to the match, adjusted
by an amount, depending on whether the match was from the first or
second list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rex</code> - RexNode that is being matched against</dd>
<dd><code>rexList1</code> - first list of RexNodes</dd>
<dd><code>adjust1</code> - adjustment if match occurred in first list</dd>
<dd><code>rexList2</code> - second list of RexNodes</dd>
<dd><code>adjust2</code> - adjustment if match occurred in the second list</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>index in the list corresponding to the matching RexNode; -1
if no match</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/PushProjector.RefAndExprConverter.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><a href="#field.detail">Field</a>&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; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>