Home | History | Annotate | Download | only in collect
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      2 <!--NewPage-->
      3 <HTML>
      4 <HEAD>
      5 <!-- Generated by javadoc (build 1.6.0-google-internal) on Mon Jan 04 20:47:57 PST 2010 -->
      6 <TITLE>
      7 AbstractIterator (Guava Libraries 2010.01.04)
      8 </TITLE>
      9 
     10 <META NAME="date" CONTENT="2010-01-04">
     11 
     12 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
     13 
     14 <SCRIPT type="text/javascript">
     15 function windowTitle()
     16 {
     17     if (location.href.indexOf('is-external=true') == -1) {
     18         parent.document.title="AbstractIterator (Guava Libraries 2010.01.04)";
     19     }
     20 }
     21 </SCRIPT>
     22 <NOSCRIPT>
     23 </NOSCRIPT>
     24 
     25 </HEAD>
     26 
     27 <BODY BGCOLOR="white" onload="windowTitle();">
     28 <HR>
     29 
     30 
     31 <!-- ========= START OF TOP NAVBAR ======= -->
     32 <A NAME="navbar_top"><!-- --></A>
     33 <A HREF="#skip-navbar_top" title="Skip navigation links"></A>
     34 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
     35 <TR>
     36 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
     37 <A NAME="navbar_top_firstrow"><!-- --></A>
     38 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
     39   <TR ALIGN="center" VALIGN="top">
     40   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
     41   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
     42   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
     43   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractIterator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
     44   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
     45   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
     46   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
     47   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
     48   </TR>
     49 </TABLE>
     50 </TD>
     51 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
     52 </EM>
     53 </TD>
     54 </TR>
     55 
     56 <TR>
     57 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
     58 &nbsp;PREV CLASS&nbsp;
     59 &nbsp;<A HREF="../../../../com/google/common/collect/ArrayListMultimap.html" title="class in com.google.common.collect"><B>NEXT CLASS</B></A></FONT></TD>
     60 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
     61   <A HREF="../../../../index.html?com/google/common/collect/AbstractIterator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
     62 &nbsp;<A HREF="AbstractIterator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
     63 &nbsp;<SCRIPT type="text/javascript">
     64   <!--
     65   if(window==top) {
     66     document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
     67   }
     68   //-->
     69 </SCRIPT>
     70 <NOSCRIPT>
     71   <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
     72 </NOSCRIPT>
     73 
     74 
     75 </FONT></TD>
     76 </TR>
     77 <TR>
     78 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
     79   SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
     80 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
     81 DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
     82 </TR>
     83 </TABLE>
     84 <A NAME="skip-navbar_top"></A>
     85 <!-- ========= END OF TOP NAVBAR ========= -->
     86 
     87 <HR>
     88 <!-- ======== START OF CLASS DATA ======== -->
     89 <H2>
     90 <FONT SIZE="-1">
     91 com.google.common.collect</FONT>
     92 <BR>
     93 Class AbstractIterator&lt;T&gt;</H2>
     94 <PRE>
     95 <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
     96   <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/google/common/collect/UnmodifiableIterator.html" title="class in com.google.common.collect">com.google.common.collect.UnmodifiableIterator</A>&lt;T&gt;
     97       <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.google.common.collect.AbstractIterator&lt;T&gt;</B>
     98 </PRE>
     99 <DL>
    100 <DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</A>&lt;T&gt;</DD>
    101 </DL>
    102 <HR>
    103 <DL>
    104 <DT><PRE>public abstract class <B>AbstractIterator&lt;T&gt;</B><DT>extends <A HREF="../../../../com/google/common/collect/UnmodifiableIterator.html" title="class in com.google.common.collect">UnmodifiableIterator</A>&lt;T&gt;</DL>
    105 </PRE>
    106 
    107 <P>
    108 This class provides a skeletal implementation of the <code>Iterator</code>
    109  interface, to make this interface easier to implement for certain types of
    110  data sources.
    111 
    112  <p><code>Iterator</code> requires its implementations to support querying the
    113  end-of-data status without changing the iterator's state, using the <A HREF="../../../../com/google/common/collect/AbstractIterator.html#hasNext()"><CODE>hasNext()</CODE></A> method. But many data sources, such as <A HREF="http://java.sun.com/javase/6/docs/api/java/io/Reader.html?is-external=true#read()" title="class or interface in java.io"><CODE>Reader.read()</CODE></A>), do not expose this information; the only way to
    114  discover whether there is any data left is by trying to retrieve it. These
    115  types of data sources are ordinarily difficult to write iterators for. But
    116  using this class, one must implement only the <A HREF="../../../../com/google/common/collect/AbstractIterator.html#computeNext()"><CODE>computeNext()</CODE></A> method,
    117  and invoke the <A HREF="../../../../com/google/common/collect/AbstractIterator.html#endOfData()"><CODE>endOfData()</CODE></A> method when appropriate.
    118 
    119  <p>Another example is an iterator that skips over null elements in a backing
    120  iterator. This could be implemented as: <pre>   <code>public static Iterator&lt;String&gt; skipNulls(final Iterator&lt;String&gt; in) {
    121      return new AbstractIterator&lt;String&gt;() {
    122        protected String computeNext() {
    123          while (in.hasNext()) {
    124            String s = in.next();
    125            if (s != null) {
    126              return s;
    127            }
    128          }
    129          return endOfData();
    130        }
    131      };
    132    }</code></pre>
    133 
    134  This class supports iterators that include null elements.
    135 <P>
    136 
    137 <P>
    138 <DL>
    139 <DT><B>Since:</B></DT>
    140   <DD>2010.01.04 <b>stable</b> (imported from Google Collections Library)</DD>
    141 <DT><B>Author:</B></DT>
    142   <DD>Kevin Bourrillion</DD>
    143 </DL>
    144 <HR>
    145 
    146 <P>
    147 
    148 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
    149 
    150 <A NAME="constructor_summary"><!-- --></A>
    151 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    152 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    153 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    154 <B>Constructor Summary</B></FONT></TH>
    155 </TR>
    156 <TR BGCOLOR="white" CLASS="TableRowColor">
    157 <TD><CODE><B><A HREF="../../../../com/google/common/collect/AbstractIterator.html#AbstractIterator()">AbstractIterator</A></B>()</CODE>
    158 
    159 <BR>
    160 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    161 </TR>
    162 </TABLE>
    163 &nbsp;
    164 <!-- ========== METHOD SUMMARY =========== -->
    165 
    166 <A NAME="method_summary"><!-- --></A>
    167 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    168 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    169 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    170 <B>Method Summary</B></FONT></TH>
    171 </TR>
    172 <TR BGCOLOR="white" CLASS="TableRowColor">
    173 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    174 <CODE>protected abstract &nbsp;<A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A></CODE></FONT></TD>
    175 <TD><CODE><B><A HREF="../../../../com/google/common/collect/AbstractIterator.html#computeNext()">computeNext</A></B>()</CODE>
    176 
    177 <BR>
    178 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the next element.</TD>
    179 </TR>
    180 <TR BGCOLOR="white" CLASS="TableRowColor">
    181 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    182 <CODE>protected &nbsp;<A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A></CODE></FONT></TD>
    183 <TD><CODE><B><A HREF="../../../../com/google/common/collect/AbstractIterator.html#endOfData()">endOfData</A></B>()</CODE>
    184 
    185 <BR>
    186 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Implementations of <code>computeNext</code> <b>must</b> invoke this method when
    187  there are no elements left in the iteration.</TD>
    188 </TR>
    189 <TR BGCOLOR="white" CLASS="TableRowColor">
    190 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    191 <CODE>&nbsp;boolean</CODE></FONT></TD>
    192 <TD><CODE><B><A HREF="../../../../com/google/common/collect/AbstractIterator.html#hasNext()">hasNext</A></B>()</CODE>
    193 
    194 <BR>
    195 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    196 </TR>
    197 <TR BGCOLOR="white" CLASS="TableRowColor">
    198 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    199 <CODE>&nbsp;<A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A></CODE></FONT></TD>
    200 <TD><CODE><B><A HREF="../../../../com/google/common/collect/AbstractIterator.html#next()">next</A></B>()</CODE>
    201 
    202 <BR>
    203 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    204 </TR>
    205 <TR BGCOLOR="white" CLASS="TableRowColor">
    206 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    207 <CODE>&nbsp;<A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A></CODE></FONT></TD>
    208 <TD><CODE><B><A HREF="../../../../com/google/common/collect/AbstractIterator.html#peek()">peek</A></B>()</CODE>
    209 
    210 <BR>
    211 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the next element in the iteration without advancing the iteration,
    212  according to the contract of <A HREF="../../../../com/google/common/collect/PeekingIterator.html#peek()"><CODE>PeekingIterator.peek()</CODE></A>.</TD>
    213 </TR>
    214 </TABLE>
    215 &nbsp;<A NAME="methods_inherited_from_class_com.google.common.collect.UnmodifiableIterator"><!-- --></A>
    216 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    217 <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    218 <TH ALIGN="left"><B>Methods inherited from class com.google.common.collect.<A HREF="../../../../com/google/common/collect/UnmodifiableIterator.html" title="class in com.google.common.collect">UnmodifiableIterator</A></B></TH>
    219 </TR>
    220 <TR BGCOLOR="white" CLASS="TableRowColor">
    221 <TD><CODE><A HREF="../../../../com/google/common/collect/UnmodifiableIterator.html#remove()">remove</A></CODE></TD>
    222 </TR>
    223 </TABLE>
    224 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    225 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    226 <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    227 <TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    228 </TR>
    229 <TR BGCOLOR="white" CLASS="TableRowColor">
    230 <TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    231 </TR>
    232 </TABLE>
    233 &nbsp;
    234 <P>
    235 
    236 <!-- ========= CONSTRUCTOR DETAIL ======== -->
    237 
    238 <A NAME="constructor_detail"><!-- --></A>
    239 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    240 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    241 <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    242 <B>Constructor Detail</B></FONT></TH>
    243 </TR>
    244 </TABLE>
    245 
    246 <A NAME="AbstractIterator()"><!-- --></A><H3>
    247 AbstractIterator</H3>
    248 <PRE>
    249 public <B>AbstractIterator</B>()</PRE>
    250 <DL>
    251 </DL>
    252 
    253 <!-- ============ METHOD DETAIL ========== -->
    254 
    255 <A NAME="method_detail"><!-- --></A>
    256 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    257 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    258 <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    259 <B>Method Detail</B></FONT></TH>
    260 </TR>
    261 </TABLE>
    262 
    263 <A NAME="computeNext()"><!-- --></A><H3>
    264 computeNext</H3>
    265 <PRE>
    266 protected abstract <A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A> <B>computeNext</B>()</PRE>
    267 <DL>
    268 <DD>Returns the next element. <b>Note:</b> the implementation must call <A HREF="../../../../com/google/common/collect/AbstractIterator.html#endOfData()"><CODE>endOfData()</CODE></A> when there are no elements left in the iteration. Failure to
    269  do so could result in an infinite loop.
    270 
    271  <p>The initial invocation of <A HREF="../../../../com/google/common/collect/AbstractIterator.html#hasNext()"><CODE>hasNext()</CODE></A> or <A HREF="../../../../com/google/common/collect/AbstractIterator.html#next()"><CODE>next()</CODE></A> calls
    272  this method, as does the first invocation of <code>hasNext</code> or <code>next</code> following each successful call to <code>next</code>. Once the
    273  implementation either invokes <code>endOfData</code> or throws an exception,
    274  <code>computeNext</code> is guaranteed to never be called again.
    275 
    276  <p>If this method throws an exception, it will propagate outward to the
    277  <code>hasNext</code> or <code>next</code> invocation that invoked this method. Any
    278  further attempts to use the iterator will result in an <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang"><CODE>IllegalStateException</CODE></A>.
    279 
    280  <p>The implementation of this method may not invoke the <code>hasNext</code>,
    281  <code>next</code>, or <A HREF="../../../../com/google/common/collect/AbstractIterator.html#peek()"><CODE>peek()</CODE></A> methods on this instance; if it does, an
    282  <code>IllegalStateException</code> will result.
    283 <P>
    284 <DD><DL>
    285 
    286 <DT><B>Returns:</B><DD>the next element if there was one. If <code>endOfData</code> was called
    287      during execution, the return value will be ignored.
    288 <DT><B>Throws:</B>
    289 <DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</A></CODE> - if any unrecoverable error happens. This exception
    290      will propagate outward to the <code>hasNext()</code>, <code>next()</code>, or
    291      <code>peek()</code> invocation that invoked this method. Any further
    292      attempts to use the iterator will result in an
    293      <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang"><CODE>IllegalStateException</CODE></A>.</DL>
    294 </DD>
    295 </DL>
    296 <HR>
    297 
    298 <A NAME="endOfData()"><!-- --></A><H3>
    299 endOfData</H3>
    300 <PRE>
    301 protected final <A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A> <B>endOfData</B>()</PRE>
    302 <DL>
    303 <DD>Implementations of <code>computeNext</code> <b>must</b> invoke this method when
    304  there are no elements left in the iteration.
    305 <P>
    306 <DD><DL>
    307 
    308 <DT><B>Returns:</B><DD><code>null</code>; a convenience so your <A HREF="../../../../com/google/common/collect/AbstractIterator.html#computeNext()"><CODE>computeNext()</CODE></A>
    309      implementation can use the simple statement <code>return endOfData();</code></DL>
    310 </DD>
    311 </DL>
    312 <HR>
    313 
    314 <A NAME="hasNext()"><!-- --></A><H3>
    315 hasNext</H3>
    316 <PRE>
    317 public final boolean <B>hasNext</B>()</PRE>
    318 <DL>
    319 <DD><DL>
    320 </DL>
    321 </DD>
    322 </DL>
    323 <HR>
    324 
    325 <A NAME="next()"><!-- --></A><H3>
    326 next</H3>
    327 <PRE>
    328 public final <A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A> <B>next</B>()</PRE>
    329 <DL>
    330 <DD><DL>
    331 </DL>
    332 </DD>
    333 </DL>
    334 <HR>
    335 
    336 <A NAME="peek()"><!-- --></A><H3>
    337 peek</H3>
    338 <PRE>
    339 public final <A HREF="../../../../com/google/common/collect/AbstractIterator.html" title="type parameter in AbstractIterator">T</A> <B>peek</B>()</PRE>
    340 <DL>
    341 <DD>Returns the next element in the iteration without advancing the iteration,
    342  according to the contract of <A HREF="../../../../com/google/common/collect/PeekingIterator.html#peek()"><CODE>PeekingIterator.peek()</CODE></A>.
    343 
    344  <p>Implementations of <code>AbstractIterator</code> that wish to expose this
    345  functionality should implement <code>PeekingIterator</code>.
    346 <P>
    347 <DD><DL>
    348 </DL>
    349 </DD>
    350 </DL>
    351 <!-- ========= END OF CLASS DATA ========= -->
    352 <HR>
    353 
    354 
    355 <!-- ======= START OF BOTTOM NAVBAR ====== -->
    356 <A NAME="navbar_bottom"><!-- --></A>
    357 <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    358 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    359 <TR>
    360 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    361 <A NAME="navbar_bottom_firstrow"><!-- --></A>
    362 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    363   <TR ALIGN="center" VALIGN="top">
    364   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    365   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    366   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    367   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractIterator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    368   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    369   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    370   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    371   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    372   </TR>
    373 </TABLE>
    374 </TD>
    375 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    376 </EM>
    377 </TD>
    378 </TR>
    379 
    380 <TR>
    381 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    382 &nbsp;PREV CLASS&nbsp;
    383 &nbsp;<A HREF="../../../../com/google/common/collect/ArrayListMultimap.html" title="class in com.google.common.collect"><B>NEXT CLASS</B></A></FONT></TD>
    384 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    385   <A HREF="../../../../index.html?com/google/common/collect/AbstractIterator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    386 &nbsp;<A HREF="AbstractIterator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    387 &nbsp;<SCRIPT type="text/javascript">
    388   <!--
    389   if(window==top) {
    390     document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    391   }
    392   //-->
    393 </SCRIPT>
    394 <NOSCRIPT>
    395   <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
    396 </NOSCRIPT>
    397 
    398 
    399 </FONT></TD>
    400 </TR>
    401 <TR>
    402 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    403   SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    404 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    405 DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    406 </TR>
    407 </TABLE>
    408 <A NAME="skip-navbar_bottom"></A>
    409 <!-- ======== END OF BOTTOM NAVBAR ======= -->
    410 
    411 <HR>
    412 
    413 </BODY>
    414 </HTML>
    415