UNPKG

cassandra-server

Version:

A thin Javascript wrapper around Apache Cassandra to provide out of the box server support

532 lines (527 loc) 23.1 kB
<!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 (version 1.7.0_67) on Sun Sep 07 15:29:28 CEST 2014 --> <title>HintedHandOffManager (apache-cassandra API)</title> <meta name="date" content="2014-09-07"> <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> </head> <body> <script type="text/javascript"><!-- if (location.href.indexOf('is-external=true') == -1) { parent.document.title="HintedHandOffManager (apache-cassandra API)"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar_top"> <!-- --> </a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/HintedHandOffManager.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/cassandra/db/ExpiringCell.html" title="interface in org.apache.cassandra.db"><span class="strong">Prev Class</span></a></li> <li><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../index.html?org/apache/cassandra/db/HintedHandOffManager.html" target="_top">Frames</a></li> <li><a href="HintedHandOffManager.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../../allclasses-noframe.html">All 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><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 name="skip-navbar_top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> <!-- ======== START OF CLASS DATA ======== --> <div class="header"> <div class="subTitle">org.apache.cassandra.db</div> <h2 title="Class HintedHandOffManager" class="title">Class HintedHandOffManager</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>org.apache.cassandra.db.HintedHandOffManager</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt>All Implemented Interfaces:</dt> <dd><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db">HintedHandOffManagerMBean</a></dd> </dl> <hr> <br> <pre>public class <span class="strong">HintedHandOffManager</span> extends java.lang.Object implements <a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db">HintedHandOffManagerMBean</a></pre> <div class="block">The hint schema looks like this: CREATE TABLE hints ( target_id uuid, hint_id timeuuid, message_version int, mutation blob, PRIMARY KEY (target_id, hint_id, message_version) ) WITH COMPACT STORAGE; Thus, for each node in the cluster we treat its uuid as the partition key; each hint is a logical row (physical composite column) containing the mutation to replay and associated metadata. When FailureDetector signals that a node that was down is back up, we page through the hinted mutations and send them over one at a time, waiting for hinted_handoff_throttle_delay in between each. deliverHints is also exposed to JMX so it can be run manually if FD ever misses its cue somehow.</div> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- =========== FIELD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="field_summary"> <!-- --> </a> <h3>Field Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Field and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>static <a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html" title="class in org.apache.cassandra.db">HintedHandOffManager</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#instance">instance</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static java.lang.String</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#MBEAN_NAME">MBEAN_NAME</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code><a href="../../../../org/apache/cassandra/metrics/HintedHandoffMetrics.html" title="class in org.apache.cassandra.metrics">HintedHandoffMetrics</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#metrics">metrics</a></strong></code>&nbsp;</td> </tr> </table> </li> </ul> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="overviewSummary" 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><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#HintedHandOffManager()">HintedHandOffManager</a></strong>()</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>static int</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#calculateHintTTL(org.apache.cassandra.db.Mutation)">calculateHintTTL</a></strong>(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected java.util.concurrent.Future&lt;?&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#compact()">compact</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#deleteHintsForEndpoint(java.net.InetAddress)">deleteHintsForEndpoint</a></strong>(java.net.InetAddress&nbsp;endpoint)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#deleteHintsForEndpoint(java.lang.String)">deleteHintsForEndpoint</a></strong>(java.lang.String&nbsp;ipOrHostname)</code> <div class="block">Nuke all hints from this node to `ep`.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code><a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a></code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#hintFor(org.apache.cassandra.db.Mutation,%20long,%20int,%20java.util.UUID)">hintFor</a></strong>(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation, long&nbsp;now, int&nbsp;ttl, java.util.UUID&nbsp;targetId)</code> <div class="block">Returns a mutation representing a Hint to be sent to <code>targetId</code> as soon as it becomes available again.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#listEndpointsPendingHints()">listEndpointsPendingHints</a></strong>()</code> <div class="block">List all the endpoints that this node has hints for.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#pauseHintsDelivery(boolean)">pauseHintsDelivery</a></strong>(boolean&nbsp;b)</code> <div class="block">pause hints delivery process</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#scheduleHintDelivery(java.net.InetAddress)">scheduleHintDelivery</a></strong>(java.net.InetAddress&nbsp;to)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#scheduleHintDelivery(java.lang.String)">scheduleHintDelivery</a></strong>(java.lang.String&nbsp;to)</code> <div class="block">force hint delivery to an endpoint</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#start()">start</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html#truncateAllHints()">truncateAllHints</a></strong>()</code> <div class="block">Truncate all the hints</div> </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"> <!-- ============ FIELD DETAIL =========== --> <ul class="blockList"> <li class="blockList"><a name="field_detail"> <!-- --> </a> <h3>Field Detail</h3> <a name="MBEAN_NAME"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>MBEAN_NAME</h4> <pre>public static final&nbsp;java.lang.String MBEAN_NAME</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.cassandra.db.HintedHandOffManager.MBEAN_NAME">Constant Field Values</a></dd></dl> </li> </ul> <a name="instance"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>instance</h4> <pre>public static final&nbsp;<a href="../../../../org/apache/cassandra/db/HintedHandOffManager.html" title="class in org.apache.cassandra.db">HintedHandOffManager</a> instance</pre> </li> </ul> <a name="metrics"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>metrics</h4> <pre>public final&nbsp;<a href="../../../../org/apache/cassandra/metrics/HintedHandoffMetrics.html" title="class in org.apache.cassandra.metrics">HintedHandoffMetrics</a> metrics</pre> </li> </ul> </li> </ul> <!-- ========= CONSTRUCTOR DETAIL ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a name="HintedHandOffManager()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>HintedHandOffManager</h4> <pre>public&nbsp;HintedHandOffManager()</pre> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method_detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="hintFor(org.apache.cassandra.db.Mutation, long, int, java.util.UUID)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>hintFor</h4> <pre>public&nbsp;<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;hintFor(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation, long&nbsp;now, int&nbsp;ttl, java.util.UUID&nbsp;targetId)</pre> <div class="block">Returns a mutation representing a Hint to be sent to <code>targetId</code> as soon as it becomes available again.</div> </li> </ul> <a name="calculateHintTTL(org.apache.cassandra.db.Mutation)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>calculateHintTTL</h4> <pre>public static&nbsp;int&nbsp;calculateHintTTL(<a href="../../../../org/apache/cassandra/db/Mutation.html" title="class in org.apache.cassandra.db">Mutation</a>&nbsp;mutation)</pre> </li> </ul> <a name="start()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>start</h4> <pre>public&nbsp;void&nbsp;start()</pre> </li> </ul> <a name="deleteHintsForEndpoint(java.lang.String)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>deleteHintsForEndpoint</h4> <pre>public&nbsp;void&nbsp;deleteHintsForEndpoint(java.lang.String&nbsp;ipOrHostname)</pre> <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#deleteHintsForEndpoint(java.lang.String)">HintedHandOffManagerMBean</a></code></strong></div> <div class="block">Nuke all hints from this node to `ep`.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#deleteHintsForEndpoint(java.lang.String)">deleteHintsForEndpoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db">HintedHandOffManagerMBean</a></code></dd> <dt><span class="strong">Parameters:</span></dt><dd><code>ipOrHostname</code> - String rep. of endpoint address to delete hints for, either ip address ("127.0.0.1") or hostname</dd></dl> </li> </ul> <a name="deleteHintsForEndpoint(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>deleteHintsForEndpoint</h4> <pre>public&nbsp;void&nbsp;deleteHintsForEndpoint(java.net.InetAddress&nbsp;endpoint)</pre> </li> </ul> <a name="truncateAllHints()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>truncateAllHints</h4> <pre>public&nbsp;void&nbsp;truncateAllHints() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException</pre> <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#truncateAllHints()">HintedHandOffManagerMBean</a></code></strong></div> <div class="block">Truncate all the hints</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#truncateAllHints()">truncateAllHints</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db">HintedHandOffManagerMBean</a></code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.util.concurrent.ExecutionException</code></dd> <dd><code>java.lang.InterruptedException</code></dd></dl> </li> </ul> <a name="compact()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>compact</h4> <pre>protected&nbsp;java.util.concurrent.Future&lt;?&gt;&nbsp;compact()</pre> </li> </ul> <a name="scheduleHintDelivery(java.net.InetAddress)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>scheduleHintDelivery</h4> <pre>public&nbsp;void&nbsp;scheduleHintDelivery(java.net.InetAddress&nbsp;to)</pre> </li> </ul> <a name="scheduleHintDelivery(java.lang.String)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>scheduleHintDelivery</h4> <pre>public&nbsp;void&nbsp;scheduleHintDelivery(java.lang.String&nbsp;to) throws java.net.UnknownHostException</pre> <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#scheduleHintDelivery(java.lang.String)">HintedHandOffManagerMBean</a></code></strong></div> <div class="block">force hint delivery to an endpoint</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#scheduleHintDelivery(java.lang.String)">scheduleHintDelivery</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db">HintedHandOffManagerMBean</a></code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.net.UnknownHostException</code></dd></dl> </li> </ul> <a name="pauseHintsDelivery(boolean)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>pauseHintsDelivery</h4> <pre>public&nbsp;void&nbsp;pauseHintsDelivery(boolean&nbsp;b)</pre> <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#pauseHintsDelivery(boolean)">HintedHandOffManagerMBean</a></code></strong></div> <div class="block">pause hints delivery process</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#pauseHintsDelivery(boolean)">pauseHintsDelivery</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db">HintedHandOffManagerMBean</a></code></dd> </dl> </li> </ul> <a name="listEndpointsPendingHints()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>listEndpointsPendingHints</h4> <pre>public&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;listEndpointsPendingHints()</pre> <div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#listEndpointsPendingHints()">HintedHandOffManagerMBean</a></code></strong></div> <div class="block">List all the endpoints that this node has hints for.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html#listEndpointsPendingHints()">listEndpointsPendingHints</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db">HintedHandOffManagerMBean</a></code></dd> <dt><span class="strong">Returns:</span></dt><dd>set of endpoints; as Strings</dd></dl> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar_bottom"> <!-- --> </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/HintedHandOffManager.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/cassandra/db/ExpiringCell.html" title="interface in org.apache.cassandra.db"><span class="strong">Prev Class</span></a></li> <li><a href="../../../../org/apache/cassandra/db/HintedHandOffManagerMBean.html" title="interface in org.apache.cassandra.db"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../index.html?org/apache/cassandra/db/HintedHandOffManager.html" target="_top">Frames</a></li> <li><a href="HintedHandOffManager.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../../allclasses-noframe.html">All 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><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 name="skip-navbar_bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> <p class="legalCopy"><small>Copyright &copy; 2014 The Apache Software Foundation</small></p> </body> </html>