blob: 1e8ee1b4c3e9bc474c85c2f1d8499a28d1452f1f [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>BaseViewOperations</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.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.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.6.1.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BaseViewOperations";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":6,"i6":6,"i7":6,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":6,"i14":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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="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><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 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.iceberg.view</a></div>
<h2 title="Class BaseViewOperations" class="title">Class BaseViewOperations</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.view.BaseViewOperations</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ViewOperations.html" title="interface in org.apache.iceberg.view">ViewOperations</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../jdbc/JdbcViewOperations.html" title="class in org.apache.iceberg.jdbc">JdbcViewOperations</a></code>, <code><a href="../nessie/NessieViewOperations.html" title="class in org.apache.iceberg.nessie">NessieViewOperations</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">BaseViewOperations</span>
extends java.lang.Object
implements <a href="ViewOperations.html" title="interface in org.apache.iceberg.view">ViewOperations</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section>
<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">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BaseViewOperations</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<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="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>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#commit(org.apache.iceberg.view.ViewMetadata,org.apache.iceberg.view.ViewMetadata)">commit</a></span>&#8203;(<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;base,
<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</code></th>
<td class="colLast">
<div class="block">Replace the base view metadata with a new version.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#current()">current</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the currently loaded view metadata, without checking for updates.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentMetadataLocation()">currentMetadataLocation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentVersion()">currentVersion</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disableRefresh()">disableRefresh</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doCommit(org.apache.iceberg.view.ViewMetadata,org.apache.iceberg.view.ViewMetadata)">doCommit</a></span>&#8203;(<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;base,
<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doRefresh()">doRefresh</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#io()">io</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#refresh()">refresh</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the current view metadata after checking for updates.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#refreshFromMetadataLocation(java.lang.String)">refreshFromMetadataLocation</a></span>&#8203;(java.lang.String&nbsp;newLocation)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#refreshFromMetadataLocation(java.lang.String,java.util.function.Predicate,int)">refreshFromMetadataLocation</a></span>&#8203;(java.lang.String&nbsp;newLocation,
java.util.function.Predicate&lt;java.lang.Exception&gt;&nbsp;shouldRetry,
int&nbsp;numRetries)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#refreshFromMetadataLocation(java.lang.String,java.util.function.Predicate,int,java.util.function.Function)">refreshFromMetadataLocation</a></span>&#8203;(java.lang.String&nbsp;newLocation,
java.util.function.Predicate&lt;java.lang.Exception&gt;&nbsp;shouldRetry,
int&nbsp;numRetries,
java.util.function.Function&lt;java.lang.String,&#8203;<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&gt;&nbsp;metadataLoader)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requestRefresh()">requestRefresh</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected abstract java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#viewName()">viewName</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#writeNewMetadataIfRequired(org.apache.iceberg.view.ViewMetadata)">writeNewMetadataIfRequired</a></span>&#8203;(<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BaseViewOperations</h4>
<pre>protected&nbsp;BaseViewOperations()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="requestRefresh()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestRefresh</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;requestRefresh()</pre>
</li>
</ul>
<a id="disableRefresh()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disableRefresh</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;disableRefresh()</pre>
</li>
</ul>
<a id="doRefresh()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doRefresh</h4>
<pre class="methodSignature">protected abstract&nbsp;void&nbsp;doRefresh()</pre>
</li>
</ul>
<a id="doCommit(org.apache.iceberg.view.ViewMetadata,org.apache.iceberg.view.ViewMetadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doCommit</h4>
<pre class="methodSignature">protected abstract&nbsp;void&nbsp;doCommit&#8203;(<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;base,
<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</pre>
</li>
</ul>
<a id="viewName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>viewName</h4>
<pre class="methodSignature">protected abstract&nbsp;java.lang.String&nbsp;viewName()</pre>
</li>
</ul>
<a id="io()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>io</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io()</pre>
</li>
</ul>
<a id="currentMetadataLocation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentMetadataLocation</h4>
<pre class="methodSignature">protected&nbsp;java.lang.String&nbsp;currentMetadataLocation()</pre>
</li>
</ul>
<a id="currentVersion()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentVersion</h4>
<pre class="methodSignature">protected&nbsp;int&nbsp;currentVersion()</pre>
</li>
</ul>
<a id="current()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>current</h4>
<pre class="methodSignature">public&nbsp;<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;current()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ViewOperations.html#current()">ViewOperations</a></code></span></div>
<div class="block">Return the currently loaded view metadata, without checking for updates.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ViewOperations.html#current()">current</a></code>&nbsp;in interface&nbsp;<code><a href="ViewOperations.html" title="interface in org.apache.iceberg.view">ViewOperations</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>view metadata</dd>
</dl>
</li>
</ul>
<a id="refresh()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refresh</h4>
<pre class="methodSignature">public&nbsp;<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;refresh()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ViewOperations.html#refresh()">ViewOperations</a></code></span></div>
<div class="block">Return the current view metadata after checking for updates.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ViewOperations.html#refresh()">refresh</a></code>&nbsp;in interface&nbsp;<code><a href="ViewOperations.html" title="interface in org.apache.iceberg.view">ViewOperations</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>view metadata</dd>
</dl>
</li>
</ul>
<a id="commit(org.apache.iceberg.view.ViewMetadata,org.apache.iceberg.view.ViewMetadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;commit&#8203;(<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;base,
<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ViewOperations.html#commit(org.apache.iceberg.view.ViewMetadata,org.apache.iceberg.view.ViewMetadata)">ViewOperations</a></code></span></div>
<div class="block">Replace the base view metadata with a new version.
<p>This method should implement and document atomicity guarantees.
<p>Implementations must check that the base metadata is current to avoid overwriting updates.
Once the atomic commit operation succeeds, implementations must not perform any operations that
may fail because failure in this method cannot be distinguished from commit failure.
<p>Implementations should throw a <a href="../exceptions/CommitStateUnknownException.html" title="class in org.apache.iceberg.exceptions"><code>CommitStateUnknownException</code></a> in cases where it cannot be
determined if the commit succeeded or failed. For example if a network partition causes the
confirmation of the commit to be lost, the implementation should throw a
CommitStateUnknownException. An unknown state indicates to downstream users of this API that it
is not safe to perform clean up and remove any files. In general, strict metadata cleanup will
only trigger cleanups when the commit fails with an exception implementing the marker interface
<a href="../exceptions/CleanableFailure.html" title="interface in org.apache.iceberg.exceptions"><code>CleanableFailure</code></a>. All other exceptions will be treated as
if the commit has failed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ViewOperations.html#commit(org.apache.iceberg.view.ViewMetadata,org.apache.iceberg.view.ViewMetadata)">commit</a></code>&nbsp;in interface&nbsp;<code><a href="ViewOperations.html" title="interface in org.apache.iceberg.view">ViewOperations</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - view metadata on which changes were based</dd>
<dd><code>metadata</code> - new view metadata with updates</dd>
</dl>
</li>
</ul>
<a id="writeNewMetadataIfRequired(org.apache.iceberg.view.ViewMetadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeNewMetadataIfRequired</h4>
<pre class="methodSignature">protected&nbsp;java.lang.String&nbsp;writeNewMetadataIfRequired&#8203;(<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</pre>
</li>
</ul>
<a id="refreshFromMetadataLocation(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refreshFromMetadataLocation</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;refreshFromMetadataLocation&#8203;(java.lang.String&nbsp;newLocation)</pre>
</li>
</ul>
<a id="refreshFromMetadataLocation(java.lang.String,java.util.function.Predicate,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refreshFromMetadataLocation</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;refreshFromMetadataLocation&#8203;(java.lang.String&nbsp;newLocation,
java.util.function.Predicate&lt;java.lang.Exception&gt;&nbsp;shouldRetry,
int&nbsp;numRetries)</pre>
</li>
</ul>
<a id="refreshFromMetadataLocation(java.lang.String,java.util.function.Predicate,int,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>refreshFromMetadataLocation</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;refreshFromMetadataLocation&#8203;(java.lang.String&nbsp;newLocation,
java.util.function.Predicate&lt;java.lang.Exception&gt;&nbsp;shouldRetry,
int&nbsp;numRetries,
java.util.function.Function&lt;java.lang.String,&#8203;<a href="ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&gt;&nbsp;metadataLoader)</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="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><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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>