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