Home | History | Annotate | Download | only in latest-api-diffs
      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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] 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 (a] google.com (Bob Lee)]]>
   2090     </doc>
   2091   </class>
   2092   <!-- end class com.google.inject.tools.jmx.Manager -->
   2093 </package>
   2094 
   2095 </api>
   2096