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 Service (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="Service (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> </TD> 41 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 42 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 43 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Service.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 44 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 45 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 46 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 47 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </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 <A HREF="../../../../com/google/common/base/Predicates.html" title="class in com.google.common.base"><B>PREV CLASS</B></A> 59 <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base"><B>NEXT CLASS</B></A></FONT></TD> 60 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 61 <A HREF="../../../../index.html?com/google/common/base/Service.html" target="_top"><B>FRAMES</B></A> 62 <A HREF="Service.html" target="_top"><B>NO FRAMES</B></A> 63 <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: <A HREF="#nested_class_summary">NESTED</A> | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> 80 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 81 DETAIL: FIELD | CONSTR | <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.base</FONT> 92 <BR> 93 Interface Service</H2> 94 <DL> 95 <DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/google/common/util/concurrent/AbstractExecutionThreadService.html" title="class in com.google.common.util.concurrent">AbstractExecutionThreadService</A>, <A HREF="../../../../com/google/common/util/concurrent/AbstractIdleService.html" title="class in com.google.common.util.concurrent">AbstractIdleService</A>, <A HREF="../../../../com/google/common/util/concurrent/AbstractService.html" title="class in com.google.common.util.concurrent">AbstractService</A>, <A HREF="../../../../com/google/common/util/concurrent/ForwardingService.html" title="class in com.google.common.util.concurrent">ForwardingService</A></DD> 96 </DL> 97 <HR> 98 <DL> 99 <DT><PRE>public interface <B>Service</B></DL> 100 </PRE> 101 102 <P> 103 An object with an operational state, plus asynchronous <A HREF="../../../../com/google/common/base/Service.html#start()"><CODE>start()</CODE></A> and 104 <A HREF="../../../../com/google/common/base/Service.html#stop()"><CODE>stop()</CODE></A> lifecycle methods to transfer into and out of this state. 105 Example services include webservers, RPC servers and timers. The normal 106 lifecycle of a service is: 107 <ul> 108 <li><A HREF="../../../../com/google/common/base/Service.State.html#NEW"><CODE>Service.State.NEW</CODE></A> -></li> 109 <li><A HREF="../../../../com/google/common/base/Service.State.html#STARTING"><CODE>Service.State.STARTING</CODE></A> -></li> 110 <li><A HREF="../../../../com/google/common/base/Service.State.html#RUNNING"><CODE>Service.State.RUNNING</CODE></A> -></li> 111 <li><A HREF="../../../../com/google/common/base/Service.State.html#STOPPING"><CODE>Service.State.STOPPING</CODE></A> -></li> 112 <li><A HREF="../../../../com/google/common/base/Service.State.html#TERMINATED"><CODE>Service.State.TERMINATED</CODE></A></li> 113 </ul> 114 115 If the service fails while starting, running or stopping, its state will be 116 <A HREF="../../../../com/google/common/base/Service.State.html#FAILED"><CODE>Service.State.FAILED</CODE></A>, and its behavior is undefined. Such a service cannot be 117 started nor stopped. 118 119 <p>Implementors of this interface are strongly encouraged to extend <A HREF="../../../../com/google/common/util/concurrent/AbstractService.html" title="class in com.google.common.util.concurrent"><CODE>AbstractService</CODE></A> or <A HREF="../../../../com/google/common/util/concurrent/AbstractExecutionThreadService.html" title="class in com.google.common.util.concurrent"><CODE>AbstractExecutionThreadService</CODE></A>, which make 120 the threading and state management easier. 121 <P> 122 123 <P> 124 <DL> 125 <DT><B>Since:</B></DT> 126 <DD>2009.09.15 <b>tentative</b></DD> 127 <DT><B>Author:</B></DT> 128 <DD>Jesse Wilson</DD> 129 </DL> 130 <HR> 131 132 <P> 133 <!-- ======== NESTED CLASS SUMMARY ======== --> 134 135 <A NAME="nested_class_summary"><!-- --></A> 136 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 137 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 138 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> 139 <B>Nested Class Summary</B></FONT></TH> 140 </TR> 141 <TR BGCOLOR="white" CLASS="TableRowColor"> 142 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 143 <CODE>static class</CODE></FONT></TD> 144 <TD><CODE><B><A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A></B></CODE> 145 146 <BR> 147 The lifecycle states of a service.</TD> 148 </TR> 149 </TABLE> 150 151 <!-- ========== METHOD SUMMARY =========== --> 152 153 <A NAME="method_summary"><!-- --></A> 154 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 155 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 156 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> 157 <B>Method Summary</B></FONT></TH> 158 </TR> 159 <TR BGCOLOR="white" CLASS="TableRowColor"> 160 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 161 <CODE> boolean</CODE></FONT></TD> 162 <TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#isRunning()">isRunning</A></B>()</CODE> 163 164 <BR> 165 Returns <code>true</code> if this service is <A HREF="../../../../com/google/common/base/Service.State.html#RUNNING"><CODE>running</CODE></A>.</TD> 166 </TR> 167 <TR BGCOLOR="white" CLASS="TableRowColor"> 168 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 169 <CODE> <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</A><<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>></CODE></FONT></TD> 170 <TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#start()">start</A></B>()</CODE> 171 172 <BR> 173 If the service state is <A HREF="../../../../com/google/common/base/Service.State.html#NEW"><CODE>Service.State.NEW</CODE></A>, this initiates service startup 174 and returns immediately.</TD> 175 </TR> 176 <TR BGCOLOR="white" CLASS="TableRowColor"> 177 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 178 <CODE> <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A></CODE></FONT></TD> 179 <TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#startAndWait()">startAndWait</A></B>()</CODE> 180 181 <BR> 182 Initiates service startup (if necessary), returning once the service has 183 finished starting.</TD> 184 </TR> 185 <TR BGCOLOR="white" CLASS="TableRowColor"> 186 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 187 <CODE> <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A></CODE></FONT></TD> 188 <TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#state()">state</A></B>()</CODE> 189 190 <BR> 191 Returns the lifecycle state of the service.</TD> 192 </TR> 193 <TR BGCOLOR="white" CLASS="TableRowColor"> 194 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 195 <CODE> <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</A><<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>></CODE></FONT></TD> 196 <TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#stop()">stop</A></B>()</CODE> 197 198 <BR> 199 If the service is <A HREF="../../../../com/google/common/base/Service.State.html#STARTING"><CODE>Service.State.STARTING</CODE></A> or <A HREF="../../../../com/google/common/base/Service.State.html#RUNNING"><CODE>Service.State.RUNNING</CODE></A>, this 200 initiates service shutdown and returns immediately.</TD> 201 </TR> 202 <TR BGCOLOR="white" CLASS="TableRowColor"> 203 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 204 <CODE> <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A></CODE></FONT></TD> 205 <TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#stopAndWait()">stopAndWait</A></B>()</CODE> 206 207 <BR> 208 Initiates service shutdown (if necessary), returning once the service has 209 finished stopping.</TD> 210 </TR> 211 </TABLE> 212 213 <P> 214 215 <!-- ============ METHOD DETAIL ========== --> 216 217 <A NAME="method_detail"><!-- --></A> 218 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 219 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 220 <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> 221 <B>Method Detail</B></FONT></TH> 222 </TR> 223 </TABLE> 224 225 <A NAME="start()"><!-- --></A><H3> 226 start</H3> 227 <PRE> 228 <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</A><<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>> <B>start</B>()</PRE> 229 <DL> 230 <DD>If the service state is <A HREF="../../../../com/google/common/base/Service.State.html#NEW"><CODE>Service.State.NEW</CODE></A>, this initiates service startup 231 and returns immediately. If the service has already been started, this 232 method returns immediately without taking action. A stopped service may not 233 be restarted. 234 <P> 235 <DD><DL> 236 237 <DT><B>Returns:</B><DD>a future for the startup result, regardless of whether this call 238 initiated startup. Calling <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent"><CODE>Future.get()</CODE></A> will block until the 239 service has finished starting, and returns one of <A HREF="../../../../com/google/common/base/Service.State.html#RUNNING"><CODE>Service.State.RUNNING</CODE></A>, <A HREF="../../../../com/google/common/base/Service.State.html#STOPPING"><CODE>Service.State.STOPPING</CODE></A> or <A HREF="../../../../com/google/common/base/Service.State.html#TERMINATED"><CODE>Service.State.TERMINATED</CODE></A>. If 240 the service fails to start, <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent"><CODE>Future.get()</CODE></A> will throw an <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>ExecutionException</CODE></A>, and the service's state will be <A HREF="../../../../com/google/common/base/Service.State.html#FAILED"><CODE>Service.State.FAILED</CODE></A>. If it has already finished starting, <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent"><CODE>Future.get()</CODE></A> 241 returns immediately. Cancelling the returned future is unsupported and 242 always returns <code>false</code>.</DL> 243 </DD> 244 </DL> 245 <HR> 246 247 <A NAME="startAndWait()"><!-- --></A><H3> 248 startAndWait</H3> 249 <PRE> 250 <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A> <B>startAndWait</B>()</PRE> 251 <DL> 252 <DD>Initiates service startup (if necessary), returning once the service has 253 finished starting. Unlike calling <code>start().get()</code>, this method throws 254 no checked exceptions. 255 <P> 256 <DD><DL> 257 258 <DT><B>Returns:</B><DD>the state of the service when startup finished. 259 <DT><B>Throws:</B> 260 <DD><CODE>InterruptedRuntimeException</CODE> - if the thread was interrupted while 261 waiting for the service to finish starting up. 262 <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 startup failed</DL> 263 </DD> 264 </DL> 265 <HR> 266 267 <A NAME="isRunning()"><!-- --></A><H3> 268 isRunning</H3> 269 <PRE> 270 boolean <B>isRunning</B>()</PRE> 271 <DL> 272 <DD>Returns <code>true</code> if this service is <A HREF="../../../../com/google/common/base/Service.State.html#RUNNING"><CODE>running</CODE></A>. 273 <P> 274 <DD><DL> 275 </DL> 276 </DD> 277 </DL> 278 <HR> 279 280 <A NAME="state()"><!-- --></A><H3> 281 state</H3> 282 <PRE> 283 <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A> <B>state</B>()</PRE> 284 <DL> 285 <DD>Returns the lifecycle state of the service. 286 <P> 287 <DD><DL> 288 </DL> 289 </DD> 290 </DL> 291 <HR> 292 293 <A NAME="stop()"><!-- --></A><H3> 294 stop</H3> 295 <PRE> 296 <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</A><<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>> <B>stop</B>()</PRE> 297 <DL> 298 <DD>If the service is <A HREF="../../../../com/google/common/base/Service.State.html#STARTING"><CODE>Service.State.STARTING</CODE></A> or <A HREF="../../../../com/google/common/base/Service.State.html#RUNNING"><CODE>Service.State.RUNNING</CODE></A>, this 299 initiates service shutdown and returns immediately. If this is <A HREF="../../../../com/google/common/base/Service.State.html#NEW"><CODE>Service.State.NEW</CODE></A>, it is <A HREF="../../../../com/google/common/base/Service.State.html#TERMINATED"><CODE>terminated</CODE></A> without having been 300 started nor stopped. If the service has already been stopped, this 301 method returns immediately without taking action. 302 <P> 303 <DD><DL> 304 305 <DT><B>Returns:</B><DD>a future for the shutdown result, regardless of whether this call 306 initiated shutdown. Calling <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent"><CODE>Future.get()</CODE></A> will block until the 307 service has finished shutting down, and either returns <A HREF="../../../../com/google/common/base/Service.State.html#TERMINATED"><CODE>Service.State.TERMINATED</CODE></A> or throws an <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>ExecutionException</CODE></A>. If it has 308 already finished stopping, <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent"><CODE>Future.get()</CODE></A> returns immediately. 309 Cancelling this future is unsupported and always returns <code>false</code>.</DL> 310 </DD> 311 </DL> 312 <HR> 313 314 <A NAME="stopAndWait()"><!-- --></A><H3> 315 stopAndWait</H3> 316 <PRE> 317 <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A> <B>stopAndWait</B>()</PRE> 318 <DL> 319 <DD>Initiates service shutdown (if necessary), returning once the service has 320 finished stopping. If this is <A HREF="../../../../com/google/common/base/Service.State.html#STARTING"><CODE>Service.State.STARTING</CODE></A>, startup will be 321 cancelled. If this is <A HREF="../../../../com/google/common/base/Service.State.html#NEW"><CODE>Service.State.NEW</CODE></A>, it is <A HREF="../../../../com/google/common/base/Service.State.html#TERMINATED"><CODE>terminated</CODE></A> without having been started nor stopped. Unlike calling <code>stop().get()</code>, this method throws no checked exceptions. 322 <P> 323 <DD><DL> 324 325 <DT><B>Returns:</B><DD>the state of the service when shutdown finished. 326 <DT><B>Throws:</B> 327 <DD><CODE>InterruptedRuntimeException</CODE> - if the thread was interrupted while 328 waiting for the service to finish shutting down. 329 <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 shutdown failed</DL> 330 </DD> 331 </DL> 332 <!-- ========= END OF CLASS DATA ========= --> 333 <HR> 334 335 336 <!-- ======= START OF BOTTOM NAVBAR ====== --> 337 <A NAME="navbar_bottom"><!-- --></A> 338 <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> 339 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 340 <TR> 341 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 342 <A NAME="navbar_bottom_firstrow"><!-- --></A> 343 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 344 <TR ALIGN="center" VALIGN="top"> 345 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> 346 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 347 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 348 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Service.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 349 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 350 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 351 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 352 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 353 </TR> 354 </TABLE> 355 </TD> 356 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 357 </EM> 358 </TD> 359 </TR> 360 361 <TR> 362 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 363 <A HREF="../../../../com/google/common/base/Predicates.html" title="class in com.google.common.base"><B>PREV CLASS</B></A> 364 <A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base"><B>NEXT CLASS</B></A></FONT></TD> 365 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 366 <A HREF="../../../../index.html?com/google/common/base/Service.html" target="_top"><B>FRAMES</B></A> 367 <A HREF="Service.html" target="_top"><B>NO FRAMES</B></A> 368 <SCRIPT type="text/javascript"> 369 <!-- 370 if(window==top) { 371 document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>'); 372 } 373 //--> 374 </SCRIPT> 375 <NOSCRIPT> 376 <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A> 377 </NOSCRIPT> 378 379 380 </FONT></TD> 381 </TR> 382 <TR> 383 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 384 SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> 385 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 386 DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> 387 </TR> 388 </TABLE> 389 <A NAME="skip-navbar_bottom"></A> 390 <!-- ======== END OF BOTTOM NAVBAR ======= --> 391 392 <HR> 393 394 </BODY> 395 </HTML> 396