1<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
2<!-- Generated by the JDiff Javadoc doclet -->
3<!-- (http://www.jdiff.org) -->
4<!-- on Tue May 19 17:01:51 PDT 2009 -->
5
6<api
7  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
8  xsi:noNamespaceSchemaLocation='api.xsd'
9  name="1.0"
10  jdversion="1.1.1">
11
12<!--  Command line arguments =  -doclet jdiff.JDiff -docletpath /Applications/bin/jdiff-1.1.1/jdiff.jar:/Applications/bin/jdiff-1.1.1/xerces.jar -d /Users/jessewilson/Guice/guice-everything/api-diffs -classpath /usr/share/ant/lib/ant-launcher.jar:/usr/share/ant/lib/ant-jai.jar:/usr/share/ant/lib/ant-jmf.jar:/usr/share/ant/lib/ant-junit.jar:/usr/share/ant/lib/ant-nodeps.jar:/usr/share/ant/lib/ant-swing.jar:/usr/share/ant/lib/ant-testutil.jar:/usr/share/ant/lib/ant-trax.jar:/usr/share/ant/lib/ant.jar:/usr/share/ant/lib/junit.jar:/usr/share/ant/lib/xercesImpl.jar:/usr/share/ant/lib/xml-apis.jar -sourcepath /Users/jessewilson/Guice/guice-everything/tags/1.0/src:/Users/jessewilson/Guice/guice-everything/tags/1.0/servlet/src:/Users/jessewilson/Guice/guice-everything/tags/1.0/spring/src:/Users/jessewilson/Guice/guice-everything/tags/1.0/struts2/plugin/src -apiname 1.0 -baseURI http://www.w3.org -apidir /Users/jessewilson/Guice/guice-everything/api-diffs -source 1.5 -->
13<package name="com.google.inject">
14  <!-- start class com.google.inject.AbstractModule -->
15  <class name="AbstractModule" extends="java.lang.Object"
16    abstract="true"
17    static="false" final="false" visibility="public"
18    deprecated="not deprecated">
19    <implements name="com.google.inject.Module"/>
20    <constructor name="AbstractModule"
21      static="false" final="false" visibility="public"
22      deprecated="not deprecated">
23    </constructor>
24    <method name="configure"
25      abstract="false" native="false" synchronized="true"
26      static="false" final="true" visibility="public"
27      deprecated="not deprecated">
28      <param name="builder" type="com.google.inject.Binder"/>
29    </method>
30    <method name="configure"
31      abstract="true" native="false" synchronized="false"
32      static="false" final="false" visibility="protected"
33      deprecated="not deprecated">
34      <doc>
35      <![CDATA[Configures a {@link Binder} via the exposed methods.]]>
36      </doc>
37    </method>
38    <method name="binder" return="com.google.inject.Binder"
39      abstract="false" native="false" synchronized="false"
40      static="false" final="false" visibility="protected"
41      deprecated="not deprecated">
42      <doc>
43      <![CDATA[Gets direct access to the underlying {@code Binder}.]]>
44      </doc>
45    </method>
46    <method name="bindScope"
47      abstract="false" native="false" synchronized="false"
48      static="false" final="false" visibility="protected"
49      deprecated="not deprecated">
50      <param name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
51      <param name="scope" type="com.google.inject.Scope"/>
52      <doc>
53      <![CDATA[@see Binder#bindScope(Class, Scope)]]>
54      </doc>
55    </method>
56    <method name="bind" return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
57      abstract="false" native="false" synchronized="false"
58      static="false" final="false" visibility="protected"
59      deprecated="not deprecated">
60      <param name="key" type="com.google.inject.Key&lt;T&gt;"/>
61      <doc>
62      <![CDATA[@see Binder#bind(Key)]]>
63      </doc>
64    </method>
65    <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
66      abstract="false" native="false" synchronized="false"
67      static="false" final="false" visibility="protected"
68      deprecated="not deprecated">
69      <param name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;"/>
70      <doc>
71      <![CDATA[@see Binder#bind(TypeLiteral)]]>
72      </doc>
73    </method>
74    <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
75      abstract="false" native="false" synchronized="false"
76      static="false" final="false" visibility="protected"
77      deprecated="not deprecated">
78      <param name="clazz" type="java.lang.Class&lt;T&gt;"/>
79      <doc>
80      <![CDATA[@see Binder#bind(Class)]]>
81      </doc>
82    </method>
83    <method name="bindConstant" return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
84      abstract="false" native="false" synchronized="false"
85      static="false" final="false" visibility="protected"
86      deprecated="not deprecated">
87      <doc>
88      <![CDATA[@see Binder#bindConstant()]]>
89      </doc>
90    </method>
91    <method name="install"
92      abstract="false" native="false" synchronized="false"
93      static="false" final="false" visibility="protected"
94      deprecated="not deprecated">
95      <param name="module" type="com.google.inject.Module"/>
96      <doc>
97      <![CDATA[@see Binder#install(Module)]]>
98      </doc>
99    </method>
100    <method name="addError"
101      abstract="false" native="false" synchronized="false"
102      static="false" final="false" visibility="protected"
103      deprecated="not deprecated">
104      <param name="message" type="java.lang.String"/>
105      <param name="arguments" type="java.lang.Object[]"/>
106      <doc>
107      <![CDATA[@see Binder#addError(String, Object[])]]>
108      </doc>
109    </method>
110    <method name="addError"
111      abstract="false" native="false" synchronized="false"
112      static="false" final="false" visibility="protected"
113      deprecated="not deprecated">
114      <param name="t" type="java.lang.Throwable"/>
115      <doc>
116      <![CDATA[@see Binder#addError(Throwable)]]>
117      </doc>
118    </method>
119    <method name="requestStaticInjection"
120      abstract="false" native="false" synchronized="false"
121      static="false" final="false" visibility="protected"
122      deprecated="not deprecated">
123      <param name="types" type="java.lang.Class[]"/>
124      <doc>
125      <![CDATA[@see Binder#requestStaticInjection(Class[])]]>
126      </doc>
127    </method>
128    <method name="bindInterceptor"
129      abstract="false" native="false" synchronized="false"
130      static="false" final="false" visibility="protected"
131      deprecated="not deprecated">
132      <param name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;"/>
133      <param name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;"/>
134      <param name="interceptors" type="MethodInterceptor[]"/>
135      <doc>
136      <![CDATA[@see Binder#bindInterceptor(com.google.inject.matcher.Matcher,
137  com.google.inject.matcher.Matcher,
138  org.aopalliance.intercept.MethodInterceptor[])]]>
139      </doc>
140    </method>
141    <doc>
142    <![CDATA[A support class for {@link Module}s which reduces repetition and results in
143 a more readable configuration. Simply extend this class, implement {@link
144 #configure()}, and call the inherited methods which mirror those found in
145 {@link Binder}. For example:
146
147 <pre>
148 import static com.google.inject.Names.named;
149
150 public class MyModule extends AbstractModule {
151   protected void configure() {
152     bind(Foo.class).to(FooImpl.class).in(Scopes.SINGLETON);
153     bind(BarImpl.class);
154     link(Bar.class).to(BarImpl.class);
155     bindConstant(named("port")).to(8080);
156   }
157 }
158 </pre>
159
160 @author crazybob@google.com (Bob Lee)]]>
161    </doc>
162  </class>
163  <!-- end class com.google.inject.AbstractModule -->
164  <!-- start interface com.google.inject.Binder -->
165  <interface name="Binder"    abstract="true"
166    static="false" final="false" visibility="public"
167    deprecated="not deprecated">
168    <method name="bindInterceptor"
169      abstract="false" native="false" synchronized="false"
170      static="false" final="false" visibility="public"
171      deprecated="not deprecated">
172      <param name="classMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;"/>
173      <param name="methodMatcher" type="com.google.inject.matcher.Matcher&lt;? super java.lang.reflect.Method&gt;"/>
174      <param name="interceptors" type="MethodInterceptor[]"/>
175      <doc>
176      <![CDATA[Binds a method interceptor to methods matched by class and method
177 matchers.
178
179 @param classMatcher matches classes the interceptor should apply to. For
180     example: {@code only(Runnable.class)}.
181 @param methodMatcher matches methods the interceptor should apply to. For
182     example: {@code annotatedWith(Transactional.class)}.
183 @param interceptors to bind]]>
184      </doc>
185    </method>
186    <method name="bindScope"
187      abstract="false" native="false" synchronized="false"
188      static="false" final="false" visibility="public"
189      deprecated="not deprecated">
190      <param name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
191      <param name="scope" type="com.google.inject.Scope"/>
192      <doc>
193      <![CDATA[Binds a scope to an annotation.]]>
194      </doc>
195    </method>
196    <method name="bind" return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
197      abstract="false" native="false" synchronized="false"
198      static="false" final="false" visibility="public"
199      deprecated="not deprecated">
200      <param name="key" type="com.google.inject.Key&lt;T&gt;"/>
201      <doc>
202      <![CDATA[Creates a binding to a key.]]>
203      </doc>
204    </method>
205    <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
206      abstract="false" native="false" synchronized="false"
207      static="false" final="false" visibility="public"
208      deprecated="not deprecated">
209      <param name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;"/>
210      <doc>
211      <![CDATA[Creates a binding to a type.]]>
212      </doc>
213    </method>
214    <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder&lt;T&gt;"
215      abstract="false" native="false" synchronized="false"
216      static="false" final="false" visibility="public"
217      deprecated="not deprecated">
218      <param name="type" type="java.lang.Class&lt;T&gt;"/>
219      <doc>
220      <![CDATA[Creates a binding to a type.]]>
221      </doc>
222    </method>
223    <method name="bindConstant" return="com.google.inject.binder.AnnotatedConstantBindingBuilder"
224      abstract="false" native="false" synchronized="false"
225      static="false" final="false" visibility="public"
226      deprecated="not deprecated">
227      <doc>
228      <![CDATA[Binds a constant value to an annotation.]]>
229      </doc>
230    </method>
231    <method name="requestStaticInjection"
232      abstract="false" native="false" synchronized="false"
233      static="false" final="false" visibility="public"
234      deprecated="not deprecated">
235      <param name="types" type="java.lang.Class[]"/>
236      <doc>
237      <![CDATA[Upon successful creation, the {@link Injector} will inject static fields
238 and methods in the given classes.
239
240 @param types for which static members will be injected]]>
241      </doc>
242    </method>
243    <method name="install"
244      abstract="false" native="false" synchronized="false"
245      static="false" final="false" visibility="public"
246      deprecated="not deprecated">
247      <param name="module" type="com.google.inject.Module"/>
248      <doc>
249      <![CDATA[Uses the given module to configure more bindings.]]>
250      </doc>
251    </method>
252    <method name="currentStage" return="com.google.inject.Stage"
253      abstract="false" native="false" synchronized="false"
254      static="false" final="false" visibility="public"
255      deprecated="not deprecated">
256      <doc>
257      <![CDATA[Gets the current stage.]]>
258      </doc>
259    </method>
260    <method name="addError"
261      abstract="false" native="false" synchronized="false"
262      static="false" final="false" visibility="public"
263      deprecated="not deprecated">
264      <param name="message" type="java.lang.String"/>
265      <param name="arguments" type="java.lang.Object[]"/>
266      <doc>
267      <![CDATA[Records an error message which will be presented to the user at a later
268 time. Unlike throwing an exception, this enable us to continue
269 configuring the Injector and discover more errors. Uses {@link
270 String#format(String, Object[])} to insert the arguments into the
271 message.]]>
272      </doc>
273    </method>
274    <method name="addError"
275      abstract="false" native="false" synchronized="false"
276      static="false" final="false" visibility="public"
277      deprecated="not deprecated">
278      <param name="t" type="java.lang.Throwable"/>
279      <doc>
280      <![CDATA[Records an exception, the full details of which will be logged, and the
281 message of which will be presented to the user at a later
282 time. If your Module calls something that you worry may fail, you should
283 catch the exception and pass it into this.]]>
284      </doc>
285    </method>
286    <doc>
287    <![CDATA[Collects configuration information (primarily <i>bindings</i>) which will be
288 used to create an {@link Injector}. Guice provides this object to your
289 application's {@link Module}s so they may each contribute
290 their own bindings.
291
292 <p>The bindings contributed by {@code Module}s define how the {@code
293 Injector} resolves dependencies. A {@link Key} consisting of a type
294 and optional annotation uniquely identifies a binding within an {@code
295 Injector}.
296
297 <p>You may bind from a key to:
298
299 <ul>
300 <li>Another binding, which this binding's key is now "aliased to"
301 <li>Another binding, which references a {@link Provider} for this key
302 <li>A preconstructed instance
303 <li>A preconstructed instance which should be used as the {@link Provider}
304   for this binding
305 </ul>
306
307 <p>In addition, a binding may have an associated scope, such as
308 {@link Scopes#SINGLETON}, and singleton bindings may specify eager or lazy
309 initialization.
310
311 <p>See the users' guide appendix, "How the Injector resolves injection
312 requests," to better understand binding resolution.
313
314 <p>After an {@code Injector} has been created, its bindings may be
315 examined using methods like {@link Injector#getBinding(Key)}, but this
316 read-only {@link Binding} type is not used when <i>creating</i> the
317 bindings.]]>
318    </doc>
319  </interface>
320  <!-- end interface com.google.inject.Binder -->
321  <!-- start interface com.google.inject.Binding -->
322  <interface name="Binding"    abstract="true"
323    static="false" final="false" visibility="public"
324    deprecated="not deprecated">
325    <method name="getKey" return="com.google.inject.Key&lt;T&gt;"
326      abstract="false" native="false" synchronized="false"
327      static="false" final="false" visibility="public"
328      deprecated="not deprecated">
329      <doc>
330      <![CDATA[Returns the key for this binding.]]>
331      </doc>
332    </method>
333    <method name="getSource" return="java.lang.Object"
334      abstract="false" native="false" synchronized="false"
335      static="false" final="false" visibility="public"
336      deprecated="not deprecated">
337      <doc>
338      <![CDATA[Returns an arbitrary object containing information about the "place"
339 where this binding was configured. Used by Guice in the production of
340 descriptive error messages.]]>
341      </doc>
342    </method>
343    <method name="getProvider" return="com.google.inject.Provider&lt;T&gt;"
344      abstract="false" native="false" synchronized="false"
345      static="false" final="false" visibility="public"
346      deprecated="not deprecated">
347      <doc>
348      <![CDATA[Returns the provider guice uses to fulfill requests for this binding.]]>
349      </doc>
350    </method>
351    <doc>
352    <![CDATA[A mapping from a key (type and optional annotation) to a provider of
353 instances of that type.  This interface is part of the {@link Injector}
354 introspection API and is intended primary for use by tools.
355
356 @author crazybob@google.com (Bob Lee)]]>
357    </doc>
358  </interface>
359  <!-- end interface com.google.inject.Binding -->
360  <!-- start class com.google.inject.BindingAnnotation -->
361  <class name="BindingAnnotation"    abstract="true"
362    static="false" final="false" visibility="public"
363    deprecated="not deprecated">
364    <implements name="java.lang.annotation.Annotation"/>
365    <doc>
366    <![CDATA[Annotates annotations which are used for binding. Only one such annotation
367 may apply to a single injection point. You must also annotate binder
368 annotations with {@code @Retention(RUNTIME)}. For example:
369
370 <pre>
371   {@code @}Retention(RUNTIME)
372   {@code @}Target({ FIELD, PARAMETER })
373   {@code @}BindingAnnotation
374   public {@code @}interface Transactional {}
375 </pre>
376
377 @author crazybob@google.com (Bob Lee)]]>
378    </doc>
379  </class>
380  <!-- end class com.google.inject.BindingAnnotation -->
381  <!-- start class com.google.inject.CreationException -->
382  <class name="CreationException" extends="java.lang.RuntimeException"
383    abstract="false"
384    static="false" final="false" visibility="public"
385    deprecated="not deprecated">
386    <constructor name="CreationException" type="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
387      static="false" final="false" visibility="public"
388      deprecated="not deprecated">
389      <doc>
390      <![CDATA[Constructs a new exception for the given errors.]]>
391      </doc>
392    </constructor>
393    <method name="getMessage" return="java.lang.String"
394      abstract="false" native="false" synchronized="false"
395      static="false" final="false" visibility="public"
396      deprecated="not deprecated">
397    </method>
398    <method name="getErrorMessages" return="java.util.Collection&lt;com.google.inject.spi.Message&gt;"
399      abstract="false" native="false" synchronized="false"
400      static="false" final="false" visibility="public"
401      deprecated="not deprecated">
402      <doc>
403      <![CDATA[Gets the error messages which resulted in this exception.]]>
404      </doc>
405    </method>
406    <doc>
407    <![CDATA[Thrown when errors occur while creating a {@link Injector}. Includes a list
408 of encountered errors. Typically, a client should catch this exception, log
409 it, and stop execution.
410
411 @author crazybob@google.com (Bob Lee)]]>
412    </doc>
413  </class>
414  <!-- end class com.google.inject.CreationException -->
415  <!-- start class com.google.inject.Guice -->
416  <class name="Guice" extends="java.lang.Object"
417    abstract="false"
418    static="false" final="true" visibility="public"
419    deprecated="not deprecated">
420    <method name="createInjector" return="com.google.inject.Injector"
421      abstract="false" native="false" synchronized="false"
422      static="true" final="false" visibility="public"
423      deprecated="not deprecated">
424      <param name="modules" type="com.google.inject.Module[]"/>
425      <doc>
426      <![CDATA[Creates an injector for the given set of modules.
427
428 @throws CreationException from which you can retrieve the individual error
429  messages]]>
430      </doc>
431    </method>
432    <method name="createInjector" return="com.google.inject.Injector"
433      abstract="false" native="false" synchronized="false"
434      static="true" final="false" visibility="public"
435      deprecated="not deprecated">
436      <param name="modules" type="java.lang.Iterable&lt;com.google.inject.Module&gt;"/>
437      <doc>
438      <![CDATA[Creates an injector for the given set of modules.
439
440 @throws CreationException from which you can retrieve the individual error
441  messages]]>
442      </doc>
443    </method>
444    <method name="createInjector" return="com.google.inject.Injector"
445      abstract="false" native="false" synchronized="false"
446      static="true" final="false" visibility="public"
447      deprecated="not deprecated">
448      <param name="stage" type="com.google.inject.Stage"/>
449      <param name="modules" type="com.google.inject.Module[]"/>
450      <doc>
451      <![CDATA[Creates an injector for the given set of modules, in a given development
452 stage.
453
454 @throws CreationException from which you can retrieve the individual error
455  messages.]]>
456      </doc>
457    </method>
458    <method name="createInjector" return="com.google.inject.Injector"
459      abstract="false" native="false" synchronized="false"
460      static="true" final="false" visibility="public"
461      deprecated="not deprecated">
462      <param name="stage" type="com.google.inject.Stage"/>
463      <param name="modules" type="java.lang.Iterable&lt;com.google.inject.Module&gt;"/>
464      <doc>
465      <![CDATA[Creates an injector for the given set of modules, in a given development
466 stage.
467
468 @throws CreationException from which you can retrieve the individual error
469  messages.]]>
470      </doc>
471    </method>
472    <doc>
473    <![CDATA[The entry point to the Guice framework. Creates {@link Injector}s from
474 {@link Module}s.]]>
475    </doc>
476  </class>
477  <!-- end class com.google.inject.Guice -->
478  <!-- start class com.google.inject.ImplementedBy -->
479  <class name="ImplementedBy"    abstract="true"
480    static="false" final="false" visibility="public"
481    deprecated="not deprecated">
482    <implements name="java.lang.annotation.Annotation"/>
483    <doc>
484    <![CDATA[A pointer to the default implementation of a type.
485
486 @author crazybob@google.com (Bob Lee)]]>
487    </doc>
488  </class>
489  <!-- end class com.google.inject.ImplementedBy -->
490  <!-- start class com.google.inject.Inject -->
491  <class name="Inject"    abstract="true"
492    static="false" final="false" visibility="public"
493    deprecated="not deprecated">
494    <implements name="java.lang.annotation.Annotation"/>
495    <doc>
496    <![CDATA[Annotates members of your implementation class (constructors, methods
497 and fields) into which the {@link Injector} should inject values.
498 The Injector fulfills injection requests for:
499
500 <ul>
501 <li>Every instance it constructs. The class being constructed must have
502 exactly one of its constructors marked with {@code @Inject} or must have a
503 constructor taking no parameters. The Injector then proceeds to perform
504 method and field injections.
505
506 <li>Pre-constructed instances passed to {@link Injector#injectMembers},
507 {@link com.google.inject.binder.LinkedBindingBuilder#toInstance(Object)} and
508 {@link com.google.inject.binder.LinkedBindingBuilder#toProvider(Provider)}.
509 In this case all constructors are, of course, ignored.
510
511 <li>Static fields and methods of classes which any {@link Module} has
512 specifically requested static injection for, using
513 {@link Binder#requestStaticInjection}.
514 </ul>
515
516 In all cases, a member can be injected regardless of its Java access
517 specifier (private, default, protected, public).
518
519 @author crazybob@google.com (Bob Lee)]]>
520    </doc>
521  </class>
522  <!-- end class com.google.inject.Inject -->
523  <!-- start interface com.google.inject.Injector -->
524  <interface name="Injector"    abstract="true"
525    static="false" final="false" visibility="public"
526    deprecated="not deprecated">
527    <method name="injectMembers"
528      abstract="false" native="false" synchronized="false"
529      static="false" final="false" visibility="public"
530      deprecated="not deprecated">
531      <param name="o" type="java.lang.Object"/>
532      <doc>
533      <![CDATA[Injects dependencies into the fields and methods of an existing object.
534 Does not inject the constructor.]]>
535      </doc>
536    </method>
537    <method name="getBindings" return="java.util.Map&lt;com.google.inject.Key&lt;?&gt;, com.google.inject.Binding&lt;?&gt;&gt;"
538      abstract="false" native="false" synchronized="false"
539      static="false" final="false" visibility="public"
540      deprecated="not deprecated">
541      <doc>
542      <![CDATA[Gets all explicit bindings.]]>
543      </doc>
544    </method>
545    <method name="getBinding" return="com.google.inject.Binding&lt;T&gt;"
546      abstract="false" native="false" synchronized="false"
547      static="false" final="false" visibility="public"
548      deprecated="not deprecated">
549      <param name="key" type="com.google.inject.Key&lt;T&gt;"/>
550      <doc>
551      <![CDATA[Gets a binding for the given key.]]>
552      </doc>
553    </method>
554    <method name="findBindingsByType" return="java.util.List&lt;com.google.inject.Binding&lt;T&gt;&gt;"
555      abstract="false" native="false" synchronized="false"
556      static="false" final="false" visibility="public"
557      deprecated="not deprecated">
558      <param name="type" type="com.google.inject.TypeLiteral&lt;T&gt;"/>
559      <doc>
560      <![CDATA[Finds all bindings to the given type.]]>
561      </doc>
562    </method>
563    <method name="getProvider" return="com.google.inject.Provider&lt;T&gt;"
564      abstract="false" native="false" synchronized="false"
565      static="false" final="false" visibility="public"
566      deprecated="not deprecated">
567      <param name="key" type="com.google.inject.Key&lt;T&gt;"/>
568      <doc>
569      <![CDATA[Gets the provider bound to the given key.]]>
570      </doc>
571    </method>
572    <method name="getProvider" return="com.google.inject.Provider&lt;T&gt;"
573      abstract="false" native="false" synchronized="false"
574      static="false" final="false" visibility="public"
575      deprecated="not deprecated">
576      <param name="type" type="java.lang.Class&lt;T&gt;"/>
577      <doc>
578      <![CDATA[Gets the provider bound to the given type.]]>
579      </doc>
580    </method>
581    <method name="getInstance" return="T"
582      abstract="false" native="false" synchronized="false"
583      static="false" final="false" visibility="public"
584      deprecated="not deprecated">
585      <param name="key" type="com.google.inject.Key&lt;T&gt;"/>
586      <doc>
587      <![CDATA[Gets an instance bound to the given key; equivalent to
588 {@code getProvider(key).get()}.]]>
589      </doc>
590    </method>
591    <method name="getInstance" return="T"
592      abstract="false" native="false" synchronized="false"
593      static="false" final="false" visibility="public"
594      deprecated="not deprecated">
595      <param name="type" type="java.lang.Class&lt;T&gt;"/>
596      <doc>
597      <![CDATA[Gets an instance bound to the given type; equivalent to
598 {@code getProvider(type).get()}.]]>
599      </doc>
600    </method>
601    <doc>
602    <![CDATA[Fulfills requests for the object instances that make up your application,
603 always ensuring that these instances are properly injected before they are
604 returned. The {@code Injector} is the heart of the Guice framework,
605 although you don't typically interact with it directly very often. This
606 "behind-the-scenes" operation is what distinguishes the dependency
607 injection pattern from its cousin, service locator.
608
609 <p>The {@code Injector} API has a few additional features: it allows
610 pre-constructed instances to have their fields and methods injected and
611 offers programmatic introspection to support tool development.
612
613 <p>Contains several default bindings:
614
615 <ul>
616 <li>This {@link Injector} instance itself
617 <li>A {@code Provider<T>} for each binding of type {@code T}
618 <li>The {@link java.util.logging.Logger} for the class being injected
619 <li>The {@link Stage} in which the Injector was created
620 </ul>
621
622 Injectors are created using the facade class {@link Guice}.
623
624 @author crazybob@google.com (Bob Lee)]]>
625    </doc>
626  </interface>
627  <!-- end interface com.google.inject.Injector -->
628  <!-- start class com.google.inject.Key -->
629  <class name="Key" extends="java.lang.Object"
630    abstract="true"
631    static="false" final="false" visibility="public"
632    deprecated="not deprecated">
633    <constructor name="Key" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"
634      static="false" final="false" visibility="protected"
635      deprecated="not deprecated">
636      <doc>
637      <![CDATA[Constructs a new key. Derives the type from this class's type parameter.
638
639 <p>Clients create an empty anonymous subclass. Doing so embeds the type
640 parameter in the anonymous class's type hierarchy so we can reconstitute it
641 at runtime despite erasure.
642
643 <p>Example usage for a binding of type {@code Foo} annotated with
644 {@code @Bar}:
645
646 <p>{@code new Key<Foo>(Bar.class) {}}.]]>
647      </doc>
648    </constructor>
649    <constructor name="Key" type="java.lang.annotation.Annotation"
650      static="false" final="false" visibility="protected"
651      deprecated="not deprecated">
652      <doc>
653      <![CDATA[Constructs a new key. Derives the type from this class's type parameter.
654
655 <p>Clients create an empty anonymous subclass. Doing so embeds the type
656 parameter in the anonymous class's type hierarchy so we can reconstitute it
657 at runtime despite erasure.
658
659 <p>Example usage for a binding of type {@code Foo} annotated with
660 {@code @Bar}:
661
662 <p>{@code new Key<Foo>(new Bar()) {}}.]]>
663      </doc>
664    </constructor>
665    <constructor name="Key"
666      static="false" final="false" visibility="protected"
667      deprecated="not deprecated">
668      <doc>
669      <![CDATA[Constructs a new key. Derives the type from this class's type parameter.
670
671 <p>Clients create an empty anonymous subclass. Doing so embeds the type
672 parameter in the anonymous class's type hierarchy so we can reconstitute it
673 at runtime despite erasure.
674
675 <p>Example usage for a binding of type {@code Foo}:
676
677 <p>{@code new Key<Foo>() {}}.]]>
678      </doc>
679    </constructor>
680    <method name="getTypeLiteral" return="com.google.inject.TypeLiteral&lt;T&gt;"
681      abstract="false" native="false" synchronized="false"
682      static="false" final="false" visibility="public"
683      deprecated="not deprecated">
684      <doc>
685      <![CDATA[Gets the key type.]]>
686      </doc>
687    </method>
688    <method name="getAnnotationType" return="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"
689      abstract="false" native="false" synchronized="false"
690      static="false" final="false" visibility="public"
691      deprecated="not deprecated">
692      <doc>
693      <![CDATA[Gets the annotation type.]]>
694      </doc>
695    </method>
696    <method name="getAnnotation" return="java.lang.annotation.Annotation"
697      abstract="false" native="false" synchronized="false"
698      static="false" final="false" visibility="public"
699      deprecated="not deprecated">
700      <doc>
701      <![CDATA[Gets the annotation.]]>
702      </doc>
703    </method>
704    <method name="hashCode" return="int"
705      abstract="false" native="false" synchronized="false"
706      static="false" final="false" visibility="public"
707      deprecated="not deprecated">
708    </method>
709    <method name="equals" return="boolean"
710      abstract="false" native="false" synchronized="false"
711      static="false" final="false" visibility="public"
712      deprecated="not deprecated">
713      <param name="o" type="java.lang.Object"/>
714    </method>
715    <method name="toString" return="java.lang.String"
716      abstract="false" native="false" synchronized="false"
717      static="false" final="false" visibility="public"
718      deprecated="not deprecated">
719    </method>
720    <method name="get" return="com.google.inject.Key&lt;T&gt;"
721      abstract="false" native="false" synchronized="false"
722      static="true" final="false" visibility="public"
723      deprecated="not deprecated">
724      <param name="type" type="java.lang.Class&lt;T&gt;"/>
725      <doc>
726      <![CDATA[Gets a key for an injection type.]]>
727      </doc>
728    </method>
729    <method name="get" return="com.google.inject.Key&lt;T&gt;"
730      abstract="false" native="false" synchronized="false"
731      static="true" final="false" visibility="public"
732      deprecated="not deprecated">
733      <param name="type" type="java.lang.Class&lt;T&gt;"/>
734      <param name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
735      <doc>
736      <![CDATA[Gets a key for an injection type and an annotation type.]]>
737      </doc>
738    </method>
739    <method name="get" return="com.google.inject.Key&lt;T&gt;"
740      abstract="false" native="false" synchronized="false"
741      static="true" final="false" visibility="public"
742      deprecated="not deprecated">
743      <param name="type" type="java.lang.Class&lt;T&gt;"/>
744      <param name="annotation" type="java.lang.annotation.Annotation"/>
745      <doc>
746      <![CDATA[Gets a key for an injection type and an annotation.]]>
747      </doc>
748    </method>
749    <method name="get" return="com.google.inject.Key&lt;?&gt;"
750      abstract="false" native="false" synchronized="false"
751      static="true" final="false" visibility="public"
752      deprecated="not deprecated">
753      <param name="type" type="java.lang.reflect.Type"/>
754      <doc>
755      <![CDATA[Gets a key for an injection type.]]>
756      </doc>
757    </method>
758    <method name="get" return="com.google.inject.Key&lt;?&gt;"
759      abstract="false" native="false" synchronized="false"
760      static="true" final="false" visibility="public"
761      deprecated="not deprecated">
762      <param name="type" type="java.lang.reflect.Type"/>
763      <param name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
764      <doc>
765      <![CDATA[Gets a key for an injection type and an annotation type.]]>
766      </doc>
767    </method>
768    <method name="get" return="com.google.inject.Key&lt;?&gt;"
769      abstract="false" native="false" synchronized="false"
770      static="true" final="false" visibility="public"
771      deprecated="not deprecated">
772      <param name="type" type="java.lang.reflect.Type"/>
773      <param name="annotation" type="java.lang.annotation.Annotation"/>
774      <doc>
775      <![CDATA[Gets a key for an injection type and an annotation.]]>
776      </doc>
777    </method>
778    <method name="get" return="com.google.inject.Key&lt;T&gt;"
779      abstract="false" native="false" synchronized="false"
780      static="true" final="false" visibility="public"
781      deprecated="not deprecated">
782      <param name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;"/>
783      <doc>
784      <![CDATA[Gets a key for an injection type.]]>
785      </doc>
786    </method>
787    <method name="get" return="com.google.inject.Key&lt;T&gt;"
788      abstract="false" native="false" synchronized="false"
789      static="true" final="false" visibility="public"
790      deprecated="not deprecated">
791      <param name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;"/>
792      <param name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
793      <doc>
794      <![CDATA[Gets a key for an injection type and an annotation type.]]>
795      </doc>
796    </method>
797    <method name="get" return="com.google.inject.Key&lt;T&gt;"
798      abstract="false" native="false" synchronized="false"
799      static="true" final="false" visibility="public"
800      deprecated="not deprecated">
801      <param name="typeLiteral" type="com.google.inject.TypeLiteral&lt;T&gt;"/>
802      <param name="annotation" type="java.lang.annotation.Annotation"/>
803      <doc>
804      <![CDATA[Gets a key for an injection type and an annotation.]]>
805      </doc>
806    </method>
807    <doc>
808    <![CDATA[Binding key consisting of an injection type and an optional annotation.
809 Matches the type and annotation at a point of injection.
810
811 <p>For example, {@code Key.get(Service.class, Transactional.class)} will
812 match:
813
814 <pre>
815   {@literal @}Inject
816   public void setService({@literal @}Transactional Service service) {
817     ...
818   }
819 </pre>
820
821 <p>{@code Key} supports generic types via subclassing just like {@link
822 TypeLiteral}.
823
824 @author crazybob@google.com (Bob Lee)]]>
825    </doc>
826  </class>
827  <!-- end class com.google.inject.Key -->
828  <!-- start interface com.google.inject.Module -->
829  <interface name="Module"    abstract="true"
830    static="false" final="false" visibility="public"
831    deprecated="not deprecated">
832    <method name="configure"
833      abstract="false" native="false" synchronized="false"
834      static="false" final="false" visibility="public"
835      deprecated="not deprecated">
836      <param name="binder" type="com.google.inject.Binder"/>
837      <doc>
838      <![CDATA[Contributes bindings and other configurations to a {@code Binder}.]]>
839      </doc>
840    </method>
841    <doc>
842    <![CDATA[A module contributes configuration information, typically interface
843 bindings, which will be used to create an {@link Injector}. A guice-based
844 application is ultimately composed of little more than a set of
845 {@code Module}s and some bootstrapping code.
846
847 <p>Your Module classes can use a more streamlined syntax by extending
848 {@link AbstractModule} rather than implementing this interface directly.]]>
849    </doc>
850  </interface>
851  <!-- end interface com.google.inject.Module -->
852  <!-- start class com.google.inject.ProvidedBy -->
853  <class name="ProvidedBy"    abstract="true"
854    static="false" final="false" visibility="public"
855    deprecated="not deprecated">
856    <implements name="java.lang.annotation.Annotation"/>
857    <doc>
858    <![CDATA[A pointer to the default provider type for a type.
859
860 @author crazybob@google.com (Bob Lee)]]>
861    </doc>
862  </class>
863  <!-- end class com.google.inject.ProvidedBy -->
864  <!-- start interface com.google.inject.Provider -->
865  <interface name="Provider"    abstract="true"
866    static="false" final="false" visibility="public"
867    deprecated="not deprecated">
868    <method name="get" return="T"
869      abstract="false" native="false" synchronized="false"
870      static="false" final="false" visibility="public"
871      deprecated="not deprecated">
872      <doc>
873      <![CDATA[Provides an instance of {@code T}. Must never return {@code null}.]]>
874      </doc>
875    </method>
876    <doc>
877    <![CDATA[Simply, any object capable of providing instances of type {@code T}.
878 Providers are used in numerous ways by the Guice framework:
879
880 <ul>
881 <li>When the default means for obtaining instances (an injectable or
882 parameterless constructor) is insufficient for a particular binding, the
883 module can specify a custom {@code Provider} instead, to control exactly how
884 Guice creates or obtains instances for the binding.
885
886 <li>An implementation class may always choose to have a {@code Provider<T>}
887 instance injected, rather than having a {@code T} injected directly.  This
888 may give you access to multiple instances, instances you wish to safely
889 mutate and discard, instances which are out of scope (e.g. using a
890 {@code @RequestScoped} object from within a {@code @SessionScoped} object),
891 or instances you don't want to initialize until they are absolutely needed.
892
893 <li>A custom {@link Scope} is implemented as a decorator of
894 {@code Provider<T>}, which decides when to delegate to the backing provider
895 and when to provide the instance some other way.
896
897 <li>The {@link Injector} offers access to the {@code Provider<T>} it uses
898 to fulfill requests for a given key, via the {@link Injector#getProvider}
899 methods.
900 </ul>
901
902 @param <T> the type of object this provider provides
903
904 @author crazybob@google.com (Bob Lee)]]>
905    </doc>
906  </interface>
907  <!-- end interface com.google.inject.Provider -->
908  <!-- start interface com.google.inject.Scope -->
909  <interface name="Scope"    abstract="true"
910    static="false" final="false" visibility="public"
911    deprecated="not deprecated">
912    <method name="scope" return="com.google.inject.Provider&lt;T&gt;"
913      abstract="false" native="false" synchronized="false"
914      static="false" final="false" visibility="public"
915      deprecated="not deprecated">
916      <param name="key" type="com.google.inject.Key&lt;T&gt;"/>
917      <param name="unscoped" type="com.google.inject.Provider&lt;T&gt;"/>
918      <doc>
919      <![CDATA[Scopes a provider. The returned locator returns objects from this scope. If
920 an object does not exist in this scope, the provider can use the given
921 unscoped provider to retrieve one.
922
923 <p>Scope implementations are strongly encouraged to override
924 {@link Object#toString} in the returned provider and include the backing
925 provider's {@code toString()} output.
926
927 @param key binding key
928 @param unscoped locates an instance when one doesn't already exist in this
929  scope.
930 @return a new provider which only delegates to the given unscoped provider
931  when an instance of the requested object doesn't already exist in this
932  scope]]>
933      </doc>
934    </method>
935    <method name="toString" return="java.lang.String"
936      abstract="false" native="false" synchronized="false"
937      static="false" final="false" visibility="public"
938      deprecated="not deprecated">
939      <doc>
940      <![CDATA[A short but useful description of this scope.  For comparison, the standard
941 scopes that ship with guice use the descriptions
942 {@code "Scopes.SINGLETON"}, {@code "ServletScopes.SESSION"} and
943 {@code "ServletScopes.REQUEST"}.]]>
944      </doc>
945    </method>
946    <doc>
947    <![CDATA[A scope is a level of visibility that instances provided by Guice may have.
948 By default, an instance created by the {@link Injector} has <i>no
949 scope</i>, meaning it has no state from the framework's perspective -- the
950 {@code Injector} creates it, injects it once into the class that required it,
951 and then immediately forgets it. Associating a scope with a particular binding
952 allows the created instance to be "remembered" and possibly used again for
953 other injections.
954
955 @see Scopes#SINGLETON
956
957 @author crazybob@google.com (Bob Lee)]]>
958    </doc>
959  </interface>
960  <!-- end interface com.google.inject.Scope -->
961  <!-- start class com.google.inject.ScopeAnnotation -->
962  <class name="ScopeAnnotation"    abstract="true"
963    static="false" final="false" visibility="public"
964    deprecated="not deprecated">
965    <implements name="java.lang.annotation.Annotation"/>
966    <doc>
967    <![CDATA[Annotates annotations which are used for scoping. Only one such annotation
968 may apply to a single implementation class. You must also annotate scope
969 annotations with {@code @Retention(RUNTIME)}. For example:
970
971 <pre>
972   {@code @}Retention(RUNTIME)
973   {@code @}Target(TYPE)
974   {@code @}ScopeAnnotation
975   public {@code @}interface SessionScoped {}
976 </pre>
977
978 @author crazybob@google.com (Bob Lee)]]>
979    </doc>
980  </class>
981  <!-- end class com.google.inject.ScopeAnnotation -->
982  <!-- start class com.google.inject.Scopes -->
983  <class name="Scopes" extends="java.lang.Object"
984    abstract="false"
985    static="false" final="false" visibility="public"
986    deprecated="not deprecated">
987    <field name="SINGLETON" type="com.google.inject.Scope"
988      transient="false" volatile="false"
989      static="true" final="true" visibility="public"
990      deprecated="not deprecated">
991      <doc>
992      <![CDATA[One instance per {@link Injector}. Also see {@code @}{@link Singleton}.]]>
993      </doc>
994    </field>
995    <doc>
996    <![CDATA[Built in scope implementations.
997
998 @author crazybob@google.com (Bob Lee)]]>
999    </doc>
1000  </class>
1001  <!-- end class com.google.inject.Scopes -->
1002  <!-- start class com.google.inject.Singleton -->
1003  <class name="Singleton"    abstract="true"
1004    static="false" final="false" visibility="public"
1005    deprecated="not deprecated">
1006    <implements name="java.lang.annotation.Annotation"/>
1007    <doc>
1008    <![CDATA[Apply this to implementation classes when you want only one instance
1009 (per {@link Injector}) to be reused for all injections for that binding.
1010
1011 @author crazybob@google.com (Bob Lee)]]>
1012    </doc>
1013  </class>
1014  <!-- end class com.google.inject.Singleton -->
1015  <!-- start class com.google.inject.Stage -->
1016  <class name="Stage" extends="java.lang.Enum&lt;com.google.inject.Stage&gt;"
1017    abstract="false"
1018    static="false" final="true" visibility="public"
1019    deprecated="not deprecated">
1020    <method name="values" return="com.google.inject.Stage[]"
1021      abstract="false" native="false" synchronized="false"
1022      static="true" final="false" visibility="public"
1023      deprecated="not deprecated">
1024    </method>
1025    <method name="valueOf" return="com.google.inject.Stage"
1026      abstract="false" native="false" synchronized="false"
1027      static="true" final="false" visibility="public"
1028      deprecated="not deprecated">
1029      <param name="name" type="java.lang.String"/>
1030    </method>
1031    <doc>
1032    <![CDATA[The stage we're running in.
1033
1034 @author crazybob@google.com (Bob Lee)]]>
1035    </doc>
1036  </class>
1037  <!-- end class com.google.inject.Stage -->
1038  <!-- start class com.google.inject.TypeLiteral -->
1039  <class name="TypeLiteral" extends="java.lang.Object"
1040    abstract="true"
1041    static="false" final="false" visibility="public"
1042    deprecated="not deprecated">
1043    <constructor name="TypeLiteral"
1044      static="false" final="false" visibility="protected"
1045      deprecated="not deprecated">
1046      <doc>
1047      <![CDATA[Constructs a new type literal. Derives represented class from type
1048 parameter.
1049
1050 <p>Clients create an empty anonymous subclass. Doing so embeds the type
1051 parameter in the anonymous class's type hierarchy so we can reconstitute it
1052 at runtime despite erasure.]]>
1053      </doc>
1054    </constructor>
1055    <method name="getType" return="java.lang.reflect.Type"
1056      abstract="false" native="false" synchronized="false"
1057      static="false" final="false" visibility="public"
1058      deprecated="not deprecated">
1059      <doc>
1060      <![CDATA[Gets underlying {@code Type} instance.]]>
1061      </doc>
1062    </method>
1063    <method name="hashCode" return="int"
1064      abstract="false" native="false" synchronized="false"
1065      static="false" final="false" visibility="public"
1066      deprecated="not deprecated">
1067    </method>
1068    <method name="equals" return="boolean"
1069      abstract="false" native="false" synchronized="false"
1070      static="false" final="false" visibility="public"
1071      deprecated="not deprecated">
1072      <param name="o" type="java.lang.Object"/>
1073    </method>
1074    <method name="toString" return="java.lang.String"
1075      abstract="false" native="false" synchronized="false"
1076      static="false" final="false" visibility="public"
1077      deprecated="not deprecated">
1078    </method>
1079    <method name="get" return="com.google.inject.TypeLiteral&lt;?&gt;"
1080      abstract="false" native="false" synchronized="false"
1081      static="true" final="false" visibility="public"
1082      deprecated="not deprecated">
1083      <param name="type" type="java.lang.reflect.Type"/>
1084      <doc>
1085      <![CDATA[Gets type literal for the given {@code Type} instance.]]>
1086      </doc>
1087    </method>
1088    <method name="get" return="com.google.inject.TypeLiteral&lt;T&gt;"
1089      abstract="false" native="false" synchronized="false"
1090      static="true" final="false" visibility="public"
1091      deprecated="not deprecated">
1092      <param name="type" type="java.lang.Class&lt;T&gt;"/>
1093      <doc>
1094      <![CDATA[Gets type literal for the given {@code Class} instance.]]>
1095      </doc>
1096    </method>
1097    <doc>
1098    <![CDATA[Represents a generic type {@code T}. Java doesn't yet provide a way to
1099 represent generic types, so this class does. Forces clients to create a
1100 subclass of this class which enables retrieval the type information even at
1101 runtime.
1102
1103 <p>For example, to create a type literal for {@code List<String>}, you can
1104 create an empty anonymous inner class:
1105
1106 <p>
1107 {@code TypeLiteral<List<String>> list = new TypeLiteral<List<String>>() {};}
1108
1109 <p>Assumes that type {@code T} implements {@link Object#equals} and
1110 {@link Object#hashCode()} as value (as opposed to identity) comparison.
1111
1112 @author crazybob@google.com (Bob Lee)]]>
1113    </doc>
1114  </class>
1115  <!-- end class com.google.inject.TypeLiteral -->
1116</package>
1117<package name="com.google.inject.binder">
1118  <!-- start interface com.google.inject.binder.AnnotatedBindingBuilder -->
1119  <interface name="AnnotatedBindingBuilder"    abstract="true"
1120    static="false" final="false" visibility="public"
1121    deprecated="not deprecated">
1122    <implements name="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"/>
1123    <method name="annotatedWith" return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
1124      abstract="false" native="false" synchronized="false"
1125      static="false" final="false" visibility="public"
1126      deprecated="not deprecated">
1127      <param name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
1128      <doc>
1129      <![CDATA[Specifies an annotation type for this binding.]]>
1130      </doc>
1131    </method>
1132    <method name="annotatedWith" return="com.google.inject.binder.LinkedBindingBuilder&lt;T&gt;"
1133      abstract="false" native="false" synchronized="false"
1134      static="false" final="false" visibility="public"
1135      deprecated="not deprecated">
1136      <param name="annotation" type="java.lang.annotation.Annotation"/>
1137      <doc>
1138      <![CDATA[Specifies an annotation value for this binding.]]>
1139      </doc>
1140    </method>
1141    <doc>
1142    <![CDATA[Specifies the annotation for a binding.
1143
1144 @author crazybob@google.com (Bob Lee)]]>
1145    </doc>
1146  </interface>
1147  <!-- end interface com.google.inject.binder.AnnotatedBindingBuilder -->
1148  <!-- start interface com.google.inject.binder.AnnotatedConstantBindingBuilder -->
1149  <interface name="AnnotatedConstantBindingBuilder"    abstract="true"
1150    static="false" final="false" visibility="public"
1151    deprecated="not deprecated">
1152    <method name="annotatedWith" return="com.google.inject.binder.ConstantBindingBuilder"
1153      abstract="false" native="false" synchronized="false"
1154      static="false" final="false" visibility="public"
1155      deprecated="not deprecated">
1156      <param name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
1157      <doc>
1158      <![CDATA[Specifies an annotation type for this binding.]]>
1159      </doc>
1160    </method>
1161    <method name="annotatedWith" return="com.google.inject.binder.ConstantBindingBuilder"
1162      abstract="false" native="false" synchronized="false"
1163      static="false" final="false" visibility="public"
1164      deprecated="not deprecated">
1165      <param name="annotation" type="java.lang.annotation.Annotation"/>
1166      <doc>
1167      <![CDATA[Specifies an annotation value for this binding.]]>
1168      </doc>
1169    </method>
1170    <doc>
1171    <![CDATA[Specifies the annotation for a constant binding.
1172
1173 @author crazybob@google.com (Bob Lee)]]>
1174    </doc>
1175  </interface>
1176  <!-- end interface com.google.inject.binder.AnnotatedConstantBindingBuilder -->
1177  <!-- start interface com.google.inject.binder.ConstantBindingBuilder -->
1178  <interface name="ConstantBindingBuilder"    abstract="true"
1179    static="false" final="false" visibility="public"
1180    deprecated="not deprecated">
1181    <method name="to"
1182      abstract="false" native="false" synchronized="false"
1183      static="false" final="false" visibility="public"
1184      deprecated="not deprecated">
1185      <param name="value" type="java.lang.String"/>
1186      <doc>
1187      <![CDATA[Binds constant to the given value.]]>
1188      </doc>
1189    </method>
1190    <method name="to"
1191      abstract="false" native="false" synchronized="false"
1192      static="false" final="false" visibility="public"
1193      deprecated="not deprecated">
1194      <param name="value" type="int"/>
1195      <doc>
1196      <![CDATA[Binds constant to the given value.]]>
1197      </doc>
1198    </method>
1199    <method name="to"
1200      abstract="false" native="false" synchronized="false"
1201      static="false" final="false" visibility="public"
1202      deprecated="not deprecated">
1203      <param name="value" type="long"/>
1204      <doc>
1205      <![CDATA[Binds constant to the given value.]]>
1206      </doc>
1207    </method>
1208    <method name="to"
1209      abstract="false" native="false" synchronized="false"
1210      static="false" final="false" visibility="public"
1211      deprecated="not deprecated">
1212      <param name="value" type="boolean"/>
1213      <doc>
1214      <![CDATA[Binds constant to the given value.]]>
1215      </doc>
1216    </method>
1217    <method name="to"
1218      abstract="false" native="false" synchronized="false"
1219      static="false" final="false" visibility="public"
1220      deprecated="not deprecated">
1221      <param name="value" type="double"/>
1222      <doc>
1223      <![CDATA[Binds constant to the given value.]]>
1224      </doc>
1225    </method>
1226    <method name="to"
1227      abstract="false" native="false" synchronized="false"
1228      static="false" final="false" visibility="public"
1229      deprecated="not deprecated">
1230      <param name="value" type="float"/>
1231      <doc>
1232      <![CDATA[Binds constant to the given value.]]>
1233      </doc>
1234    </method>
1235    <method name="to"
1236      abstract="false" native="false" synchronized="false"
1237      static="false" final="false" visibility="public"
1238      deprecated="not deprecated">
1239      <param name="value" type="short"/>
1240      <doc>
1241      <![CDATA[Binds constant to the given value.]]>
1242      </doc>
1243    </method>
1244    <method name="to"
1245      abstract="false" native="false" synchronized="false"
1246      static="false" final="false" visibility="public"
1247      deprecated="not deprecated">
1248      <param name="value" type="char"/>
1249      <doc>
1250      <![CDATA[Binds constant to the given value.]]>
1251      </doc>
1252    </method>
1253    <method name="to"
1254      abstract="false" native="false" synchronized="false"
1255      static="false" final="false" visibility="public"
1256      deprecated="not deprecated">
1257      <param name="value" type="java.lang.Class&lt;?&gt;"/>
1258      <doc>
1259      <![CDATA[Binds constant to the given value.]]>
1260      </doc>
1261    </method>
1262    <method name="to"
1263      abstract="false" native="false" synchronized="false"
1264      static="false" final="false" visibility="public"
1265      deprecated="not deprecated">
1266      <param name="value" type="E extends java.lang.Enum&lt;E&gt;"/>
1267      <doc>
1268      <![CDATA[Binds constant to the given value.]]>
1269      </doc>
1270    </method>
1271    <doc>
1272    <![CDATA[Binds to a constant value.]]>
1273    </doc>
1274  </interface>
1275  <!-- end interface com.google.inject.binder.ConstantBindingBuilder -->
1276  <!-- start interface com.google.inject.binder.LinkedBindingBuilder -->
1277  <interface name="LinkedBindingBuilder"    abstract="true"
1278    static="false" final="false" visibility="public"
1279    deprecated="not deprecated">
1280    <implements name="com.google.inject.binder.ScopedBindingBuilder"/>
1281    <method name="to" return="com.google.inject.binder.ScopedBindingBuilder"
1282      abstract="false" native="false" synchronized="false"
1283      static="false" final="false" visibility="public"
1284      deprecated="not deprecated">
1285      <param name="implementation" type="java.lang.Class&lt;? extends T&gt;"/>
1286      <doc>
1287      <![CDATA[Binds to another binding with the specified type.]]>
1288      </doc>
1289    </method>
1290    <method name="to" return="com.google.inject.binder.ScopedBindingBuilder"
1291      abstract="false" native="false" synchronized="false"
1292      static="false" final="false" visibility="public"
1293      deprecated="not deprecated">
1294      <param name="implementation" type="com.google.inject.TypeLiteral&lt;? extends T&gt;"/>
1295      <doc>
1296      <![CDATA[Binds to another binding with the specified type.]]>
1297      </doc>
1298    </method>
1299    <method name="to" return="com.google.inject.binder.ScopedBindingBuilder"
1300      abstract="false" native="false" synchronized="false"
1301      static="false" final="false" visibility="public"
1302      deprecated="not deprecated">
1303      <param name="targetKey" type="com.google.inject.Key&lt;? extends T&gt;"/>
1304      <doc>
1305      <![CDATA[Binds to another binding with the specified key.]]>
1306      </doc>
1307    </method>
1308    <method name="toInstance"
1309      abstract="false" native="false" synchronized="false"
1310      static="false" final="false" visibility="public"
1311      deprecated="not deprecated">
1312      <param name="instance" type="T"/>
1313      <doc>
1314      <![CDATA[Binds to the given instance. The Injector will automatically inject the
1315 members of this instance when it is first created. See {@link
1316 com.google.inject.Injector#injectMembers(Object)}.]]>
1317      </doc>
1318    </method>
1319    <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder"
1320      abstract="false" native="false" synchronized="false"
1321      static="false" final="false" visibility="public"
1322      deprecated="not deprecated">
1323      <param name="provider" type="com.google.inject.Provider&lt;? extends T&gt;"/>
1324      <doc>
1325      <![CDATA[Binds to instances generated by the given Provider. The Injector will
1326 automatically inject the members of this provider instance when it is first
1327 created. See {@link com.google.inject.Injector#injectMembers(Object)}.]]>
1328      </doc>
1329    </method>
1330    <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder"
1331      abstract="false" native="false" synchronized="false"
1332      static="false" final="false" visibility="public"
1333      deprecated="not deprecated">
1334      <param name="providerType" type="java.lang.Class&lt;? extends com.google.inject.Provider&lt;? extends T&gt;&gt;"/>
1335      <doc>
1336      <![CDATA[Binds to instances from the provider bound to the given provider type.]]>
1337      </doc>
1338    </method>
1339    <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder"
1340      abstract="false" native="false" synchronized="false"
1341      static="false" final="false" visibility="public"
1342      deprecated="not deprecated">
1343      <param name="providerKey" type="com.google.inject.Key&lt;? extends com.google.inject.Provider&lt;? extends T&gt;&gt;"/>
1344      <doc>
1345      <![CDATA[Binds to instances from the provider bound to the given key.]]>
1346      </doc>
1347    </method>
1348    <doc>
1349    <![CDATA[Links a binding to another binding or an instance.
1350
1351 @author crazybob@google.com (Bob Lee)]]>
1352    </doc>
1353  </interface>
1354  <!-- end interface com.google.inject.binder.LinkedBindingBuilder -->
1355  <!-- start interface com.google.inject.binder.ScopedBindingBuilder -->
1356  <interface name="ScopedBindingBuilder"    abstract="true"
1357    static="false" final="false" visibility="public"
1358    deprecated="not deprecated">
1359    <method name="in"
1360      abstract="false" native="false" synchronized="false"
1361      static="false" final="false" visibility="public"
1362      deprecated="not deprecated">
1363      <param name="scopeAnnotation" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
1364      <doc>
1365      <![CDATA[Specifies the scope. References the annotation passed to {@link
1366 com.google.inject.Binder#bindScope(Class, com.google.inject.Scope)}.]]>
1367      </doc>
1368    </method>
1369    <method name="in"
1370      abstract="false" native="false" synchronized="false"
1371      static="false" final="false" visibility="public"
1372      deprecated="not deprecated">
1373      <param name="scope" type="com.google.inject.Scope"/>
1374      <doc>
1375      <![CDATA[Specifies the scope.]]>
1376      </doc>
1377    </method>
1378    <method name="asEagerSingleton"
1379      abstract="false" native="false" synchronized="false"
1380      static="false" final="false" visibility="public"
1381      deprecated="not deprecated">
1382      <doc>
1383      <![CDATA[Instructs the {@link com.google.inject.Injector} to eagerly initialize this
1384 singleton-scoped binding upon creation. Useful for application
1385 initialization logic.]]>
1386      </doc>
1387    </method>
1388    <doc>
1389    <![CDATA[Specifies the scope for a binding.
1390
1391 @author crazybob@google.com (Bob Lee)]]>
1392    </doc>
1393  </interface>
1394  <!-- end interface com.google.inject.binder.ScopedBindingBuilder -->
1395</package>
1396<package name="com.google.inject.jndi">
1397  <!-- start class com.google.inject.jndi.JndiIntegration -->
1398  <class name="JndiIntegration" extends="java.lang.Object"
1399    abstract="false"
1400    static="false" final="false" visibility="public"
1401    deprecated="not deprecated">
1402    <method name="fromJndi" return="com.google.inject.Provider&lt;T&gt;"
1403      abstract="false" native="false" synchronized="false"
1404      static="true" final="false" visibility="public"
1405      deprecated="not deprecated">
1406      <param name="type" type="java.lang.Class&lt;T&gt;"/>
1407      <param name="name" type="java.lang.String"/>
1408      <doc>
1409      <![CDATA[Creates a provider which looks up objects in JNDI using the given name.
1410 Example usage:
1411
1412 <pre>
1413 bind(DataSource.class).toProvider(fromJndi(DataSource.class, "java:..."));
1414 </pre>]]>
1415      </doc>
1416    </method>
1417    <doc>
1418    <![CDATA[Integrates Guice with JNDI. Requires a binding to
1419 {@link javax.naming.Context}.
1420
1421 @author crazybob@google.com (Bob Lee)]]>
1422    </doc>
1423  </class>
1424  <!-- end class com.google.inject.jndi.JndiIntegration -->
1425</package>
1426<package name="com.google.inject.matcher">
1427  <!-- start class com.google.inject.matcher.AbstractMatcher -->
1428  <class name="AbstractMatcher" extends="java.lang.Object"
1429    abstract="true"
1430    static="false" final="false" visibility="public"
1431    deprecated="not deprecated">
1432    <implements name="com.google.inject.matcher.Matcher&lt;T&gt;"/>
1433    <constructor name="AbstractMatcher"
1434      static="false" final="false" visibility="public"
1435      deprecated="not deprecated">
1436    </constructor>
1437    <method name="and" return="com.google.inject.matcher.Matcher&lt;T&gt;"
1438      abstract="false" native="false" synchronized="false"
1439      static="false" final="false" visibility="public"
1440      deprecated="not deprecated">
1441      <param name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;"/>
1442    </method>
1443    <method name="or" return="com.google.inject.matcher.Matcher&lt;T&gt;"
1444      abstract="false" native="false" synchronized="false"
1445      static="false" final="false" visibility="public"
1446      deprecated="not deprecated">
1447      <param name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;"/>
1448    </method>
1449    <doc>
1450    <![CDATA[Implements {@code and()} and {@code or()}.
1451
1452 @author crazybob@google.com (Bob Lee)]]>
1453    </doc>
1454  </class>
1455  <!-- end class com.google.inject.matcher.AbstractMatcher -->
1456  <!-- start interface com.google.inject.matcher.Matcher -->
1457  <interface name="Matcher"    abstract="true"
1458    static="false" final="false" visibility="public"
1459    deprecated="not deprecated">
1460    <method name="matches" return="boolean"
1461      abstract="false" native="false" synchronized="false"
1462      static="false" final="false" visibility="public"
1463      deprecated="not deprecated">
1464      <param name="t" type="T"/>
1465      <doc>
1466      <![CDATA[Returns {@code true} if this matches {@code t}, {@code false} otherwise.]]>
1467      </doc>
1468    </method>
1469    <method name="and" return="com.google.inject.matcher.Matcher&lt;T&gt;"
1470      abstract="false" native="false" synchronized="false"
1471      static="false" final="false" visibility="public"
1472      deprecated="not deprecated">
1473      <param name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;"/>
1474      <doc>
1475      <![CDATA[Returns a new matcher which returns {@code true} if both this and the
1476 given matcher return {@code true}.]]>
1477      </doc>
1478    </method>
1479    <method name="or" return="com.google.inject.matcher.Matcher&lt;T&gt;"
1480      abstract="false" native="false" synchronized="false"
1481      static="false" final="false" visibility="public"
1482      deprecated="not deprecated">
1483      <param name="other" type="com.google.inject.matcher.Matcher&lt;? super T&gt;"/>
1484      <doc>
1485      <![CDATA[Returns a new matcher which returns {@code true} if either this or the
1486 given matcher return {@code true}.]]>
1487      </doc>
1488    </method>
1489    <doc>
1490    <![CDATA[Returns {@code true} or {@code false} for a given input.
1491
1492 @author crazybob@google.com (Bob Lee)]]>
1493    </doc>
1494  </interface>
1495  <!-- end interface com.google.inject.matcher.Matcher -->
1496  <!-- start class com.google.inject.matcher.Matchers -->
1497  <class name="Matchers" extends="java.lang.Object"
1498    abstract="false"
1499    static="false" final="false" visibility="public"
1500    deprecated="not deprecated">
1501    <method name="any" return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
1502      abstract="false" native="false" synchronized="false"
1503      static="true" final="false" visibility="public"
1504      deprecated="not deprecated">
1505      <doc>
1506      <![CDATA[Returns a matcher which matches any input.]]>
1507      </doc>
1508    </method>
1509    <method name="not" return="com.google.inject.matcher.Matcher&lt;T&gt;"
1510      abstract="false" native="false" synchronized="false"
1511      static="true" final="false" visibility="public"
1512      deprecated="not deprecated">
1513      <param name="p" type="com.google.inject.matcher.Matcher&lt;? super T&gt;"/>
1514      <doc>
1515      <![CDATA[Inverts the given matcher.]]>
1516      </doc>
1517    </method>
1518    <method name="annotatedWith" return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.AnnotatedElement&gt;"
1519      abstract="false" native="false" synchronized="false"
1520      static="true" final="false" visibility="public"
1521      deprecated="not deprecated">
1522      <param name="annotationType" type="java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;"/>
1523      <doc>
1524      <![CDATA[Returns a matcher which matches elements (methods, classes, etc.)
1525 with a given annotation.]]>
1526      </doc>
1527    </method>
1528    <method name="annotatedWith" return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.AnnotatedElement&gt;"
1529      abstract="false" native="false" synchronized="false"
1530      static="true" final="false" visibility="public"
1531      deprecated="not deprecated">
1532      <param name="annotation" type="java.lang.annotation.Annotation"/>
1533      <doc>
1534      <![CDATA[Returns a matcher which matches elements (methods, classes, etc.)
1535 with a given annotation.]]>
1536      </doc>
1537    </method>
1538    <method name="subclassesOf" return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
1539      abstract="false" native="false" synchronized="false"
1540      static="true" final="false" visibility="public"
1541      deprecated="not deprecated">
1542      <param name="superclass" type="java.lang.Class&lt;?&gt;"/>
1543      <doc>
1544      <![CDATA[Returns a matcher which matches subclasses of the given type (as well as
1545 the given type).]]>
1546      </doc>
1547    </method>
1548    <method name="only" return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
1549      abstract="false" native="false" synchronized="false"
1550      static="true" final="false" visibility="public"
1551      deprecated="not deprecated">
1552      <param name="o" type="java.lang.Object"/>
1553      <doc>
1554      <![CDATA[Returns a matcher which matches objects equal to the given object.]]>
1555      </doc>
1556    </method>
1557    <method name="identicalTo" return="com.google.inject.matcher.Matcher&lt;java.lang.Object&gt;"
1558      abstract="false" native="false" synchronized="false"
1559      static="true" final="false" visibility="public"
1560      deprecated="not deprecated">
1561      <param name="o" type="java.lang.Object"/>
1562      <doc>
1563      <![CDATA[Returns a matcher which matches only the given object.]]>
1564      </doc>
1565    </method>
1566    <method name="inPackage" return="com.google.inject.matcher.Matcher&lt;java.lang.Class&gt;"
1567      abstract="false" native="false" synchronized="false"
1568      static="true" final="false" visibility="public"
1569      deprecated="not deprecated">
1570      <param name="p" type="java.lang.Package"/>
1571      <doc>
1572      <![CDATA[Returns a matcher which matches classes in the given package.]]>
1573      </doc>
1574    </method>
1575    <method name="returns" return="com.google.inject.matcher.Matcher&lt;java.lang.reflect.Method&gt;"
1576      abstract="false" native="false" synchronized="false"
1577      static="true" final="false" visibility="public"
1578      deprecated="not deprecated">
1579      <param name="returnType" type="com.google.inject.matcher.Matcher&lt;? super java.lang.Class&lt;?&gt;&gt;"/>
1580      <doc>
1581      <![CDATA[Returns a matcher which matches methods with matching return types.]]>
1582      </doc>
1583    </method>
1584    <doc>
1585    <![CDATA[Matcher implementations. Supports matching classes and methods.
1586
1587 @author crazybob@google.com (Bob Lee)]]>
1588    </doc>
1589  </class>
1590  <!-- end class com.google.inject.matcher.Matchers -->
1591</package>
1592<package name="com.google.inject.name">
1593  <!-- start class com.google.inject.name.Named -->
1594  <class name="Named"    abstract="true"
1595    static="false" final="false" visibility="public"
1596    deprecated="not deprecated">
1597    <implements name="java.lang.annotation.Annotation"/>
1598    <doc>
1599    <![CDATA[Annotates named things.
1600
1601 @author crazybob@google.com (Bob Lee)]]>
1602    </doc>
1603  </class>
1604  <!-- end class com.google.inject.name.Named -->
1605  <!-- start class com.google.inject.name.Names -->
1606  <class name="Names" extends="java.lang.Object"
1607    abstract="false"
1608    static="false" final="false" visibility="public"
1609    deprecated="not deprecated">
1610    <method name="named" return="com.google.inject.name.Named"
1611      abstract="false" native="false" synchronized="false"
1612      static="true" final="false" visibility="public"
1613      deprecated="not deprecated">
1614      <param name="name" type="java.lang.String"/>
1615      <doc>
1616      <![CDATA[Creates a {@link Named} annotation with {@code name} as the value.]]>
1617      </doc>
1618    </method>
1619    <method name="bindProperties"
1620      abstract="false" native="false" synchronized="false"
1621      static="true" final="false" visibility="public"
1622      deprecated="not deprecated">
1623      <param name="binder" type="com.google.inject.Binder"/>
1624      <param name="properties" type="java.util.Map&lt;java.lang.String, java.lang.String&gt;"/>
1625      <doc>
1626      <![CDATA[Creates a constant binding to {@code @Named(key)} for each property.]]>
1627      </doc>
1628    </method>
1629    <method name="bindProperties"
1630      abstract="false" native="false" synchronized="false"
1631      static="true" final="false" visibility="public"
1632      deprecated="not deprecated">
1633      <param name="binder" type="com.google.inject.Binder"/>
1634      <param name="properties" type="java.util.Properties"/>
1635      <doc>
1636      <![CDATA[Creates a constant binding to {@code @Named(key)} for each property.]]>
1637      </doc>
1638    </method>
1639    <doc>
1640    <![CDATA[Utility methods for use with {@code @}{@link Named}.
1641
1642 @author crazybob@google.com (Bob Lee)]]>
1643    </doc>
1644  </class>
1645  <!-- end class com.google.inject.name.Names -->
1646</package>
1647<package name="com.google.inject.servlet">
1648  <!-- start class com.google.inject.servlet.GuiceFilter -->
1649  <class name="GuiceFilter" extends="java.lang.Object"
1650    abstract="false"
1651    static="false" final="false" visibility="public"
1652    deprecated="not deprecated">
1653    <constructor name="GuiceFilter"
1654      static="false" final="false" visibility="public"
1655      deprecated="not deprecated">
1656    </constructor>
1657    <method name="doFilter"
1658      abstract="false" native="false" synchronized="false"
1659      static="false" final="false" visibility="public"
1660      deprecated="not deprecated">
1661      <param name="servletRequest" type="ServletRequest"/>
1662      <param name="servletResponse" type="ServletResponse"/>
1663      <param name="filterChain" type="FilterChain"/>
1664      <exception name="IOException" type="java.io.IOException"/>
1665      <exception name="ServletException" type="ServletException"/>
1666    </method>
1667    <method name="init"
1668      abstract="false" native="false" synchronized="false"
1669      static="false" final="false" visibility="public"
1670      deprecated="not deprecated">
1671      <param name="filterConfig" type="FilterConfig"/>
1672      <exception name="ServletException" type="ServletException"/>
1673    </method>
1674    <method name="destroy"
1675      abstract="false" native="false" synchronized="false"
1676      static="false" final="false" visibility="public"
1677      deprecated="not deprecated">
1678    </method>
1679    <doc>
1680    <![CDATA[Apply this filter to all requests where you plan to use servlet scopes.
1681
1682 @author crazybob@google.com (Bob Lee)]]>
1683    </doc>
1684  </class>
1685  <!-- end class com.google.inject.servlet.GuiceFilter -->
1686  <!-- start class com.google.inject.servlet.RequestParameters -->
1687  <class name="RequestParameters"    abstract="true"
1688    static="false" final="false" visibility="public"
1689    deprecated="not deprecated">
1690    <implements name="java.lang.annotation.Annotation"/>
1691    <doc>
1692    <![CDATA[Apply this to field or parameters of type {@code Map<String, String[]>}
1693 when you want the HTTP request parameter map to be injected.
1694
1695 @author crazybob@google.com (Bob Lee)]]>
1696    </doc>
1697  </class>
1698  <!-- end class com.google.inject.servlet.RequestParameters -->
1699  <!-- start class com.google.inject.servlet.RequestScoped -->
1700  <class name="RequestScoped"    abstract="true"
1701    static="false" final="false" visibility="public"
1702    deprecated="not deprecated">
1703    <implements name="java.lang.annotation.Annotation"/>
1704    <doc>
1705    <![CDATA[Apply this to implementation classes when you want one instance per request.
1706
1707 @author crazybob@google.com (Bob Lee)]]>
1708    </doc>
1709  </class>
1710  <!-- end class com.google.inject.servlet.RequestScoped -->
1711  <!-- start class com.google.inject.servlet.ServletModule -->
1712  <class name="ServletModule" extends="com.google.inject.AbstractModule"
1713    abstract="false"
1714    static="false" final="false" visibility="public"
1715    deprecated="not deprecated">
1716    <constructor name="ServletModule"
1717      static="false" final="false" visibility="public"
1718      deprecated="not deprecated">
1719    </constructor>
1720    <method name="configure"
1721      abstract="false" native="false" synchronized="false"
1722      static="false" final="false" visibility="protected"
1723      deprecated="not deprecated">
1724    </method>
1725    <doc>
1726    <![CDATA[Configures the servlet scopes and creates bindings for the servlet API
1727 objects so you can inject the request, response, session, etc.
1728
1729 @author crazybob@google.com (Bob Lee)]]>
1730    </doc>
1731  </class>
1732  <!-- end class com.google.inject.servlet.ServletModule -->
1733  <!-- start class com.google.inject.servlet.ServletScopes -->
1734  <class name="ServletScopes" extends="java.lang.Object"
1735    abstract="false"
1736    static="false" final="false" visibility="public"
1737    deprecated="not deprecated">
1738    <field name="REQUEST" type="com.google.inject.Scope"
1739      transient="false" volatile="false"
1740      static="true" final="true" visibility="public"
1741      deprecated="not deprecated">
1742      <doc>
1743      <![CDATA[HTTP servlet request scope.]]>
1744      </doc>
1745    </field>
1746    <field name="SESSION" type="com.google.inject.Scope"
1747      transient="false" volatile="false"
1748      static="true" final="true" visibility="public"
1749      deprecated="not deprecated">
1750      <doc>
1751      <![CDATA[HTTP session scope.]]>
1752      </doc>
1753    </field>
1754    <doc>
1755    <![CDATA[Servlet scopes.
1756
1757 @author crazybob@google.com (Bob Lee)]]>
1758    </doc>
1759  </class>
1760  <!-- end class com.google.inject.servlet.ServletScopes -->
1761  <!-- start class com.google.inject.servlet.SessionScoped -->
1762  <class name="SessionScoped"    abstract="true"
1763    static="false" final="false" visibility="public"
1764    deprecated="not deprecated">
1765    <implements name="java.lang.annotation.Annotation"/>
1766    <doc>
1767    <![CDATA[Apply this to implementation classes when you want one instance per session.
1768
1769 @see com.google.inject.Scopes#SINGLETON
1770 @author crazybob@google.com (Bob Lee)]]>
1771    </doc>
1772  </class>
1773  <!-- end class com.google.inject.servlet.SessionScoped -->
1774</package>
1775<package name="com.google.inject.spi">
1776  <!-- start class com.google.inject.spi.Message -->
1777  <class name="Message" extends="java.lang.Object"
1778    abstract="false"
1779    static="false" final="false" visibility="public"
1780    deprecated="not deprecated">
1781    <constructor name="Message" type="java.lang.Object, java.lang.String"
1782      static="false" final="false" visibility="public"
1783      deprecated="not deprecated">
1784    </constructor>
1785    <constructor name="Message" type="java.lang.String"
1786      static="false" final="false" visibility="public"
1787      deprecated="not deprecated">
1788    </constructor>
1789    <method name="getSource" return="java.lang.Object"
1790      abstract="false" native="false" synchronized="false"
1791      static="false" final="false" visibility="public"
1792      deprecated="not deprecated">
1793      <doc>
1794      <![CDATA[Gets the source of the configuration which resulted in this error message.]]>
1795      </doc>
1796    </method>
1797    <method name="getSourceString" return="java.lang.String"
1798      abstract="false" native="false" synchronized="false"
1799      static="false" final="false" visibility="public"
1800      deprecated="not deprecated">
1801      <doc>
1802      <![CDATA[Returns a string representation of the source object.]]>
1803      </doc>
1804    </method>
1805    <method name="getMessage" return="java.lang.String"
1806      abstract="false" native="false" synchronized="false"
1807      static="false" final="false" visibility="public"
1808      deprecated="not deprecated">
1809      <doc>
1810      <![CDATA[Gets the error message text.]]>
1811      </doc>
1812    </method>
1813    <method name="toString" return="java.lang.String"
1814      abstract="false" native="false" synchronized="false"
1815      static="false" final="false" visibility="public"
1816      deprecated="not deprecated">
1817    </method>
1818    <method name="hashCode" return="int"
1819      abstract="false" native="false" synchronized="false"
1820      static="false" final="false" visibility="public"
1821      deprecated="not deprecated">
1822    </method>
1823    <method name="equals" return="boolean"
1824      abstract="false" native="false" synchronized="false"
1825      static="false" final="false" visibility="public"
1826      deprecated="not deprecated">
1827      <param name="o" type="java.lang.Object"/>
1828    </method>
1829    <doc>
1830    <![CDATA[A message. Contains a source pointing to the code which resulted
1831 in this message and a text message.
1832
1833 @author crazybob@google.com (Bob Lee)]]>
1834    </doc>
1835  </class>
1836  <!-- end class com.google.inject.spi.Message -->
1837  <!-- start interface com.google.inject.spi.SourceProvider -->
1838  <interface name="SourceProvider"    abstract="true"
1839    static="false" final="false" visibility="public"
1840    deprecated="not deprecated">
1841    <method name="source" return="java.lang.Object"
1842      abstract="false" native="false" synchronized="false"
1843      static="false" final="false" visibility="public"
1844      deprecated="not deprecated">
1845      <doc>
1846      <![CDATA[Creates an object pointing to the current location within the
1847 configuration. If we run into a problem later, we'll be able to trace it
1848 back to the original source. Useful for debugging.]]>
1849      </doc>
1850    </method>
1851    <doc>
1852    <![CDATA[Provides source objects to the {@link com.google.inject.Binder}.
1853 A source object is any object which points back to the current location
1854 within the configuration. Guice uses source objects in error messages
1855 and associates them with bindings.
1856
1857 @author crazybob@google.com (Bob Lee)]]>
1858    </doc>
1859  </interface>
1860  <!-- end interface com.google.inject.spi.SourceProvider -->
1861  <!-- start class com.google.inject.spi.SourceProviders -->
1862  <class name="SourceProviders" extends="java.lang.Object"
1863    abstract="false"
1864    static="false" final="false" visibility="public"
1865    deprecated="not deprecated">
1866    <method name="skip"
1867      abstract="false" native="false" synchronized="true"
1868      static="true" final="false" visibility="public"
1869      deprecated="not deprecated">
1870      <param name="clazz" type="java.lang.Class&lt;?&gt;"/>
1871      <doc>
1872      <![CDATA[Instructs stacktrace-based providers to skip the given class in the stack
1873 trace when determining the source. Use this to keep the binder from
1874 logging utility methods as the sources of bindings (i.e. it will skip to
1875 the utility methods' callers instead).
1876
1877 <p>Skipping only takes place after this method is called.]]>
1878      </doc>
1879    </method>
1880    <method name="getSkippedClassNames" return="java.util.Set&lt;java.lang.String&gt;"
1881      abstract="false" native="false" synchronized="true"
1882      static="true" final="false" visibility="public"
1883      deprecated="not deprecated">
1884      <doc>
1885      <![CDATA[Gets the set of class names which should be skipped by stacktrace-based
1886 providers.]]>
1887      </doc>
1888    </method>
1889    <method name="defaultSource" return="java.lang.Object"
1890      abstract="false" native="false" synchronized="false"
1891      static="true" final="false" visibility="public"
1892      deprecated="not deprecated">
1893      <doc>
1894      <![CDATA[Returns the current source obtained from the default provider.]]>
1895      </doc>
1896    </method>
1897    <method name="withDefault"
1898      abstract="false" native="false" synchronized="false"
1899      static="true" final="false" visibility="public"
1900      deprecated="not deprecated">
1901      <param name="sourceProvider" type="com.google.inject.spi.SourceProvider"/>
1902      <param name="r" type="java.lang.Runnable"/>
1903      <doc>
1904      <![CDATA[Sets the default source provider, runs the given command, and then
1905 restores the previous default source provider.]]>
1906      </doc>
1907    </method>
1908    <field name="UNKNOWN_SOURCE" type="java.lang.Object"
1909      transient="false" volatile="false"
1910      static="true" final="true" visibility="public"
1911      deprecated="not deprecated">
1912    </field>
1913    <doc>
1914    <![CDATA[Provides access to the default {@link SourceProvider} implementation and
1915 common controls for certain implementations.
1916
1917 @author crazybob@google.com (Bob Lee)]]>
1918    </doc>
1919  </class>
1920  <!-- end class com.google.inject.spi.SourceProviders -->
1921</package>
1922<package name="com.google.inject.spring">
1923  <!-- start class com.google.inject.spring.SpringIntegration -->
1924  <class name="SpringIntegration" extends="java.lang.Object"
1925    abstract="false"
1926    static="false" final="false" visibility="public"
1927    deprecated="not deprecated">
1928    <method name="fromSpring" return="com.google.inject.Provider&lt;T&gt;"
1929      abstract="false" native="false" synchronized="false"
1930      static="true" final="false" visibility="public"
1931      deprecated="not deprecated">
1932      <param name="type" type="java.lang.Class&lt;T&gt;"/>
1933      <param name="name" type="java.lang.String"/>
1934      <doc>
1935      <![CDATA[Creates a provider which looks up objects from Spring using the given name.
1936 Expects a binding to {@link
1937 org.springframework.beans.factory.BeanFactory}. Example usage:
1938
1939 <pre>
1940 bind(DataSource.class)
1941   .toProvider(fromSpring(DataSource.class, "dataSource"));
1942 </pre>]]>
1943      </doc>
1944    </method>
1945    <method name="bindAll"
1946      abstract="false" native="false" synchronized="false"
1947      static="true" final="false" visibility="public"
1948      deprecated="not deprecated">
1949      <param name="binder" type="com.google.inject.Binder"/>
1950      <param name="beanFactory" type="ListableBeanFactory"/>
1951      <doc>
1952      <![CDATA[Binds all Spring beans from the given factory by name. For a Spring bean
1953 named "foo", this method creates a binding to the bean's type and
1954 {@code @Named("foo")}.
1955
1956 @see com.google.inject.name.Named
1957 @see com.google.inject.name.Names#named(String)]]>
1958      </doc>
1959    </method>
1960    <doc>
1961    <![CDATA[Integrates Guice with Spring.
1962
1963 @author crazybob@google.com (Bob Lee)]]>
1964    </doc>
1965  </class>
1966  <!-- end class com.google.inject.spring.SpringIntegration -->
1967</package>
1968<package name="com.google.inject.struts2">
1969  <!-- start class com.google.inject.struts2.GuiceObjectFactory -->
1970  <class name="GuiceObjectFactory" extends="ObjectFactory"
1971    abstract="false"
1972    static="false" final="false" visibility="public"
1973    deprecated="not deprecated">
1974    <constructor name="GuiceObjectFactory"
1975      static="false" final="false" visibility="public"
1976      deprecated="not deprecated">
1977    </constructor>
1978    <method name="isNoArgConstructorRequired" return="boolean"
1979      abstract="false" native="false" synchronized="false"
1980      static="false" final="false" visibility="public"
1981      deprecated="not deprecated">
1982    </method>
1983    <method name="getClassInstance" return="java.lang.Class"
1984      abstract="false" native="false" synchronized="false"
1985      static="false" final="false" visibility="public"
1986      deprecated="not deprecated">
1987      <param name="name" type="java.lang.String"/>
1988      <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/>
1989    </method>
1990    <method name="buildBean" return="java.lang.Object"
1991      abstract="false" native="false" synchronized="false"
1992      static="false" final="false" visibility="public"
1993      deprecated="not deprecated">
1994      <param name="clazz" type="java.lang.Class"/>
1995      <param name="extraContext" type="java.util.Map"/>
1996    </method>
1997    <method name="buildInterceptor" return="Interceptor"
1998      abstract="false" native="false" synchronized="false"
1999      static="false" final="false" visibility="public"
2000      deprecated="not deprecated">
2001      <param name="interceptorConfig" type="InterceptorConfig"/>
2002      <param name="interceptorRefParams" type="java.util.Map"/>
2003      <exception name="ConfigurationException" type="ConfigurationException"/>
2004    </method>
2005  </class>
2006  <!-- end class com.google.inject.struts2.GuiceObjectFactory -->
2007</package>
2008<package name="com.google.inject.tools.jmx">
2009  <!-- start interface com.google.inject.tools.jmx.ManagedBindingMBean -->
2010  <interface name="ManagedBindingMBean"    abstract="true"
2011    static="false" final="false" visibility="public"
2012    deprecated="not deprecated">
2013    <method name="getSource" return="java.lang.String"
2014      abstract="false" native="false" synchronized="false"
2015      static="false" final="false" visibility="public"
2016      deprecated="not deprecated">
2017      <doc>
2018      <![CDATA[Gets the source of this binding.]]>
2019      </doc>
2020    </method>
2021    <method name="getProvider" return="java.lang.String"
2022      abstract="false" native="false" synchronized="false"
2023      static="false" final="false" visibility="public"
2024      deprecated="not deprecated">
2025      <doc>
2026      <![CDATA[Gets the provider to which this binding is bound.]]>
2027      </doc>
2028    </method>
2029    <method name="getKey" return="java.lang.String"
2030      abstract="false" native="false" synchronized="false"
2031      static="false" final="false" visibility="public"
2032      deprecated="not deprecated">
2033      <doc>
2034      <![CDATA[Gets the binding key.]]>
2035      </doc>
2036    </method>
2037    <doc>
2038    <![CDATA[JMX interface to bindings.
2039
2040 @author crazybob@google.com (Bob Lee)]]>
2041    </doc>
2042  </interface>
2043  <!-- end interface com.google.inject.tools.jmx.ManagedBindingMBean -->
2044  <!-- start class com.google.inject.tools.jmx.Manager -->
2045  <class name="Manager" extends="java.lang.Object"
2046    abstract="false"
2047    static="false" final="false" visibility="public"
2048    deprecated="not deprecated">
2049    <constructor name="Manager"
2050      static="false" final="false" visibility="public"
2051      deprecated="not deprecated">
2052    </constructor>
2053    <method name="manage"
2054      abstract="false" native="false" synchronized="false"
2055      static="true" final="false" visibility="public"
2056      deprecated="not deprecated">
2057      <param name="domain" type="java.lang.String"/>
2058      <param name="injector" type="com.google.inject.Injector"/>
2059      <doc>
2060      <![CDATA[Registers all the bindings of an Injector with the platform MBean server.
2061 Consider using the name of your root {@link Module} class as the domain.]]>
2062      </doc>
2063    </method>
2064    <method name="manage"
2065      abstract="false" native="false" synchronized="false"
2066      static="true" final="false" visibility="public"
2067      deprecated="not deprecated">
2068      <param name="server" type="javax.management.MBeanServer"/>
2069      <param name="domain" type="java.lang.String"/>
2070      <param name="injector" type="com.google.inject.Injector"/>
2071      <doc>
2072      <![CDATA[Registers all the bindings of an Injector with the given MBean server.
2073 Consider using the name of your root {@link Module} class as the domain.]]>
2074      </doc>
2075    </method>
2076    <method name="main"
2077      abstract="false" native="false" synchronized="false"
2078      static="true" final="false" visibility="public"
2079      deprecated="not deprecated">
2080      <param name="args" type="java.lang.String[]"/>
2081      <exception name="Exception" type="java.lang.Exception"/>
2082      <doc>
2083      <![CDATA[Run with no arguments for usage instructions.]]>
2084      </doc>
2085    </method>
2086    <doc>
2087    <![CDATA[Provides a JMX interface to Guice.
2088
2089 @author crazybob@google.com (Bob Lee)]]>
2090    </doc>
2091  </class>
2092  <!-- end class com.google.inject.tools.jmx.Manager -->
2093</package>
2094
2095</api>
2096