blob: 2643a10107671a21060b71dc9f806adeb36f55a2 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TransientStore (Drill : 1.20.3 API)</title>
<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="TransientStore (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TransientStore.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">
<li><a href="../../../../../../org/apache/drill/exec/coord/store/CachingTransientStoreFactory.html" title="class in org.apache.drill.exec.coord.store"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreConfig.html" title="class in org.apache.drill.exec.coord.store"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/coord/store/TransientStore.html" target="_top">Frames</a></li>
<li><a href="TransientStore.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.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>
</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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.drill.exec.coord.store</div>
<h2 title="Interface TransientStore" class="title">Interface TransientStore&lt;V&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/drill/exec/coord/store/BaseTransientStore.html" title="class in org.apache.drill.exec.coord.store">BaseTransientStore</a>, <a href="../../../../../../org/apache/drill/exec/coord/local/MapBackedStore.html" title="class in org.apache.drill.exec.coord.local">MapBackedStore</a>, <a href="../../../../../../org/apache/drill/exec/coord/zk/ZkEphemeralStore.html" title="class in org.apache.drill.exec.coord.zk">ZkEphemeralStore</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">TransientStore&lt;V&gt;</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></pre>
<div class="block">An abstraction for storing, retrieving and observing transient (key, value) pairs in a distributed environment.
This abstraction diverges from <a href="../../../../../../org/apache/drill/exec/store/sys/PersistentStore.html" title="interface in org.apache.drill.exec.store.sys"><code>PersistentStore</code></a> in that the lifetime of
a (key, value) tuple is bound to the lifetime of the node originally creating it. In other words, entries are evicted
as soon as node/s originally stored them leaves the cluster. That should explain the reason for relocating this
abstraction under cluster coordination package.
Consumers of this interface can observe changes made to the store via attaching a <a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreListener.html" title="interface in org.apache.drill.exec.coord.store"><code>listener</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#addListener-org.apache.drill.exec.coord.store.TransientStoreListener-">addListener</a></span>(<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreListener.html" title="interface in org.apache.drill.exec.coord.store">TransientStoreListener</a>&nbsp;listener)</code>
<div class="block">Adds a listener that observes store <a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreEvent.html" title="class in org.apache.drill.exec.coord.store"><code>events</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#entries--">entries</a></span>()</code>
<div class="block">Returns an iterator of (key, value) tuples.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#get-java.lang.String-">get</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
<div class="block">Returns a value corresponding to the given look-up key if exists, null otherwise.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#keys--">keys</a></span>()</code>
<div class="block">Returns an iterator of keys.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#put-java.lang.String-V-">put</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;value)</code>
<div class="block">Stores the given (key, value) in this store overriding the existing value.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#putIfAbsent-java.lang.String-V-">putIfAbsent</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;value)</code>
<div class="block">Stores the given (key, value) tuple in this store only if it does not exists.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#remove-java.lang.String-">remove</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
<div class="block">Removes the (key, value) tuple from this store if the key exists.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#removeListener-org.apache.drill.exec.coord.store.TransientStoreListener-">removeListener</a></span>(<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreListener.html" title="interface in org.apache.drill.exec.coord.store">TransientStoreListener</a>&nbsp;listener)</code>
<div class="block">Removes the given listener from this store if exists, has no effect otherwise.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#size--">size</a></span>()</code>
<div class="block">Returns number of entries.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#values--">values</a></span>()</code>
<div class="block">Returns an iterator of values.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.AutoCloseable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="get-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;get(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
<div class="block">Returns a value corresponding to the given look-up key if exists, null otherwise.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - look-up key</dd>
</dl>
</li>
</ul>
<a name="put-java.lang.String-java.lang.Object-">
<!-- -->
</a><a name="put-java.lang.String-V-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
<pre><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;put(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;value)</pre>
<div class="block">Stores the given (key, value) in this store overriding the existing value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - look-up key</dd>
<dd><code>value</code> - value to store</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the old value if the key exists, null otherwise</dd>
</dl>
</li>
</ul>
<a name="putIfAbsent-java.lang.String-java.lang.Object-">
<!-- -->
</a><a name="putIfAbsent-java.lang.String-V-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putIfAbsent</h4>
<pre><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;putIfAbsent(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;value)</pre>
<div class="block">Stores the given (key, value) tuple in this store only if it does not exists.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - look-up key</dd>
<dd><code>value</code> - value to store</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the old value if the key exists, null otherwise</dd>
</dl>
</li>
</ul>
<a name="remove-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&nbsp;remove(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
<div class="block">Removes the (key, value) tuple from this store if the key exists.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - look-up key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the removed value if key exists, null otherwise</dd>
</dl>
</li>
</ul>
<a name="entries--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>entries</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&gt;&gt;&nbsp;entries()</pre>
<div class="block">Returns an iterator of (key, value) tuples.</div>
</li>
</ul>
<a name="keys--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>keys</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;keys()</pre>
<div class="block">Returns an iterator of keys.</div>
</li>
</ul>
<a name="values--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html" title="type parameter in TransientStore">V</a>&gt;&nbsp;values()</pre>
<div class="block">Returns an iterator of values.</div>
</li>
</ul>
<a name="size--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre>int&nbsp;size()</pre>
<div class="block">Returns number of entries.</div>
</li>
</ul>
<a name="addListener-org.apache.drill.exec.coord.store.TransientStoreListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
<pre>void&nbsp;addListener(<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreListener.html" title="interface in org.apache.drill.exec.coord.store">TransientStoreListener</a>&nbsp;listener)</pre>
<div class="block">Adds a listener that observes store <a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreEvent.html" title="class in org.apache.drill.exec.coord.store"><code>events</code></a>.
Note that
i) Calling this method with the same listener instance more than once has no effect.
ii) Listeners are not necessarily invoked from the calling thread. Consumer should consider thread safety issues.
iii) Subclasses might hold a strong reference to the listener. It is important that consumer
<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#removeListener-org.apache.drill.exec.coord.store.TransientStoreListener-"><code>removes</code></a> its listener once it is done observing events.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStore.html#removeListener-org.apache.drill.exec.coord.store.TransientStoreListener-"><code>removeListener(TransientStoreListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="removeListener-org.apache.drill.exec.coord.store.TransientStoreListener-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>removeListener</h4>
<pre>void&nbsp;removeListener(<a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreListener.html" title="interface in org.apache.drill.exec.coord.store">TransientStoreListener</a>&nbsp;listener)</pre>
<div class="block">Removes the given listener from this store if exists, has no effect otherwise.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TransientStore.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">
<li><a href="../../../../../../org/apache/drill/exec/coord/store/CachingTransientStoreFactory.html" title="class in org.apache.drill.exec.coord.store"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/coord/store/TransientStoreConfig.html" title="class in org.apache.drill.exec.coord.store"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/coord/store/TransientStore.html" target="_top">Frames</a></li>
<li><a href="TransientStore.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.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>
</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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>