blob: d9fedf886f67f1e3f8c797ef7f7960cefa92bef6 [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 -->
<title>SparkReadConf</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="SparkReadConf";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":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";
</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="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/iceberg/spark/SparkFilters.html" title="class in org.apache.iceberg.spark"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/iceberg/spark/SparkReadOptions.html" title="class in org.apache.iceberg.spark"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/iceberg/spark/SparkReadConf.html" target="_top">Frames</a></li>
<li><a href="SparkReadConf.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><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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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.iceberg.spark</div>
<h2 title="Class SparkReadConf" class="title">Class SparkReadConf</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.spark.SparkReadConf</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">SparkReadConf</span>
extends java.lang.Object</pre>
<div class="block">A class for common Iceberg configs for Spark reads.
<p>If a config is set at multiple levels, the following order of precedence is used (top to
bottom):
<ol>
<li>Read options
<li>Session configuration
<li>Table metadata
</ol>
The most specific value is set in read options and takes precedence over all other configs. If no
read option is provided, this class checks the session configuration for any overrides. If no
applicable value is found in the session configuration, this class uses the table metadata.
<p>Note this class is NOT meant to be serialized and sent to executors.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#SparkReadConf-org.apache.spark.sql.SparkSession-org.apache.iceberg.Table-java.util.Map-">SparkReadConf</a></span>(org.apache.spark.sql.SparkSession&nbsp;spark,
<a href="../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;readOptions)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.lang.Long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#asOfTimestamp--">asOfTimestamp</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#branch--">branch</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#caseSensitive--">caseSensitive</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.Long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#endSnapshotId--">endSnapshotId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#fileScanTaskSetId--">fileScanTaskSetId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#handleTimestampWithoutZone--">handleTimestampWithoutZone</a></span>()</code>
<div class="block">Enables reading a timestamp without time zone as a timestamp with time zone.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#localityEnabled--">localityEnabled</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#orcBatchSize--">orcBatchSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#orcVectorizationEnabled--">orcVectorizationEnabled</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#parquetBatchSize--">parquetBatchSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#parquetVectorizationEnabled--">parquetVectorizationEnabled</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.lang.Long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#snapshotId--">snapshotId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#splitLookback--">splitLookback</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.Integer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#splitLookbackOption--">splitLookbackOption</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#splitOpenFileCost--">splitOpenFileCost</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.lang.Long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#splitOpenFileCostOption--">splitOpenFileCostOption</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#splitSize--">splitSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>java.lang.Long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#splitSizeOption--">splitSizeOption</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>java.lang.Long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#startSnapshotId--">startSnapshotId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>java.lang.Long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#streamFromTimestamp--">streamFromTimestamp</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#streamingSkipDeleteSnapshots--">streamingSkipDeleteSnapshots</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#streamingSkipOverwriteSnapshots--">streamingSkipOverwriteSnapshots</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/spark/SparkReadConf.html#tag--">tag</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="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>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SparkReadConf-org.apache.spark.sql.SparkSession-org.apache.iceberg.Table-java.util.Map-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SparkReadConf</h4>
<pre>public&nbsp;SparkReadConf(org.apache.spark.sql.SparkSession&nbsp;spark,
<a href="../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;readOptions)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="caseSensitive--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>caseSensitive</h4>
<pre>public&nbsp;boolean&nbsp;caseSensitive()</pre>
</li>
</ul>
<a name="localityEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localityEnabled</h4>
<pre>public&nbsp;boolean&nbsp;localityEnabled()</pre>
</li>
</ul>
<a name="snapshotId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotId</h4>
<pre>public&nbsp;java.lang.Long&nbsp;snapshotId()</pre>
</li>
</ul>
<a name="asOfTimestamp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asOfTimestamp</h4>
<pre>public&nbsp;java.lang.Long&nbsp;asOfTimestamp()</pre>
</li>
</ul>
<a name="startSnapshotId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startSnapshotId</h4>
<pre>public&nbsp;java.lang.Long&nbsp;startSnapshotId()</pre>
</li>
</ul>
<a name="endSnapshotId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>endSnapshotId</h4>
<pre>public&nbsp;java.lang.Long&nbsp;endSnapshotId()</pre>
</li>
</ul>
<a name="branch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>branch</h4>
<pre>public&nbsp;java.lang.String&nbsp;branch()</pre>
</li>
</ul>
<a name="tag--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tag</h4>
<pre>public&nbsp;java.lang.String&nbsp;tag()</pre>
</li>
</ul>
<a name="fileScanTaskSetId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fileScanTaskSetId</h4>
<pre>public&nbsp;java.lang.String&nbsp;fileScanTaskSetId()</pre>
</li>
</ul>
<a name="streamingSkipDeleteSnapshots--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>streamingSkipDeleteSnapshots</h4>
<pre>public&nbsp;boolean&nbsp;streamingSkipDeleteSnapshots()</pre>
</li>
</ul>
<a name="streamingSkipOverwriteSnapshots--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>streamingSkipOverwriteSnapshots</h4>
<pre>public&nbsp;boolean&nbsp;streamingSkipOverwriteSnapshots()</pre>
</li>
</ul>
<a name="parquetVectorizationEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parquetVectorizationEnabled</h4>
<pre>public&nbsp;boolean&nbsp;parquetVectorizationEnabled()</pre>
</li>
</ul>
<a name="parquetBatchSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parquetBatchSize</h4>
<pre>public&nbsp;int&nbsp;parquetBatchSize()</pre>
</li>
</ul>
<a name="orcVectorizationEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>orcVectorizationEnabled</h4>
<pre>public&nbsp;boolean&nbsp;orcVectorizationEnabled()</pre>
</li>
</ul>
<a name="orcBatchSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>orcBatchSize</h4>
<pre>public&nbsp;int&nbsp;orcBatchSize()</pre>
</li>
</ul>
<a name="splitSizeOption--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitSizeOption</h4>
<pre>public&nbsp;java.lang.Long&nbsp;splitSizeOption()</pre>
</li>
</ul>
<a name="splitSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitSize</h4>
<pre>public&nbsp;long&nbsp;splitSize()</pre>
</li>
</ul>
<a name="splitLookbackOption--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitLookbackOption</h4>
<pre>public&nbsp;java.lang.Integer&nbsp;splitLookbackOption()</pre>
</li>
</ul>
<a name="splitLookback--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitLookback</h4>
<pre>public&nbsp;int&nbsp;splitLookback()</pre>
</li>
</ul>
<a name="splitOpenFileCostOption--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitOpenFileCostOption</h4>
<pre>public&nbsp;java.lang.Long&nbsp;splitOpenFileCostOption()</pre>
</li>
</ul>
<a name="splitOpenFileCost--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitOpenFileCost</h4>
<pre>public&nbsp;long&nbsp;splitOpenFileCost()</pre>
</li>
</ul>
<a name="handleTimestampWithoutZone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleTimestampWithoutZone</h4>
<pre>public&nbsp;boolean&nbsp;handleTimestampWithoutZone()</pre>
<div class="block">Enables reading a timestamp without time zone as a timestamp with time zone.
<p>Generally, this is not safe as a timestamp without time zone is supposed to represent the
wall-clock time, i.e. no matter the reader/writer timezone 3PM should always be read as 3PM,
but a timestamp with time zone represents instant semantics, i.e. the timestamp is adjusted so
that the corresponding time in the reader timezone is displayed.
<p>When set to false (default), an exception must be thrown while reading a timestamp without
time zone.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean indicating if reading timestamps without timezone is allowed</dd>
</dl>
</li>
</ul>
<a name="streamFromTimestamp--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>streamFromTimestamp</h4>
<pre>public&nbsp;java.lang.Long&nbsp;streamFromTimestamp()</pre>
</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="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/iceberg/spark/SparkFilters.html" title="class in org.apache.iceberg.spark"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/iceberg/spark/SparkReadOptions.html" title="class in org.apache.iceberg.spark"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/iceberg/spark/SparkReadConf.html" target="_top">Frames</a></li>
<li><a href="SparkReadConf.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><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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>