• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>
7Service (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">
15function 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>&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/Service.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;<A HREF="../../../../com/google/common/base/Predicates.html" title="class in com.google.common.base"><B>PREV CLASS</B></A>&nbsp;
59&nbsp;<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>  &nbsp;
62&nbsp;<A HREF="Service.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;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
80<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
81DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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">
91com.google.common.base</FONT>
92<BR>
93Interface 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>
103An 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> -&gt;</li>
109   <li><A HREF="../../../../com/google/common/base/Service.State.html#STARTING"><CODE>Service.State.STARTING</CODE></A> -&gt;</li>
110   <li><A HREF="../../../../com/google/common/base/Service.State.html#RUNNING"><CODE>Service.State.RUNNING</CODE></A> -&gt;</li>
111   <li><A HREF="../../../../com/google/common/base/Service.State.html#STOPPING"><CODE>Service.State.STOPPING</CODE></A> -&gt;</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&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The lifecycle states of a service.</TD>
148</TR>
149</TABLE>
150&nbsp;
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>&nbsp;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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>&lt;<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>&gt;</CODE></FONT></TD>
170<TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#start()">start</A></B>()</CODE>
171
172<BR>
173&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>&lt;<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>&gt;</CODE></FONT></TD>
196<TD><CODE><B><A HREF="../../../../com/google/common/base/Service.html#stop()">stop</A></B>()</CODE>
197
198<BR>
199&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initiates service shutdown (if necessary), returning once the service has
209 finished stopping.</TD>
210</TR>
211</TABLE>
212&nbsp;
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>
226start</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>&lt;<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>&gt; <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>
248startAndWait</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>
268isRunning</H3>
269<PRE>
270boolean <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>
281state</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>
294stop</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>&lt;<A HREF="../../../../com/google/common/base/Service.State.html" title="enum in com.google.common.base">Service.State</A>&gt; <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>
315stopAndWait</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>&nbsp;</TD>
346  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
347  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
348  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Service.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
349  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
350  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
351  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
352  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</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&nbsp;<A HREF="../../../../com/google/common/base/Predicates.html" title="class in com.google.common.base"><B>PREV CLASS</B></A>&nbsp;
364&nbsp;<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>  &nbsp;
367&nbsp;<A HREF="Service.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
368&nbsp;<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:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
385<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
386DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<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