1 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> 2 <!-- Generated by the JDiff Javadoc doclet --> 3 <!-- (http://www.jdiff.org) --> 4 <!-- on Thu Mar 20 20:36:47 PDT 2014 --> 5 6 <api 7 xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 8 xsi:noNamespaceSchemaLocation='api.xsd' 9 name="4.0" 10 jdversion="1.1.1"> 11 12 <!-- Command line arguments = -doclet jdiff.JDiff -docletpath /Users/cgruber/OpenSource/guice/googlecode-master/lib/build/jdiff/jdiff.jar:/Users/cgruber/OpenSource/guice/googlecode-master/lib/build/jdiff/xerces.jar -classpath /Users/cgruber/OpenSource/guice/googlecode-master/lib/javax.inject.jar:/Users/cgruber/OpenSource/guice/googlecode-master/lib/aopalliance.jar:/Users/cgruber/OpenSource/guice/googlecode-master/lib/guava-16.0.1.jar -doclet jdiff.JDiff -docletpath /Users/cgruber/OpenSource/guice/googlecode-master/lib/build/jdiff/jdiff.jar:/Users/cgruber/OpenSource/guice/googlecode-master/lib/build/jdiff/xerces.jar -apidir build/docs/latest-api-diffs -apiname 4.0 --> 13 <package name="com.google.inject"> 14 <!-- start class com.google.inject.AbstractModule --> 15 <class name="AbstractModule" extends="java.lang.Object" 16 abstract="true" 17 static="false" final="false" visibility="public" 18 deprecated="not deprecated"> 19 <implements name="com.google.inject.Module"/> 20 <constructor name="AbstractModule" 21 static="false" final="false" visibility="public" 22 deprecated="not deprecated"> 23 </constructor> 24 <method name="configure" 25 abstract="false" native="false" synchronized="true" 26 static="false" final="true" visibility="public" 27 deprecated="not deprecated"> 28 <param name="builder" type="com.google.inject.Binder"/> 29 </method> 30 <method name="configure" 31 abstract="true" native="false" synchronized="false" 32 static="false" final="false" visibility="protected" 33 deprecated="not deprecated"> 34 <doc> 35 <![CDATA[Configures a {@link Binder} via the exposed methods.]]> 36 </doc> 37 </method> 38 <method name="binder" return="com.google.inject.Binder" 39 abstract="false" native="false" synchronized="false" 40 static="false" final="false" visibility="protected" 41 deprecated="not deprecated"> 42 <doc> 43 <![CDATA[Gets direct access to the underlying {@code Binder}.]]> 44 </doc> 45 </method> 46 <method name="bindScope" 47 abstract="false" native="false" synchronized="false" 48 static="false" final="false" visibility="protected" 49 deprecated="not deprecated"> 50 <param name="scopeAnnotation" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 51 <param name="scope" type="com.google.inject.Scope"/> 52 <doc> 53 <![CDATA[@see Binder#bindScope(Class, Scope)]]> 54 </doc> 55 </method> 56 <method name="bind" return="com.google.inject.binder.LinkedBindingBuilder<T>" 57 abstract="false" native="false" synchronized="false" 58 static="false" final="false" visibility="protected" 59 deprecated="not deprecated"> 60 <param name="key" type="com.google.inject.Key<T>"/> 61 <doc> 62 <![CDATA[@see Binder#bind(Key)]]> 63 </doc> 64 </method> 65 <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder<T>" 66 abstract="false" native="false" synchronized="false" 67 static="false" final="false" visibility="protected" 68 deprecated="not deprecated"> 69 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 70 <doc> 71 <![CDATA[@see Binder#bind(TypeLiteral)]]> 72 </doc> 73 </method> 74 <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder<T>" 75 abstract="false" native="false" synchronized="false" 76 static="false" final="false" visibility="protected" 77 deprecated="not deprecated"> 78 <param name="clazz" type="java.lang.Class<T>"/> 79 <doc> 80 <![CDATA[@see Binder#bind(Class)]]> 81 </doc> 82 </method> 83 <method name="bindConstant" return="com.google.inject.binder.AnnotatedConstantBindingBuilder" 84 abstract="false" native="false" synchronized="false" 85 static="false" final="false" visibility="protected" 86 deprecated="not deprecated"> 87 <doc> 88 <![CDATA[@see Binder#bindConstant()]]> 89 </doc> 90 </method> 91 <method name="install" 92 abstract="false" native="false" synchronized="false" 93 static="false" final="false" visibility="protected" 94 deprecated="not deprecated"> 95 <param name="module" type="com.google.inject.Module"/> 96 <doc> 97 <![CDATA[@see Binder#install(Module)]]> 98 </doc> 99 </method> 100 <method name="addError" 101 abstract="false" native="false" synchronized="false" 102 static="false" final="false" visibility="protected" 103 deprecated="not deprecated"> 104 <param name="message" type="java.lang.String"/> 105 <param name="arguments" type="java.lang.Object[]"/> 106 <doc> 107 <![CDATA[@see Binder#addError(String, Object[])]]> 108 </doc> 109 </method> 110 <method name="addError" 111 abstract="false" native="false" synchronized="false" 112 static="false" final="false" visibility="protected" 113 deprecated="not deprecated"> 114 <param name="t" type="java.lang.Throwable"/> 115 <doc> 116 <![CDATA[@see Binder#addError(Throwable)]]> 117 </doc> 118 </method> 119 <method name="addError" 120 abstract="false" native="false" synchronized="false" 121 static="false" final="false" visibility="protected" 122 deprecated="not deprecated"> 123 <param name="message" type="com.google.inject.spi.Message"/> 124 <doc> 125 <![CDATA[@see Binder#addError(Message) 126 @since 2.0]]> 127 </doc> 128 </method> 129 <method name="requestInjection" 130 abstract="false" native="false" synchronized="false" 131 static="false" final="false" visibility="protected" 132 deprecated="not deprecated"> 133 <param name="instance" type="java.lang.Object"/> 134 <doc> 135 <![CDATA[@see Binder#requestInjection(Object) 136 @since 2.0]]> 137 </doc> 138 </method> 139 <method name="requestStaticInjection" 140 abstract="false" native="false" synchronized="false" 141 static="false" final="false" visibility="protected" 142 deprecated="not deprecated"> 143 <param name="types" type="java.lang.Class[]"/> 144 <doc> 145 <![CDATA[@see Binder#requestStaticInjection(Class[])]]> 146 </doc> 147 </method> 148 <method name="bindInterceptor" 149 abstract="false" native="false" synchronized="false" 150 static="false" final="false" visibility="protected" 151 deprecated="not deprecated"> 152 <param name="classMatcher" type="com.google.inject.matcher.Matcher<? super java.lang.Class<?>>"/> 153 <param name="methodMatcher" type="com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>"/> 154 <param name="interceptors" type="org.aopalliance.intercept.MethodInterceptor[]"/> 155 <doc> 156 <![CDATA[@see Binder#bindInterceptor(com.google.inject.matcher.Matcher, 157 com.google.inject.matcher.Matcher, 158 org.aopalliance.intercept.MethodInterceptor[])]]> 159 </doc> 160 </method> 161 <method name="requireBinding" 162 abstract="false" native="false" synchronized="false" 163 static="false" final="false" visibility="protected" 164 deprecated="not deprecated"> 165 <param name="key" type="com.google.inject.Key<?>"/> 166 <doc> 167 <![CDATA[Adds a dependency from this module to {@code key}. When the injector is 168 created, Guice will report an error if {@code key} cannot be injected. 169 Note that this requirement may be satisfied by implicit binding, such as 170 a public no-arguments constructor. 171 172 @since 2.0]]> 173 </doc> 174 </method> 175 <method name="requireBinding" 176 abstract="false" native="false" synchronized="false" 177 static="false" final="false" visibility="protected" 178 deprecated="not deprecated"> 179 <param name="type" type="java.lang.Class<?>"/> 180 <doc> 181 <![CDATA[Adds a dependency from this module to {@code type}. When the injector is 182 created, Guice will report an error if {@code type} cannot be injected. 183 Note that this requirement may be satisfied by implicit binding, such as 184 a public no-arguments constructor. 185 186 @since 2.0]]> 187 </doc> 188 </method> 189 <method name="getProvider" return="com.google.inject.Provider<T>" 190 abstract="false" native="false" synchronized="false" 191 static="false" final="false" visibility="protected" 192 deprecated="not deprecated"> 193 <param name="key" type="com.google.inject.Key<T>"/> 194 <doc> 195 <![CDATA[@see Binder#getProvider(Key) 196 @since 2.0]]> 197 </doc> 198 </method> 199 <method name="getProvider" return="com.google.inject.Provider<T>" 200 abstract="false" native="false" synchronized="false" 201 static="false" final="false" visibility="protected" 202 deprecated="not deprecated"> 203 <param name="type" type="java.lang.Class<T>"/> 204 <doc> 205 <![CDATA[@see Binder#getProvider(Class) 206 @since 2.0]]> 207 </doc> 208 </method> 209 <method name="convertToTypes" 210 abstract="false" native="false" synchronized="false" 211 static="false" final="false" visibility="protected" 212 deprecated="not deprecated"> 213 <param name="typeMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>"/> 214 <param name="converter" type="com.google.inject.spi.TypeConverter"/> 215 <doc> 216 <![CDATA[@see Binder#convertToTypes 217 @since 2.0]]> 218 </doc> 219 </method> 220 <method name="currentStage" return="com.google.inject.Stage" 221 abstract="false" native="false" synchronized="false" 222 static="false" final="false" visibility="protected" 223 deprecated="not deprecated"> 224 <doc> 225 <![CDATA[@see Binder#currentStage() 226 @since 2.0]]> 227 </doc> 228 </method> 229 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 230 abstract="false" native="false" synchronized="false" 231 static="false" final="false" visibility="protected" 232 deprecated="not deprecated"> 233 <param name="type" type="java.lang.Class<T>"/> 234 <doc> 235 <![CDATA[@see Binder#getMembersInjector(Class) 236 @since 2.0]]> 237 </doc> 238 </method> 239 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 240 abstract="false" native="false" synchronized="false" 241 static="false" final="false" visibility="protected" 242 deprecated="not deprecated"> 243 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 244 <doc> 245 <![CDATA[@see Binder#getMembersInjector(TypeLiteral) 246 @since 2.0]]> 247 </doc> 248 </method> 249 <method name="bindListener" 250 abstract="false" native="false" synchronized="false" 251 static="false" final="false" visibility="protected" 252 deprecated="not deprecated"> 253 <param name="typeMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>"/> 254 <param name="listener" type="com.google.inject.spi.TypeListener"/> 255 <doc> 256 <![CDATA[@see Binder#bindListener(com.google.inject.matcher.Matcher, 257 com.google.inject.spi.TypeListener) 258 @since 2.0]]> 259 </doc> 260 </method> 261 <method name="bindListener" 262 abstract="false" native="false" synchronized="false" 263 static="false" final="false" visibility="protected" 264 deprecated="not deprecated"> 265 <param name="bindingMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.Binding<?>>"/> 266 <param name="listener" type="com.google.inject.spi.ProvisionListener[]"/> 267 <doc> 268 <![CDATA[@see Binder#bindListener(Matcher, ProvisionListener...) 269 @since 4.0]]> 270 </doc> 271 </method> 272 <doc> 273 <![CDATA[A support class for {@link Module}s which reduces repetition and results in 274 a more readable configuration. Simply extend this class, implement {@link 275 #configure()}, and call the inherited methods which mirror those found in 276 {@link Binder}. For example: 277 278 <pre> 279 public class MyModule extends AbstractModule { 280 protected void configure() { 281 bind(Service.class).to(ServiceImpl.class).in(Singleton.class); 282 bind(CreditCardPaymentService.class); 283 bind(PaymentService.class).to(CreditCardPaymentService.class); 284 bindConstant().annotatedWith(Names.named("port")).to(8080); 285 } 286 } 287 </pre> 288 289 @author crazybob (a] google.com (Bob Lee)]]> 290 </doc> 291 </class> 292 <!-- end class com.google.inject.AbstractModule --> 293 <!-- start interface com.google.inject.Binder --> 294 <interface name="Binder" abstract="true" 295 static="false" final="false" visibility="public" 296 deprecated="not deprecated"> 297 <method name="bindInterceptor" 298 abstract="true" native="false" synchronized="false" 299 static="false" final="false" visibility="public" 300 deprecated="not deprecated"> 301 <param name="classMatcher" type="com.google.inject.matcher.Matcher<? super java.lang.Class<?>>"/> 302 <param name="methodMatcher" type="com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>"/> 303 <param name="interceptors" type="org.aopalliance.intercept.MethodInterceptor[]"/> 304 <doc> 305 <![CDATA[Binds method interceptor[s] to methods matched by class and method matchers. A method is 306 eligible for interception if: 307 308 <ul> 309 <li>Guice created the instance the method is on</li> 310 <li>Neither the enclosing type nor the method is final</li> 311 <li>And the method is package-private, protected, or public</li> 312 </ul> 313 314 @param classMatcher matches classes the interceptor should apply to. For 315 example: {@code only(Runnable.class)}. 316 @param methodMatcher matches methods the interceptor should apply to. For 317 example: {@code annotatedWith(Transactional.class)}. 318 @param interceptors to bind. The interceptors are called in the order they 319 are given.]]> 320 </doc> 321 </method> 322 <method name="bindScope" 323 abstract="true" native="false" synchronized="false" 324 static="false" final="false" visibility="public" 325 deprecated="not deprecated"> 326 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 327 <param name="scope" type="com.google.inject.Scope"/> 328 <doc> 329 <![CDATA[Binds a scope to an annotation.]]> 330 </doc> 331 </method> 332 <method name="bind" return="com.google.inject.binder.LinkedBindingBuilder<T>" 333 abstract="true" native="false" synchronized="false" 334 static="false" final="false" visibility="public" 335 deprecated="not deprecated"> 336 <param name="key" type="com.google.inject.Key<T>"/> 337 <doc> 338 <![CDATA[See the EDSL examples at {@link Binder}.]]> 339 </doc> 340 </method> 341 <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder<T>" 342 abstract="true" native="false" synchronized="false" 343 static="false" final="false" visibility="public" 344 deprecated="not deprecated"> 345 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 346 <doc> 347 <![CDATA[See the EDSL examples at {@link Binder}.]]> 348 </doc> 349 </method> 350 <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder<T>" 351 abstract="true" native="false" synchronized="false" 352 static="false" final="false" visibility="public" 353 deprecated="not deprecated"> 354 <param name="type" type="java.lang.Class<T>"/> 355 <doc> 356 <![CDATA[See the EDSL examples at {@link Binder}.]]> 357 </doc> 358 </method> 359 <method name="bindConstant" return="com.google.inject.binder.AnnotatedConstantBindingBuilder" 360 abstract="true" native="false" synchronized="false" 361 static="false" final="false" visibility="public" 362 deprecated="not deprecated"> 363 <doc> 364 <![CDATA[See the EDSL examples at {@link Binder}.]]> 365 </doc> 366 </method> 367 <method name="requestInjection" 368 abstract="true" native="false" synchronized="false" 369 static="false" final="false" visibility="public" 370 deprecated="not deprecated"> 371 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 372 <param name="instance" type="T"/> 373 <doc> 374 <![CDATA[Upon successful creation, the {@link Injector} will inject instance fields 375 and methods of the given object. 376 377 @param type of instance 378 @param instance for which members will be injected 379 @since 2.0]]> 380 </doc> 381 </method> 382 <method name="requestInjection" 383 abstract="true" native="false" synchronized="false" 384 static="false" final="false" visibility="public" 385 deprecated="not deprecated"> 386 <param name="instance" type="java.lang.Object"/> 387 <doc> 388 <![CDATA[Upon successful creation, the {@link Injector} will inject instance fields 389 and methods of the given object. 390 391 @param instance for which members will be injected 392 @since 2.0]]> 393 </doc> 394 </method> 395 <method name="requestStaticInjection" 396 abstract="true" native="false" synchronized="false" 397 static="false" final="false" visibility="public" 398 deprecated="not deprecated"> 399 <param name="types" type="java.lang.Class[]"/> 400 <doc> 401 <![CDATA[Upon successful creation, the {@link Injector} will inject static fields 402 and methods in the given classes. 403 404 @param types for which static members will be injected]]> 405 </doc> 406 </method> 407 <method name="install" 408 abstract="true" native="false" synchronized="false" 409 static="false" final="false" visibility="public" 410 deprecated="not deprecated"> 411 <param name="module" type="com.google.inject.Module"/> 412 <doc> 413 <![CDATA[Uses the given module to configure more bindings.]]> 414 </doc> 415 </method> 416 <method name="currentStage" return="com.google.inject.Stage" 417 abstract="true" native="false" synchronized="false" 418 static="false" final="false" visibility="public" 419 deprecated="not deprecated"> 420 <doc> 421 <![CDATA[Gets the current stage.]]> 422 </doc> 423 </method> 424 <method name="addError" 425 abstract="true" native="false" synchronized="false" 426 static="false" final="false" visibility="public" 427 deprecated="not deprecated"> 428 <param name="message" type="java.lang.String"/> 429 <param name="arguments" type="java.lang.Object[]"/> 430 <doc> 431 <![CDATA[Records an error message which will be presented to the user at a later 432 time. Unlike throwing an exception, this enable us to continue 433 configuring the Injector and discover more errors. Uses {@link 434 String#format(String, Object[])} to insert the arguments into the 435 message.]]> 436 </doc> 437 </method> 438 <method name="addError" 439 abstract="true" native="false" synchronized="false" 440 static="false" final="false" visibility="public" 441 deprecated="not deprecated"> 442 <param name="t" type="java.lang.Throwable"/> 443 <doc> 444 <![CDATA[Records an exception, the full details of which will be logged, and the 445 message of which will be presented to the user at a later 446 time. If your Module calls something that you worry may fail, you should 447 catch the exception and pass it into this.]]> 448 </doc> 449 </method> 450 <method name="addError" 451 abstract="true" native="false" synchronized="false" 452 static="false" final="false" visibility="public" 453 deprecated="not deprecated"> 454 <param name="message" type="com.google.inject.spi.Message"/> 455 <doc> 456 <![CDATA[Records an error message to be presented to the user at a later time. 457 458 @since 2.0]]> 459 </doc> 460 </method> 461 <method name="getProvider" return="com.google.inject.Provider<T>" 462 abstract="true" native="false" synchronized="false" 463 static="false" final="false" visibility="public" 464 deprecated="not deprecated"> 465 <param name="key" type="com.google.inject.Key<T>"/> 466 <doc> 467 <![CDATA[Returns the provider used to obtain instances for the given injection key. 468 The returned provider will not be valid until the {@link Injector} has been 469 created. The provider will throw an {@code IllegalStateException} if you 470 try to use it beforehand. 471 472 @since 2.0]]> 473 </doc> 474 </method> 475 <method name="getProvider" return="com.google.inject.Provider<T>" 476 abstract="true" native="false" synchronized="false" 477 static="false" final="false" visibility="public" 478 deprecated="not deprecated"> 479 <param name="type" type="java.lang.Class<T>"/> 480 <doc> 481 <![CDATA[Returns the provider used to obtain instances for the given injection type. 482 The returned provider will not be valid until the {@link Injector} has been 483 created. The provider will throw an {@code IllegalStateException} if you 484 try to use it beforehand. 485 486 @since 2.0]]> 487 </doc> 488 </method> 489 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 490 abstract="true" native="false" synchronized="false" 491 static="false" final="false" visibility="public" 492 deprecated="not deprecated"> 493 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 494 <doc> 495 <![CDATA[Returns the members injector used to inject dependencies into methods and fields on instances 496 of the given type {@code T}. The returned members injector will not be valid until the main 497 {@link Injector} has been created. The members injector will throw an {@code 498 IllegalStateException} if you try to use it beforehand. 499 500 @param typeLiteral type to get members injector for 501 @since 2.0]]> 502 </doc> 503 </method> 504 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 505 abstract="true" native="false" synchronized="false" 506 static="false" final="false" visibility="public" 507 deprecated="not deprecated"> 508 <param name="type" type="java.lang.Class<T>"/> 509 <doc> 510 <![CDATA[Returns the members injector used to inject dependencies into methods and fields on instances 511 of the given type {@code T}. The returned members injector will not be valid until the main 512 {@link Injector} has been created. The members injector will throw an {@code 513 IllegalStateException} if you try to use it beforehand. 514 515 @param type type to get members injector for 516 @since 2.0]]> 517 </doc> 518 </method> 519 <method name="convertToTypes" 520 abstract="true" native="false" synchronized="false" 521 static="false" final="false" visibility="public" 522 deprecated="not deprecated"> 523 <param name="typeMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>"/> 524 <param name="converter" type="com.google.inject.spi.TypeConverter"/> 525 <doc> 526 <![CDATA[Binds a type converter. The injector will use the given converter to 527 convert string constants to matching types as needed. 528 529 @param typeMatcher matches types the converter can handle 530 @param converter converts values 531 @since 2.0]]> 532 </doc> 533 </method> 534 <method name="bindListener" 535 abstract="true" native="false" synchronized="false" 536 static="false" final="false" visibility="public" 537 deprecated="not deprecated"> 538 <param name="typeMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>"/> 539 <param name="listener" type="com.google.inject.spi.TypeListener"/> 540 <doc> 541 <![CDATA[Registers a listener for injectable types. Guice will notify the listener when it encounters 542 injectable types matched by the given type matcher. 543 544 @param typeMatcher that matches injectable types the listener should be notified of 545 @param listener for injectable types matched by typeMatcher 546 @since 2.0]]> 547 </doc> 548 </method> 549 <method name="bindListener" 550 abstract="true" native="false" synchronized="false" 551 static="false" final="false" visibility="public" 552 deprecated="not deprecated"> 553 <param name="bindingMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.Binding<?>>"/> 554 <param name="listeners" type="com.google.inject.spi.ProvisionListener[]"/> 555 <doc> 556 <![CDATA[Registers listeners for provisioned objects. Guice will notify the 557 listeners just before and after the object is provisioned. Provisioned 558 objects that are also injectable (everything except objects provided 559 through Providers) can also be notified through TypeListeners registered in 560 {@link #bindListener}. 561 562 @param bindingMatcher that matches bindings of provisioned objects the listener 563 should be notified of 564 @param listeners for provisioned objects matched by bindingMatcher 565 @since 4.0]]> 566 </doc> 567 </method> 568 <method name="withSource" return="com.google.inject.Binder" 569 abstract="true" native="false" synchronized="false" 570 static="false" final="false" visibility="public" 571 deprecated="not deprecated"> 572 <param name="source" type="java.lang.Object"/> 573 <doc> 574 <![CDATA[Returns a binder that uses {@code source} as the reference location for 575 configuration errors. This is typically a {@link StackTraceElement} 576 for {@code .java} source but it could any binding source, such as the 577 path to a {@code .properties} file. 578 579 @param source any object representing the source location and has a 580 concise {@link Object#toString() toString()} value 581 @return a binder that shares its configuration with this binder 582 @since 2.0]]> 583 </doc> 584 </method> 585 <method name="skipSources" return="com.google.inject.Binder" 586 abstract="true" native="false" synchronized="false" 587 static="false" final="false" visibility="public" 588 deprecated="not deprecated"> 589 <param name="classesToSkip" type="java.lang.Class[]"/> 590 <doc> 591 <![CDATA[Returns a binder that skips {@code classesToSkip} when identify the 592 calling code. The caller's {@link StackTraceElement} is used to locate 593 the source of configuration errors. 594 595 @param classesToSkip library classes that create bindings on behalf of 596 their clients. 597 @return a binder that shares its configuration with this binder. 598 @since 2.0]]> 599 </doc> 600 </method> 601 <method name="newPrivateBinder" return="com.google.inject.PrivateBinder" 602 abstract="true" native="false" synchronized="false" 603 static="false" final="false" visibility="public" 604 deprecated="not deprecated"> 605 <doc> 606 <![CDATA[Creates a new private child environment for bindings and other configuration. The returned 607 binder can be used to add and configuration information in this environment. See {@link 608 PrivateModule} for details. 609 610 @return a binder that inherits configuration from this binder. Only exposed configuration on 611 the returned binder will be visible to this binder. 612 @since 2.0]]> 613 </doc> 614 </method> 615 <method name="requireExplicitBindings" 616 abstract="true" native="false" synchronized="false" 617 static="false" final="false" visibility="public" 618 deprecated="not deprecated"> 619 <doc> 620 <![CDATA[Instructs the Injector that bindings must be listed in a Module in order to 621 be injected. Classes that are not explicitly bound in a module cannot be 622 injected. Bindings created through a linked binding ( 623 <code>bind(Foo.class).to(FooImpl.class)</code>) are allowed, but the 624 implicit binding (<code>FooImpl</code>) cannot be directly injected unless 625 it is also explicitly bound (<code>bind(FooImpl.class)</code>). 626 <p> 627 Tools can still retrieve bindings for implicit bindings (bindings created 628 through a linked binding) if explicit bindings are required, however 629 {@link Binding#getProvider} will fail. 630 <p> 631 By default, explicit bindings are not required. 632 <p> 633 If a parent injector requires explicit bindings, then all child injectors 634 (and private modules within that injector) also require explicit bindings. 635 If a parent does not require explicit bindings, a child injector or private 636 module may optionally declare itself as requiring explicit bindings. If it 637 does, the behavior is limited only to that child or any grandchildren. No 638 siblings of the child will require explicit bindings. 639 <p> 640 If the parent did not require explicit bindings but the child does, it is 641 possible that a linked binding in the child may add a JIT binding to the 642 parent. The child will not be allowed to reference the target binding 643 directly, but the parent and other children of the parent may be able to. 644 645 @since 3.0]]> 646 </doc> 647 </method> 648 <method name="disableCircularProxies" 649 abstract="true" native="false" synchronized="false" 650 static="false" final="false" visibility="public" 651 deprecated="not deprecated"> 652 <doc> 653 <![CDATA[Prevents Guice from constructing a {@link Proxy} when a circular dependency 654 is found. By default, circular proxies are not disabled. 655 <p> 656 If a parent injector disables circular proxies, then all child injectors 657 (and private modules within that injector) also disable circular proxies. 658 If a parent does not disable circular proxies, a child injector or private 659 module may optionally declare itself as disabling circular proxies. If it 660 does, the behavior is limited only to that child or any grandchildren. No 661 siblings of the child will disable circular proxies. 662 663 @since 3.0]]> 664 </doc> 665 </method> 666 <method name="requireAtInjectOnConstructors" 667 abstract="true" native="false" synchronized="false" 668 static="false" final="false" visibility="public" 669 deprecated="not deprecated"> 670 <doc> 671 <![CDATA[Requires that a {@literal @}{@link Inject} annotation exists on a constructor in order for 672 Guice to consider it an eligible injectable class. By default, Guice will inject classes that 673 have a no-args constructor if no {@literal @}{@link Inject} annotation exists on any 674 constructor. 675 <p> 676 If the class is bound using {@link LinkedBindingBuilder#toConstructor}, Guice will still inject 677 that constructor regardless of annotations. 678 679 @since 4.0]]> 680 </doc> 681 </method> 682 <method name="requireExactBindingAnnotations" 683 abstract="true" native="false" synchronized="false" 684 static="false" final="false" visibility="public" 685 deprecated="not deprecated"> 686 <doc> 687 <![CDATA[Requires that Guice finds an exactly matching binding annotation. This disables the 688 error-prone feature in Guice where it can substitute a binding for 689 <code>{@literal @}Named Foo</code> when attempting to inject 690 <code>{@literal @}Named("foo") Foo</code>. 691 692 @since 4.0]]> 693 </doc> 694 </method> 695 <doc> 696 <![CDATA[Collects configuration information (primarily <i>bindings</i>) which will be 697 used to create an {@link Injector}. Guice provides this object to your 698 application's {@link Module} implementors so they may each contribute 699 their own bindings and other registrations. 700 701 <h3>The Guice Binding EDSL</h3> 702 703 Guice uses an <i>embedded domain-specific language</i>, or EDSL, to help you 704 create bindings simply and readably. This approach is great for overall 705 usability, but it does come with a small cost: <b>it is difficult to 706 learn how to use the Binding EDSL by reading 707 method-level javadocs</b>. Instead, you should consult the series of 708 examples below. To save space, these examples omit the opening 709 {@code binder}, just as you will if your module extends 710 {@link AbstractModule}. 711 712 <pre> 713 bind(ServiceImpl.class);</pre> 714 715 This statement does essentially nothing; it "binds the {@code ServiceImpl} 716 class to itself" and does not change Guice's default behavior. You may still 717 want to use this if you prefer your {@link Module} class to serve as an 718 explicit <i>manifest</i> for the services it provides. Also, in rare cases, 719 Guice may be unable to validate a binding at injector creation time unless it 720 is given explicitly. 721 722 <pre> 723 bind(Service.class).to(ServiceImpl.class);</pre> 724 725 Specifies that a request for a {@code Service} instance with no binding 726 annotations should be treated as if it were a request for a 727 {@code ServiceImpl} instance. This <i>overrides</i> the function of any 728 {@link ImplementedBy @ImplementedBy} or {@link ProvidedBy @ProvidedBy} 729 annotations found on {@code Service}, since Guice will have already 730 "moved on" to {@code ServiceImpl} before it reaches the point when it starts 731 looking for these annotations. 732 733 <pre> 734 bind(Service.class).toProvider(ServiceProvider.class);</pre> 735 736 In this example, {@code ServiceProvider} must extend or implement 737 {@code Provider<Service>}. This binding specifies that Guice should resolve 738 an unannotated injection request for {@code Service} by first resolving an 739 instance of {@code ServiceProvider} in the regular way, then calling 740 {@link Provider#get get()} on the resulting Provider instance to obtain the 741 {@code Service} instance. 742 743 <p>The {@link Provider} you use here does not have to be a "factory"; that 744 is, a provider which always <i>creates</i> each instance it provides. 745 However, this is generally a good practice to follow. You can then use 746 Guice's concept of {@link Scope scopes} to guide when creation should happen 747 -- "letting Guice work for you". 748 749 <pre> 750 bind(Service.class).annotatedWith(Red.class).to(ServiceImpl.class);</pre> 751 752 Like the previous example, but only applies to injection requests that use 753 the binding annotation {@code @Red}. If your module also includes bindings 754 for particular <i>values</i> of the {@code @Red} annotation (see below), 755 then this binding will serve as a "catch-all" for any values of {@code @Red} 756 that have no exact match in the bindings. 757 758 <pre> 759 bind(ServiceImpl.class).in(Singleton.class); 760 // or, alternatively 761 bind(ServiceImpl.class).in(Scopes.SINGLETON);</pre> 762 763 Either of these statements places the {@code ServiceImpl} class into 764 singleton scope. Guice will create only one instance of {@code ServiceImpl} 765 and will reuse it for all injection requests of this type. Note that it is 766 still possible to bind another instance of {@code ServiceImpl} if the second 767 binding is qualified by an annotation as in the previous example. Guice is 768 not overly concerned with <i>preventing</i> you from creating multiple 769 instances of your "singletons", only with <i>enabling</i> your application to 770 share only one instance if that's all you tell Guice you need. 771 772 <p><b>Note:</b> a scope specified in this way <i>overrides</i> any scope that 773 was specified with an annotation on the {@code ServiceImpl} class. 774 775 <p>Besides {@link Singleton}/{@link Scopes#SINGLETON}, there are 776 servlet-specific scopes available in 777 {@code com.google.inject.servlet.ServletScopes}, and your Modules can 778 contribute their own custom scopes for use here as well. 779 780 <pre> 781 bind(new TypeLiteral<PaymentService<CreditCard>>() {}) 782 .to(CreditCardPaymentService.class);</pre> 783 784 This admittedly odd construct is the way to bind a parameterized type. It 785 tells Guice how to honor an injection request for an element of type 786 {@code PaymentService<CreditCard>}. The class 787 {@code CreditCardPaymentService} must implement the 788 {@code PaymentService<CreditCard>} interface. Guice cannot currently bind or 789 inject a generic type, such as {@code Set<E>}; all type parameters must be 790 fully specified. 791 792 <pre> 793 bind(Service.class).toInstance(new ServiceImpl()); 794 // or, alternatively 795 bind(Service.class).toInstance(SomeLegacyRegistry.getService());</pre> 796 797 In this example, your module itself, <i>not Guice</i>, takes responsibility 798 for obtaining a {@code ServiceImpl} instance, then asks Guice to always use 799 this single instance to fulfill all {@code Service} injection requests. When 800 the {@link Injector} is created, it will automatically perform field 801 and method injection for this instance, but any injectable constructor on 802 {@code ServiceImpl} is simply ignored. Note that using this approach results 803 in "eager loading" behavior that you can't control. 804 805 <pre> 806 bindConstant().annotatedWith(ServerHost.class).to(args[0]);</pre> 807 808 Sets up a constant binding. Constant injections must always be annotated. 809 When a constant binding's value is a string, it is eligile for conversion to 810 all primitive types, to {@link Enum#valueOf(Class, String) all enums}, and to 811 {@link Class#forName class literals}. Conversions for other types can be 812 configured using {@link #convertToTypes(Matcher, TypeConverter) 813 convertToTypes()}. 814 815 <pre> 816 {@literal @}Color("red") Color red; // A member variable (field) 817 . . . 818 red = MyModule.class.getDeclaredField("red").getAnnotation(Color.class); 819 bind(Service.class).annotatedWith(red).to(RedService.class);</pre> 820 821 If your binding annotation has parameters you can apply different bindings to 822 different specific values of your annotation. Getting your hands on the 823 right instance of the annotation is a bit of a pain -- one approach, shown 824 above, is to apply a prototype annotation to a field in your module class, so 825 that you can read this annotation instance and give it to Guice. 826 827 <pre> 828 bind(Service.class) 829 .annotatedWith(Names.named("blue")) 830 .to(BlueService.class);</pre> 831 832 Differentiating by names is a common enough use case that we provided a 833 standard annotation, {@link com.google.inject.name.Named @Named}. Because of 834 Guice's library support, binding by name is quite easier than in the 835 arbitrary binding annotation case we just saw. However, remember that these 836 names will live in a single flat namespace with all the other names used in 837 your application. 838 839 <pre> 840 Constructor<T> loneCtor = getLoneCtorFromServiceImplViaReflection(); 841 bind(ServiceImpl.class) 842 .toConstructor(loneCtor);</pre> 843 844 In this example, we directly tell Guice which constructor to use in a concrete 845 class implementation. It means that we do not need to place {@literal @}Inject 846 on any of the constructors and that Guice treats the provided constructor as though 847 it were annotated so. It is useful for cases where you cannot modify existing 848 classes and is a bit simpler than using a {@link Provider}. 849 850 <p>The above list of examples is far from exhaustive. If you can think of 851 how the concepts of one example might coexist with the concepts from another, 852 you can most likely weave the two together. If the two concepts make no 853 sense with each other, you most likely won't be able to do it. In a few 854 cases Guice will let something bogus slip by, and will then inform you of 855 the problems at runtime, as soon as you try to create your Injector. 856 857 <p>The other methods of Binder such as {@link #bindScope}, 858 {@link #bindInterceptor}, {@link #install}, {@link #requestStaticInjection}, 859 {@link #addError} and {@link #currentStage} are not part of the Binding EDSL; 860 you can learn how to use these in the usual way, from the method 861 documentation. 862 863 @author crazybob (a] google.com (Bob Lee) 864 @author jessewilson (a] google.com (Jesse Wilson) 865 @author kevinb (a] google.com (Kevin Bourrillion)]]> 866 </doc> 867 </interface> 868 <!-- end interface com.google.inject.Binder --> 869 <!-- start interface com.google.inject.Binding --> 870 <interface name="Binding" abstract="true" 871 static="false" final="false" visibility="public" 872 deprecated="not deprecated"> 873 <implements name="com.google.inject.spi.Element"/> 874 <method name="getKey" return="com.google.inject.Key<T>" 875 abstract="true" native="false" synchronized="false" 876 static="false" final="false" visibility="public" 877 deprecated="not deprecated"> 878 <doc> 879 <![CDATA[Returns the key for this binding.]]> 880 </doc> 881 </method> 882 <method name="getProvider" return="com.google.inject.Provider<T>" 883 abstract="true" native="false" synchronized="false" 884 static="false" final="false" visibility="public" 885 deprecated="not deprecated"> 886 <doc> 887 <![CDATA[Returns the scoped provider guice uses to fulfill requests for this 888 binding. 889 890 @throws UnsupportedOperationException when invoked on a {@link Binding} 891 created via {@link com.google.inject.spi.Elements#getElements}. This 892 method is only supported on {@link Binding}s returned from an injector.]]> 893 </doc> 894 </method> 895 <method name="acceptTargetVisitor" return="V" 896 abstract="true" native="false" synchronized="false" 897 static="false" final="false" visibility="public" 898 deprecated="not deprecated"> 899 <param name="visitor" type="com.google.inject.spi.BindingTargetVisitor<? super T, V>"/> 900 <doc> 901 <![CDATA[Accepts a target visitor. Invokes the visitor method specific to this binding's target. 902 903 @param visitor to call back on 904 @since 2.0]]> 905 </doc> 906 </method> 907 <method name="acceptScopingVisitor" return="V" 908 abstract="true" native="false" synchronized="false" 909 static="false" final="false" visibility="public" 910 deprecated="not deprecated"> 911 <param name="visitor" type="com.google.inject.spi.BindingScopingVisitor<V>"/> 912 <doc> 913 <![CDATA[Accepts a scoping visitor. Invokes the visitor method specific to this binding's scoping. 914 915 @param visitor to call back on 916 @since 2.0]]> 917 </doc> 918 </method> 919 <doc> 920 <![CDATA[A mapping from a key (type and optional annotation) to the strategy for getting instances of the 921 type. This interface is part of the introspection API and is intended primarily for use by 922 tools. 923 924 <p>Bindings are created in several ways: 925 <ul> 926 <li>Explicitly in a module, via {@code bind()} and {@code bindConstant()} 927 statements: 928 <pre> 929 bind(Service.class).annotatedWith(Red.class).to(ServiceImpl.class); 930 bindConstant().annotatedWith(ServerHost.class).to(args[0]);</pre></li> 931 <li>Implicitly by the Injector by following a type's {@link ImplementedBy 932 pointer} {@link ProvidedBy annotations} or by using its {@link Inject annotated} or 933 default constructor.</li> 934 <li>By converting a bound instance to a different type.</li> 935 <li>For {@link Provider providers}, by delegating to the binding for the provided type.</li> 936 </ul> 937 938 939 <p>They exist on both modules and on injectors, and their behaviour is different for each: 940 <ul> 941 <li><strong>Module bindings</strong> are incomplete and cannot be used to provide instances. 942 This is because the applicable scopes and interceptors may not be known until an injector 943 is created. From a tool's perspective, module bindings are like the injector's source 944 code. They can be inspected or rewritten, but this analysis must be done statically.</li> 945 <li><strong>Injector bindings</strong> are complete and valid and can be used to provide 946 instances. From a tools' perspective, injector bindings are like reflection for an 947 injector. They have full runtime information, including the complete graph of injections 948 necessary to satisfy a binding.</li> 949 </ul> 950 951 @param <T> the bound type. The injected is always assignable to this type. 952 953 @author crazybob (a] google.com (Bob Lee) 954 @author jessewilson (a] google.com (Jesse Wilson)]]> 955 </doc> 956 </interface> 957 <!-- end interface com.google.inject.Binding --> 958 <!-- start class com.google.inject.BindingAnnotation --> 959 <class name="BindingAnnotation" abstract="true" 960 static="false" final="false" visibility="public" 961 deprecated="not deprecated"> 962 <implements name="java.lang.annotation.Annotation"/> 963 <doc> 964 <![CDATA[Annotates annotations which are used for binding. Only one such annotation 965 may apply to a single injection point. You must also annotate binder 966 annotations with {@code @Retention(RUNTIME)}. For example: 967 968 <pre> 969 {@code @}Retention(RUNTIME) 970 {@code @}Target({ FIELD, PARAMETER, METHOD }) 971 {@code @}BindingAnnotation 972 public {@code @}interface Transactional {} 973 </pre> 974 975 @author crazybob (a] google.com (Bob Lee)]]> 976 </doc> 977 </class> 978 <!-- end class com.google.inject.BindingAnnotation --> 979 <!-- start class com.google.inject.ConfigurationException --> 980 <class name="ConfigurationException" extends="java.lang.RuntimeException" 981 abstract="false" 982 static="false" final="true" visibility="public" 983 deprecated="not deprecated"> 984 <constructor name="ConfigurationException" type="java.lang.Iterable<com.google.inject.spi.Message>" 985 static="false" final="false" visibility="public" 986 deprecated="not deprecated"> 987 <doc> 988 <![CDATA[Creates a ConfigurationException containing {@code messages}.]]> 989 </doc> 990 </constructor> 991 <method name="withPartialValue" return="com.google.inject.ConfigurationException" 992 abstract="false" native="false" synchronized="false" 993 static="false" final="false" visibility="public" 994 deprecated="not deprecated"> 995 <param name="partialValue" type="java.lang.Object"/> 996 <doc> 997 <![CDATA[Returns a copy of this configuration exception with the specified partial value.]]> 998 </doc> 999 </method> 1000 <method name="getErrorMessages" return="java.util.Collection<com.google.inject.spi.Message>" 1001 abstract="false" native="false" synchronized="false" 1002 static="false" final="false" visibility="public" 1003 deprecated="not deprecated"> 1004 <doc> 1005 <![CDATA[Returns messages for the errors that caused this exception.]]> 1006 </doc> 1007 </method> 1008 <method name="getPartialValue" return="E" 1009 abstract="false" native="false" synchronized="false" 1010 static="false" final="false" visibility="public" 1011 deprecated="not deprecated"> 1012 <doc> 1013 <![CDATA[Returns a value that was only partially computed due to this exception. The caller can use 1014 this while collecting additional configuration problems. 1015 1016 @return the partial value, or {@code null} if none was set. The type of the partial value is 1017 specified by the throwing method.]]> 1018 </doc> 1019 </method> 1020 <method name="getMessage" return="java.lang.String" 1021 abstract="false" native="false" synchronized="false" 1022 static="false" final="false" visibility="public" 1023 deprecated="not deprecated"> 1024 </method> 1025 <doc> 1026 <![CDATA[Thrown when a programming error such as a misplaced annotation, illegal binding, or unsupported 1027 scope is found. Clients should catch this exception, log it, and stop execution. 1028 1029 @author jessewilson (a] google.com (Jesse Wilson) 1030 @since 2.0]]> 1031 </doc> 1032 </class> 1033 <!-- end class com.google.inject.ConfigurationException --> 1034 <!-- start class com.google.inject.CreationException --> 1035 <class name="CreationException" extends="java.lang.RuntimeException" 1036 abstract="false" 1037 static="false" final="false" visibility="public" 1038 deprecated="not deprecated"> 1039 <constructor name="CreationException" type="java.util.Collection<com.google.inject.spi.Message>" 1040 static="false" final="false" visibility="public" 1041 deprecated="not deprecated"> 1042 <doc> 1043 <![CDATA[Creates a CreationException containing {@code messages}.]]> 1044 </doc> 1045 </constructor> 1046 <method name="getErrorMessages" return="java.util.Collection<com.google.inject.spi.Message>" 1047 abstract="false" native="false" synchronized="false" 1048 static="false" final="false" visibility="public" 1049 deprecated="not deprecated"> 1050 <doc> 1051 <![CDATA[Returns messages for the errors that caused this exception.]]> 1052 </doc> 1053 </method> 1054 <method name="getMessage" return="java.lang.String" 1055 abstract="false" native="false" synchronized="false" 1056 static="false" final="false" visibility="public" 1057 deprecated="not deprecated"> 1058 </method> 1059 <doc> 1060 <![CDATA[Thrown when errors occur while creating a {@link Injector}. Includes a list of encountered 1061 errors. Clients should catch this exception, log it, and stop execution. 1062 1063 @author crazybob (a] google.com (Bob Lee)]]> 1064 </doc> 1065 </class> 1066 <!-- end class com.google.inject.CreationException --> 1067 <!-- start class com.google.inject.Exposed --> 1068 <class name="Exposed" abstract="true" 1069 static="false" final="false" visibility="public" 1070 deprecated="not deprecated"> 1071 <implements name="java.lang.annotation.Annotation"/> 1072 <doc> 1073 <![CDATA[Acccompanies a {@literal @}{@link com.google.inject.Provides Provides} method annotation in a 1074 private module to indicate that the provided binding is exposed. 1075 1076 @author jessewilson (a] google.com (Jesse Wilson) 1077 @since 2.0]]> 1078 </doc> 1079 </class> 1080 <!-- end class com.google.inject.Exposed --> 1081 <!-- start class com.google.inject.Guice --> 1082 <class name="Guice" extends="java.lang.Object" 1083 abstract="false" 1084 static="false" final="true" visibility="public" 1085 deprecated="not deprecated"> 1086 <method name="createInjector" return="com.google.inject.Injector" 1087 abstract="false" native="false" synchronized="false" 1088 static="true" final="false" visibility="public" 1089 deprecated="not deprecated"> 1090 <param name="modules" type="com.google.inject.Module[]"/> 1091 <doc> 1092 <![CDATA[Creates an injector for the given set of modules. This is equivalent to 1093 calling {@link #createInjector(Stage, Module...)} with Stage.DEVELOPMENT. 1094 1095 @throws CreationException if one or more errors occur during injector 1096 construction]]> 1097 </doc> 1098 </method> 1099 <method name="createInjector" return="com.google.inject.Injector" 1100 abstract="false" native="false" synchronized="false" 1101 static="true" final="false" visibility="public" 1102 deprecated="not deprecated"> 1103 <param name="modules" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 1104 <doc> 1105 <![CDATA[Creates an injector for the given set of modules. This is equivalent to 1106 calling {@link #createInjector(Stage, Iterable)} with Stage.DEVELOPMENT. 1107 1108 @throws CreationException if one or more errors occur during injector 1109 creation]]> 1110 </doc> 1111 </method> 1112 <method name="createInjector" return="com.google.inject.Injector" 1113 abstract="false" native="false" synchronized="false" 1114 static="true" final="false" visibility="public" 1115 deprecated="not deprecated"> 1116 <param name="stage" type="com.google.inject.Stage"/> 1117 <param name="modules" type="com.google.inject.Module[]"/> 1118 <doc> 1119 <![CDATA[Creates an injector for the given set of modules, in a given development 1120 stage. 1121 1122 @throws CreationException if one or more errors occur during injector 1123 creation.]]> 1124 </doc> 1125 </method> 1126 <method name="createInjector" return="com.google.inject.Injector" 1127 abstract="false" native="false" synchronized="false" 1128 static="true" final="false" visibility="public" 1129 deprecated="not deprecated"> 1130 <param name="stage" type="com.google.inject.Stage"/> 1131 <param name="modules" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 1132 <doc> 1133 <![CDATA[Creates an injector for the given set of modules, in a given development 1134 stage. 1135 1136 @throws CreationException if one or more errors occur during injector 1137 construction]]> 1138 </doc> 1139 </method> 1140 <doc> 1141 <![CDATA[The entry point to the Guice framework. Creates {@link Injector}s from 1142 {@link Module}s. 1143 1144 <p>Guice supports a model of development that draws clear boundaries between 1145 APIs, Implementations of these APIs, Modules which configure these 1146 implementations, and finally Applications which consist of a collection of 1147 Modules. It is the Application, which typically defines your {@code main()} 1148 method, that bootstraps the Guice Injector using the {@code Guice} class, as 1149 in this example: 1150 <pre> 1151 public class FooApplication { 1152 public static void main(String[] args) { 1153 Injector injector = Guice.createInjector( 1154 new ModuleA(), 1155 new ModuleB(), 1156 . . . 1157 new FooApplicationFlagsModule(args) 1158 ); 1159 1160 // Now just bootstrap the application and you're done 1161 FooStarter starter = injector.getInstance(FooStarter.class); 1162 starter.runApplication(); 1163 } 1164 } 1165 </pre>]]> 1166 </doc> 1167 </class> 1168 <!-- end class com.google.inject.Guice --> 1169 <!-- start class com.google.inject.ImplementedBy --> 1170 <class name="ImplementedBy" abstract="true" 1171 static="false" final="false" visibility="public" 1172 deprecated="not deprecated"> 1173 <implements name="java.lang.annotation.Annotation"/> 1174 <doc> 1175 <![CDATA[A pointer to the default implementation of a type. 1176 1177 @author crazybob (a] google.com (Bob Lee)]]> 1178 </doc> 1179 </class> 1180 <!-- end class com.google.inject.ImplementedBy --> 1181 <!-- start class com.google.inject.Inject --> 1182 <class name="Inject" abstract="true" 1183 static="false" final="false" visibility="public" 1184 deprecated="not deprecated"> 1185 <implements name="java.lang.annotation.Annotation"/> 1186 <doc> 1187 <![CDATA[Annotates members of your implementation class (constructors, methods 1188 and fields) into which the {@link Injector} should inject values. 1189 The Injector fulfills injection requests for: 1190 1191 <ul> 1192 <li>Every instance it constructs. The class being constructed must have 1193 exactly one of its constructors marked with {@code @Inject} or must have a 1194 constructor taking no parameters. The Injector then proceeds to perform 1195 field and method injections. 1196 1197 <li>Pre-constructed instances passed to {@link Injector#injectMembers}, 1198 {@link com.google.inject.binder.LinkedBindingBuilder#toInstance(Object)} and 1199 {@link com.google.inject.binder.LinkedBindingBuilder#toProvider(javax.inject.Provider)}. 1200 In this case all constructors are, of course, ignored. 1201 1202 <li>Static fields and methods of classes which any {@link Module} has 1203 specifically requested static injection for, using 1204 {@link Binder#requestStaticInjection}. 1205 </ul> 1206 1207 In all cases, a member can be injected regardless of its Java access 1208 specifier (private, default, protected, public). 1209 1210 @author crazybob (a] google.com (Bob Lee)]]> 1211 </doc> 1212 </class> 1213 <!-- end class com.google.inject.Inject --> 1214 <!-- start interface com.google.inject.Injector --> 1215 <interface name="Injector" abstract="true" 1216 static="false" final="false" visibility="public" 1217 deprecated="not deprecated"> 1218 <method name="injectMembers" 1219 abstract="true" native="false" synchronized="false" 1220 static="false" final="false" visibility="public" 1221 deprecated="not deprecated"> 1222 <param name="instance" type="java.lang.Object"/> 1223 <doc> 1224 <![CDATA[Injects dependencies into the fields and methods of {@code instance}. Ignores the presence or 1225 absence of an injectable constructor. 1226 1227 <p>Whenever Guice creates an instance, it performs this injection automatically (after first 1228 performing constructor injection), so if you're able to let Guice create all your objects for 1229 you, you'll never need to use this method. 1230 1231 @param instance to inject members on 1232 1233 @see Binder#getMembersInjector(Class) for a preferred alternative that supports checks before 1234 run time]]> 1235 </doc> 1236 </method> 1237 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 1238 abstract="true" native="false" synchronized="false" 1239 static="false" final="false" visibility="public" 1240 deprecated="not deprecated"> 1241 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 1242 <doc> 1243 <![CDATA[Returns the members injector used to inject dependencies into methods and fields on instances 1244 of the given type {@code T}. 1245 1246 @param typeLiteral type to get members injector for 1247 @see Binder#getMembersInjector(TypeLiteral) for an alternative that offers up front error 1248 detection 1249 @since 2.0]]> 1250 </doc> 1251 </method> 1252 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 1253 abstract="true" native="false" synchronized="false" 1254 static="false" final="false" visibility="public" 1255 deprecated="not deprecated"> 1256 <param name="type" type="java.lang.Class<T>"/> 1257 <doc> 1258 <![CDATA[Returns the members injector used to inject dependencies into methods and fields on instances 1259 of the given type {@code T}. When feasible, use {@link Binder#getMembersInjector(TypeLiteral)} 1260 instead to get increased up front error detection. 1261 1262 @param type type to get members injector for 1263 @see Binder#getMembersInjector(Class) for an alternative that offers up front error 1264 detection 1265 @since 2.0]]> 1266 </doc> 1267 </method> 1268 <method name="getBindings" return="java.util.Map<com.google.inject.Key<?>, com.google.inject.Binding<?>>" 1269 abstract="true" native="false" synchronized="false" 1270 static="false" final="false" visibility="public" 1271 deprecated="not deprecated"> 1272 <doc> 1273 <![CDATA[Returns this injector's <strong>explicit</strong> bindings. 1274 1275 <p>The returned map does not include bindings inherited from a {@link #getParent() parent 1276 injector}, should one exist. The returned map is guaranteed to iterate (for example, with 1277 its {@link Map#entrySet()} iterator) in the order of insertion. In other words, the order in 1278 which bindings appear in user Modules. 1279 1280 <p>This method is part of the Guice SPI and is intended for use by tools and extensions.]]> 1281 </doc> 1282 </method> 1283 <method name="getAllBindings" return="java.util.Map<com.google.inject.Key<?>, com.google.inject.Binding<?>>" 1284 abstract="true" native="false" synchronized="false" 1285 static="false" final="false" visibility="public" 1286 deprecated="not deprecated"> 1287 <doc> 1288 <![CDATA[Returns a snapshot of this injector's bindings, <strong>both explicit and 1289 just-in-time</strong>. The returned map is immutable; it contains only the bindings that were 1290 present when {@code getAllBindings()} was invoked. Subsequent calls may return a map with 1291 additional just-in-time bindings. 1292 1293 <p>The returned map does not include bindings inherited from a {@link #getParent() parent 1294 injector}, should one exist. 1295 1296 <p>This method is part of the Guice SPI and is intended for use by tools and extensions. 1297 1298 @since 3.0]]> 1299 </doc> 1300 </method> 1301 <method name="getBinding" return="com.google.inject.Binding<T>" 1302 abstract="true" native="false" synchronized="false" 1303 static="false" final="false" visibility="public" 1304 deprecated="not deprecated"> 1305 <param name="key" type="com.google.inject.Key<T>"/> 1306 <doc> 1307 <![CDATA[Returns the binding for the given injection key. This will be an explicit bindings if the key 1308 was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will 1309 be created if necessary. 1310 1311 <p>This method is part of the Guice SPI and is intended for use by tools and extensions. 1312 1313 @throws ConfigurationException if this injector cannot find or create the binding.]]> 1314 </doc> 1315 </method> 1316 <method name="getBinding" return="com.google.inject.Binding<T>" 1317 abstract="true" native="false" synchronized="false" 1318 static="false" final="false" visibility="public" 1319 deprecated="not deprecated"> 1320 <param name="type" type="java.lang.Class<T>"/> 1321 <doc> 1322 <![CDATA[Returns the binding for the given type. This will be an explicit bindings if the injection key 1323 was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will 1324 be created if necessary. 1325 1326 <p>This method is part of the Guice SPI and is intended for use by tools and extensions. 1327 1328 @throws ConfigurationException if this injector cannot find or create the binding. 1329 @since 2.0]]> 1330 </doc> 1331 </method> 1332 <method name="getExistingBinding" return="com.google.inject.Binding<T>" 1333 abstract="true" native="false" synchronized="false" 1334 static="false" final="false" visibility="public" 1335 deprecated="not deprecated"> 1336 <param name="key" type="com.google.inject.Key<T>"/> 1337 <doc> 1338 <![CDATA[Returns the binding if it already exists, or null if does not exist. Unlike 1339 {@link #getBinding(Key)}, this does not attempt to create just-in-time bindings 1340 for keys that aren't bound. 1341 1342 <p> This method is part of the Guice SPI and is intended for use by tools and extensions. 1343 1344 @since 3.0]]> 1345 </doc> 1346 </method> 1347 <method name="findBindingsByType" return="java.util.List<com.google.inject.Binding<T>>" 1348 abstract="true" native="false" synchronized="false" 1349 static="false" final="false" visibility="public" 1350 deprecated="not deprecated"> 1351 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 1352 <doc> 1353 <![CDATA[Returns all explicit bindings for {@code type}. 1354 1355 <p>This method is part of the Guice SPI and is intended for use by tools and extensions.]]> 1356 </doc> 1357 </method> 1358 <method name="getProvider" return="com.google.inject.Provider<T>" 1359 abstract="true" native="false" synchronized="false" 1360 static="false" final="false" visibility="public" 1361 deprecated="not deprecated"> 1362 <param name="key" type="com.google.inject.Key<T>"/> 1363 <doc> 1364 <![CDATA[Returns the provider used to obtain instances for the given injection key. When feasible, avoid 1365 using this method, in favor of having Guice inject your dependencies ahead of time. 1366 1367 @throws ConfigurationException if this injector cannot find or create the provider. 1368 @see Binder#getProvider(Key) for an alternative that offers up front error detection]]> 1369 </doc> 1370 </method> 1371 <method name="getProvider" return="com.google.inject.Provider<T>" 1372 abstract="true" native="false" synchronized="false" 1373 static="false" final="false" visibility="public" 1374 deprecated="not deprecated"> 1375 <param name="type" type="java.lang.Class<T>"/> 1376 <doc> 1377 <![CDATA[Returns the provider used to obtain instances for the given type. When feasible, avoid 1378 using this method, in favor of having Guice inject your dependencies ahead of time. 1379 1380 @throws ConfigurationException if this injector cannot find or create the provider. 1381 @see Binder#getProvider(Class) for an alternative that offers up front error detection]]> 1382 </doc> 1383 </method> 1384 <method name="getInstance" return="T" 1385 abstract="true" native="false" synchronized="false" 1386 static="false" final="false" visibility="public" 1387 deprecated="not deprecated"> 1388 <param name="key" type="com.google.inject.Key<T>"/> 1389 <doc> 1390 <![CDATA[Returns the appropriate instance for the given injection key; equivalent to {@code 1391 getProvider(key).get()}. When feasible, avoid using this method, in favor of having Guice 1392 inject your dependencies ahead of time. 1393 1394 @throws ConfigurationException if this injector cannot find or create the provider. 1395 @throws ProvisionException if there was a runtime failure while providing an instance.]]> 1396 </doc> 1397 </method> 1398 <method name="getInstance" return="T" 1399 abstract="true" native="false" synchronized="false" 1400 static="false" final="false" visibility="public" 1401 deprecated="not deprecated"> 1402 <param name="type" type="java.lang.Class<T>"/> 1403 <doc> 1404 <![CDATA[Returns the appropriate instance for the given injection type; equivalent to {@code 1405 getProvider(type).get()}. When feasible, avoid using this method, in favor of having Guice 1406 inject your dependencies ahead of time. 1407 1408 @throws ConfigurationException if this injector cannot find or create the provider. 1409 @throws ProvisionException if there was a runtime failure while providing an instance.]]> 1410 </doc> 1411 </method> 1412 <method name="getParent" return="com.google.inject.Injector" 1413 abstract="true" native="false" synchronized="false" 1414 static="false" final="false" visibility="public" 1415 deprecated="not deprecated"> 1416 <doc> 1417 <![CDATA[Returns this injector's parent, or {@code null} if this is a top-level injector. 1418 1419 @since 2.0]]> 1420 </doc> 1421 </method> 1422 <method name="createChildInjector" return="com.google.inject.Injector" 1423 abstract="true" native="false" synchronized="false" 1424 static="false" final="false" visibility="public" 1425 deprecated="not deprecated"> 1426 <param name="modules" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 1427 <doc> 1428 <![CDATA[Returns a new injector that inherits all state from this injector. All bindings, scopes, 1429 interceptors and type converters are inherited -- they are visible to the child injector. 1430 Elements of the child injector are not visible to its parent. 1431 1432 <p>Just-in-time bindings created for child injectors will be created in an ancestor injector 1433 whenever possible. This allows for scoped instances to be shared between injectors. Use 1434 explicit bindings to prevent bindings from being shared with the parent injector. Optional 1435 injections in just-in-time bindings (created in the parent injector) may be silently 1436 ignored if the optional dependencies are from the child injector. 1437 1438 <p>No key may be bound by both an injector and one of its ancestors. This includes just-in-time 1439 bindings. The lone exception is the key for {@code Injector.class}, which is bound by each 1440 injector to itself. 1441 1442 @since 2.0]]> 1443 </doc> 1444 </method> 1445 <method name="createChildInjector" return="com.google.inject.Injector" 1446 abstract="true" native="false" synchronized="false" 1447 static="false" final="false" visibility="public" 1448 deprecated="not deprecated"> 1449 <param name="modules" type="com.google.inject.Module[]"/> 1450 <doc> 1451 <![CDATA[Returns a new injector that inherits all state from this injector. All bindings, scopes, 1452 interceptors and type converters are inherited -- they are visible to the child injector. 1453 Elements of the child injector are not visible to its parent. 1454 1455 <p>Just-in-time bindings created for child injectors will be created in an ancestor injector 1456 whenever possible. This allows for scoped instances to be shared between injectors. Use 1457 explicit bindings to prevent bindings from being shared with the parent injector. 1458 1459 <p>No key may be bound by both an injector and one of its ancestors. This includes just-in-time 1460 bindings. The lone exception is the key for {@code Injector.class}, which is bound by each 1461 injector to itself. 1462 1463 @since 2.0]]> 1464 </doc> 1465 </method> 1466 <method name="getScopeBindings" return="java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>, com.google.inject.Scope>" 1467 abstract="true" native="false" synchronized="false" 1468 static="false" final="false" visibility="public" 1469 deprecated="not deprecated"> 1470 <doc> 1471 <![CDATA[Returns a map containing all scopes in the injector. The maps keys are scoping annotations 1472 like {@code Singleton.class}, and the values are scope instances, such as {@code 1473 Scopes.SINGLETON}. The returned map is immutable. 1474 1475 <p>This method is part of the Guice SPI and is intended for use by tools and extensions. 1476 1477 @since 3.0]]> 1478 </doc> 1479 </method> 1480 <method name="getTypeConverterBindings" return="java.util.Set<com.google.inject.spi.TypeConverterBinding>" 1481 abstract="true" native="false" synchronized="false" 1482 static="false" final="false" visibility="public" 1483 deprecated="not deprecated"> 1484 <doc> 1485 <![CDATA[Returns a set containing all type converter bindings in the injector. The returned set is 1486 immutable. 1487 1488 <p>This method is part of the Guice SPI and is intended for use by tools and extensions. 1489 1490 @since 3.0]]> 1491 </doc> 1492 </method> 1493 <doc> 1494 <![CDATA[Builds the graphs of objects that make up your application. The injector tracks the dependencies 1495 for each type and uses bindings to inject them. This is the core of Guice, although you rarely 1496 interact with it directly. This "behind-the-scenes" operation is what distinguishes dependency 1497 injection from its cousin, the service locator pattern. 1498 1499 <p>Contains several default bindings: 1500 1501 <ul> 1502 <li>This {@link Injector} instance itself 1503 <li>A {@code Provider<T>} for each binding of type {@code T} 1504 <li>The {@link java.util.logging.Logger} for the class being injected 1505 <li>The {@link Stage} in which the Injector was created 1506 </ul> 1507 1508 Injectors are created using the facade class {@link Guice}. 1509 1510 <p>An injector can also {@link #injectMembers(Object) inject the dependencies} of 1511 already-constructed instances. This can be used to interoperate with objects created by other 1512 frameworks or services. 1513 1514 <p>Injectors can be {@link #createChildInjector(Iterable) hierarchical}. Child injectors inherit 1515 the configuration of their parent injectors, but the converse does not hold. 1516 1517 <p>The injector's {@link #getBindings() internal bindings} are available for introspection. This 1518 enables tools and extensions to operate on an injector reflectively. 1519 1520 @author crazybob (a] google.com (Bob Lee) 1521 @author jessewilson (a] google.com (Jesse Wilson)]]> 1522 </doc> 1523 </interface> 1524 <!-- end interface com.google.inject.Injector --> 1525 <!-- start class com.google.inject.Key --> 1526 <class name="Key" extends="java.lang.Object" 1527 abstract="false" 1528 static="false" final="false" visibility="public" 1529 deprecated="not deprecated"> 1530 <constructor name="Key" type="java.lang.Class<? extends java.lang.annotation.Annotation>" 1531 static="false" final="false" visibility="protected" 1532 deprecated="not deprecated"> 1533 <doc> 1534 <![CDATA[Constructs a new key. Derives the type from this class's type parameter. 1535 1536 <p>Clients create an empty anonymous subclass. Doing so embeds the type 1537 parameter in the anonymous class's type hierarchy so we can reconstitute it 1538 at runtime despite erasure. 1539 1540 <p>Example usage for a binding of type {@code Foo} annotated with 1541 {@code @Bar}: 1542 1543 <p>{@code new Key<Foo>(Bar.class) {}}.]]> 1544 </doc> 1545 </constructor> 1546 <constructor name="Key" type="java.lang.annotation.Annotation" 1547 static="false" final="false" visibility="protected" 1548 deprecated="not deprecated"> 1549 <doc> 1550 <![CDATA[Constructs a new key. Derives the type from this class's type parameter. 1551 1552 <p>Clients create an empty anonymous subclass. Doing so embeds the type 1553 parameter in the anonymous class's type hierarchy so we can reconstitute it 1554 at runtime despite erasure. 1555 1556 <p>Example usage for a binding of type {@code Foo} annotated with 1557 {@code @Bar}: 1558 1559 <p>{@code new Key<Foo>(new Bar()) {}}.]]> 1560 </doc> 1561 </constructor> 1562 <constructor name="Key" 1563 static="false" final="false" visibility="protected" 1564 deprecated="not deprecated"> 1565 <doc> 1566 <![CDATA[Constructs a new key. Derives the type from this class's type parameter. 1567 1568 <p>Clients create an empty anonymous subclass. Doing so embeds the type 1569 parameter in the anonymous class's type hierarchy so we can reconstitute it 1570 at runtime despite erasure. 1571 1572 <p>Example usage for a binding of type {@code Foo}: 1573 1574 <p>{@code new Key<Foo>() {}}.]]> 1575 </doc> 1576 </constructor> 1577 <method name="getTypeLiteral" return="com.google.inject.TypeLiteral<T>" 1578 abstract="false" native="false" synchronized="false" 1579 static="false" final="true" visibility="public" 1580 deprecated="not deprecated"> 1581 <doc> 1582 <![CDATA[Gets the key type.]]> 1583 </doc> 1584 </method> 1585 <method name="getAnnotationType" return="java.lang.Class<? extends java.lang.annotation.Annotation>" 1586 abstract="false" native="false" synchronized="false" 1587 static="false" final="true" visibility="public" 1588 deprecated="not deprecated"> 1589 <doc> 1590 <![CDATA[Gets the annotation type.]]> 1591 </doc> 1592 </method> 1593 <method name="getAnnotation" return="java.lang.annotation.Annotation" 1594 abstract="false" native="false" synchronized="false" 1595 static="false" final="true" visibility="public" 1596 deprecated="not deprecated"> 1597 <doc> 1598 <![CDATA[Gets the annotation.]]> 1599 </doc> 1600 </method> 1601 <method name="equals" return="boolean" 1602 abstract="false" native="false" synchronized="false" 1603 static="false" final="true" visibility="public" 1604 deprecated="not deprecated"> 1605 <param name="o" type="java.lang.Object"/> 1606 </method> 1607 <method name="hashCode" return="int" 1608 abstract="false" native="false" synchronized="false" 1609 static="false" final="true" visibility="public" 1610 deprecated="not deprecated"> 1611 </method> 1612 <method name="toString" return="java.lang.String" 1613 abstract="false" native="false" synchronized="false" 1614 static="false" final="true" visibility="public" 1615 deprecated="not deprecated"> 1616 </method> 1617 <method name="get" return="com.google.inject.Key<T>" 1618 abstract="false" native="false" synchronized="false" 1619 static="true" final="false" visibility="public" 1620 deprecated="not deprecated"> 1621 <param name="type" type="java.lang.Class<T>"/> 1622 <doc> 1623 <![CDATA[Gets a key for an injection type.]]> 1624 </doc> 1625 </method> 1626 <method name="get" return="com.google.inject.Key<T>" 1627 abstract="false" native="false" synchronized="false" 1628 static="true" final="false" visibility="public" 1629 deprecated="not deprecated"> 1630 <param name="type" type="java.lang.Class<T>"/> 1631 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 1632 <doc> 1633 <![CDATA[Gets a key for an injection type and an annotation type.]]> 1634 </doc> 1635 </method> 1636 <method name="get" return="com.google.inject.Key<T>" 1637 abstract="false" native="false" synchronized="false" 1638 static="true" final="false" visibility="public" 1639 deprecated="not deprecated"> 1640 <param name="type" type="java.lang.Class<T>"/> 1641 <param name="annotation" type="java.lang.annotation.Annotation"/> 1642 <doc> 1643 <![CDATA[Gets a key for an injection type and an annotation.]]> 1644 </doc> 1645 </method> 1646 <method name="get" return="com.google.inject.Key<?>" 1647 abstract="false" native="false" synchronized="false" 1648 static="true" final="false" visibility="public" 1649 deprecated="not deprecated"> 1650 <param name="type" type="java.lang.reflect.Type"/> 1651 <doc> 1652 <![CDATA[Gets a key for an injection type.]]> 1653 </doc> 1654 </method> 1655 <method name="get" return="com.google.inject.Key<?>" 1656 abstract="false" native="false" synchronized="false" 1657 static="true" final="false" visibility="public" 1658 deprecated="not deprecated"> 1659 <param name="type" type="java.lang.reflect.Type"/> 1660 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 1661 <doc> 1662 <![CDATA[Gets a key for an injection type and an annotation type.]]> 1663 </doc> 1664 </method> 1665 <method name="get" return="com.google.inject.Key<?>" 1666 abstract="false" native="false" synchronized="false" 1667 static="true" final="false" visibility="public" 1668 deprecated="not deprecated"> 1669 <param name="type" type="java.lang.reflect.Type"/> 1670 <param name="annotation" type="java.lang.annotation.Annotation"/> 1671 <doc> 1672 <![CDATA[Gets a key for an injection type and an annotation.]]> 1673 </doc> 1674 </method> 1675 <method name="get" return="com.google.inject.Key<T>" 1676 abstract="false" native="false" synchronized="false" 1677 static="true" final="false" visibility="public" 1678 deprecated="not deprecated"> 1679 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 1680 <doc> 1681 <![CDATA[Gets a key for an injection type.]]> 1682 </doc> 1683 </method> 1684 <method name="get" return="com.google.inject.Key<T>" 1685 abstract="false" native="false" synchronized="false" 1686 static="true" final="false" visibility="public" 1687 deprecated="not deprecated"> 1688 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 1689 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 1690 <doc> 1691 <![CDATA[Gets a key for an injection type and an annotation type.]]> 1692 </doc> 1693 </method> 1694 <method name="get" return="com.google.inject.Key<T>" 1695 abstract="false" native="false" synchronized="false" 1696 static="true" final="false" visibility="public" 1697 deprecated="not deprecated"> 1698 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 1699 <param name="annotation" type="java.lang.annotation.Annotation"/> 1700 <doc> 1701 <![CDATA[Gets a key for an injection type and an annotation.]]> 1702 </doc> 1703 </method> 1704 <method name="ofType" return="com.google.inject.Key<T>" 1705 abstract="false" native="false" synchronized="false" 1706 static="false" final="false" visibility="public" 1707 deprecated="not deprecated"> 1708 <param name="type" type="java.lang.Class<T>"/> 1709 <doc> 1710 <![CDATA[Returns a new key of the specified type with the same annotation as this 1711 key. 1712 1713 @since 3.0]]> 1714 </doc> 1715 </method> 1716 <method name="ofType" return="com.google.inject.Key<?>" 1717 abstract="false" native="false" synchronized="false" 1718 static="false" final="false" visibility="public" 1719 deprecated="not deprecated"> 1720 <param name="type" type="java.lang.reflect.Type"/> 1721 <doc> 1722 <![CDATA[Returns a new key of the specified type with the same annotation as this 1723 key. 1724 1725 @since 3.0]]> 1726 </doc> 1727 </method> 1728 <method name="ofType" return="com.google.inject.Key<T>" 1729 abstract="false" native="false" synchronized="false" 1730 static="false" final="false" visibility="public" 1731 deprecated="not deprecated"> 1732 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 1733 <doc> 1734 <![CDATA[Returns a new key of the specified type with the same annotation as this 1735 key. 1736 1737 @since 3.0]]> 1738 </doc> 1739 </method> 1740 <method name="hasAttributes" return="boolean" 1741 abstract="false" native="false" synchronized="false" 1742 static="false" final="false" visibility="public" 1743 deprecated="not deprecated"> 1744 <doc> 1745 <![CDATA[Returns true if this key has annotation attributes. 1746 1747 @since 3.0]]> 1748 </doc> 1749 </method> 1750 <method name="withoutAttributes" return="com.google.inject.Key<T>" 1751 abstract="false" native="false" synchronized="false" 1752 static="false" final="false" visibility="public" 1753 deprecated="not deprecated"> 1754 <doc> 1755 <![CDATA[Returns this key without annotation attributes, i.e. with only the 1756 annotation type. 1757 1758 @since 3.0]]> 1759 </doc> 1760 </method> 1761 <doc> 1762 <![CDATA[Binding key consisting of an injection type and an optional annotation. 1763 Matches the type and annotation at a point of injection. 1764 1765 <p>For example, {@code Key.get(Service.class, Transactional.class)} will 1766 match: 1767 1768 <pre> 1769 {@literal @}Inject 1770 public void setService({@literal @}Transactional Service service) { 1771 ... 1772 } 1773 </pre> 1774 1775 <p>{@code Key} supports generic types via subclassing just like {@link 1776 TypeLiteral}. 1777 1778 <p>Keys do not differentiate between primitive types (int, char, etc.) and 1779 their correpsonding wrapper types (Integer, Character, etc.). Primitive 1780 types will be replaced with their wrapper types when keys are created. 1781 1782 @author crazybob (a] google.com (Bob Lee)]]> 1783 </doc> 1784 </class> 1785 <!-- end class com.google.inject.Key --> 1786 <!-- start interface com.google.inject.MembersInjector --> 1787 <interface name="MembersInjector" abstract="true" 1788 static="false" final="false" visibility="public" 1789 deprecated="not deprecated"> 1790 <method name="injectMembers" 1791 abstract="true" native="false" synchronized="false" 1792 static="false" final="false" visibility="public" 1793 deprecated="not deprecated"> 1794 <param name="instance" type="T"/> 1795 <doc> 1796 <![CDATA[Injects dependencies into the fields and methods of {@code instance}. Ignores the presence or 1797 absence of an injectable constructor. 1798 1799 <p>Whenever Guice creates an instance, it performs this injection automatically (after first 1800 performing constructor injection), so if you're able to let Guice create all your objects for 1801 you, you'll never need to use this method. 1802 1803 @param instance to inject members on. May be {@code null}.]]> 1804 </doc> 1805 </method> 1806 <doc> 1807 <![CDATA[Injects dependencies into the fields and methods on instances of type {@code T}. Ignores the 1808 presence or absence of an injectable constructor. 1809 1810 @param <T> type to inject members of 1811 1812 @author crazybob (a] google.com (Bob Lee) 1813 @author jessewilson (a] google.com (Jesse Wilson) 1814 @since 2.0]]> 1815 </doc> 1816 </interface> 1817 <!-- end interface com.google.inject.MembersInjector --> 1818 <!-- start interface com.google.inject.Module --> 1819 <interface name="Module" abstract="true" 1820 static="false" final="false" visibility="public" 1821 deprecated="not deprecated"> 1822 <method name="configure" 1823 abstract="true" native="false" synchronized="false" 1824 static="false" final="false" visibility="public" 1825 deprecated="not deprecated"> 1826 <param name="binder" type="com.google.inject.Binder"/> 1827 <doc> 1828 <![CDATA[Contributes bindings and other configurations for this module to {@code binder}. 1829 1830 <p><strong>Do not invoke this method directly</strong> to install submodules. Instead use 1831 {@link Binder#install(Module)}, which ensures that {@link Provides provider methods} are 1832 discovered.]]> 1833 </doc> 1834 </method> 1835 <doc> 1836 <![CDATA[A module contributes configuration information, typically interface 1837 bindings, which will be used to create an {@link Injector}. A Guice-based 1838 application is ultimately composed of little more than a set of 1839 {@code Module}s and some bootstrapping code. 1840 1841 <p>Your Module classes can use a more streamlined syntax by extending 1842 {@link AbstractModule} rather than implementing this interface directly. 1843 1844 <p>In addition to the bindings configured via {@link #configure}, bindings 1845 will be created for all methods annotated with {@literal @}{@link Provides}. 1846 Use scope and binding annotations on these methods to configure the 1847 bindings.]]> 1848 </doc> 1849 </interface> 1850 <!-- end interface com.google.inject.Module --> 1851 <!-- start class com.google.inject.OutOfScopeException --> 1852 <class name="OutOfScopeException" extends="java.lang.RuntimeException" 1853 abstract="false" 1854 static="false" final="true" visibility="public" 1855 deprecated="not deprecated"> 1856 <constructor name="OutOfScopeException" type="java.lang.String" 1857 static="false" final="false" visibility="public" 1858 deprecated="not deprecated"> 1859 </constructor> 1860 <constructor name="OutOfScopeException" type="java.lang.String, java.lang.Throwable" 1861 static="false" final="false" visibility="public" 1862 deprecated="not deprecated"> 1863 </constructor> 1864 <constructor name="OutOfScopeException" type="java.lang.Throwable" 1865 static="false" final="false" visibility="public" 1866 deprecated="not deprecated"> 1867 </constructor> 1868 <doc> 1869 <![CDATA[Thrown from {@link Provider#get} when an attempt is made to access a scoped 1870 object while the scope in question is not currently active. 1871 1872 @author kevinb (a] google.com (Kevin Bourrillion) 1873 @since 2.0]]> 1874 </doc> 1875 </class> 1876 <!-- end class com.google.inject.OutOfScopeException --> 1877 <!-- start interface com.google.inject.PrivateBinder --> 1878 <interface name="PrivateBinder" abstract="true" 1879 static="false" final="false" visibility="public" 1880 deprecated="not deprecated"> 1881 <implements name="com.google.inject.Binder"/> 1882 <method name="expose" 1883 abstract="true" native="false" synchronized="false" 1884 static="false" final="false" visibility="public" 1885 deprecated="not deprecated"> 1886 <param name="key" type="com.google.inject.Key<?>"/> 1887 <doc> 1888 <![CDATA[Makes the binding for {@code key} available to the enclosing environment]]> 1889 </doc> 1890 </method> 1891 <method name="expose" return="com.google.inject.binder.AnnotatedElementBuilder" 1892 abstract="true" native="false" synchronized="false" 1893 static="false" final="false" visibility="public" 1894 deprecated="not deprecated"> 1895 <param name="type" type="java.lang.Class<?>"/> 1896 <doc> 1897 <![CDATA[Makes a binding for {@code type} available to the enclosing environment. Use {@link 1898 com.google.inject.binder.AnnotatedElementBuilder#annotatedWith(Class) annotatedWith()} to expose {@code type} with a 1899 binding annotation.]]> 1900 </doc> 1901 </method> 1902 <method name="expose" return="com.google.inject.binder.AnnotatedElementBuilder" 1903 abstract="true" native="false" synchronized="false" 1904 static="false" final="false" visibility="public" 1905 deprecated="not deprecated"> 1906 <param name="type" type="com.google.inject.TypeLiteral<?>"/> 1907 <doc> 1908 <![CDATA[Makes a binding for {@code type} available to the enclosing environment. Use {@link 1909 AnnotatedElementBuilder#annotatedWith(Class) annotatedWith()} to expose {@code type} with a 1910 binding annotation.]]> 1911 </doc> 1912 </method> 1913 <method name="withSource" return="com.google.inject.PrivateBinder" 1914 abstract="true" native="false" synchronized="false" 1915 static="false" final="false" visibility="public" 1916 deprecated="not deprecated"> 1917 <param name="source" type="java.lang.Object"/> 1918 </method> 1919 <method name="skipSources" return="com.google.inject.PrivateBinder" 1920 abstract="true" native="false" synchronized="false" 1921 static="false" final="false" visibility="public" 1922 deprecated="not deprecated"> 1923 <param name="classesToSkip" type="java.lang.Class[]"/> 1924 </method> 1925 <doc> 1926 <![CDATA[Returns a binder whose configuration information is hidden from its environment by default. See 1927 {@link com.google.inject.PrivateModule PrivateModule} for details. 1928 1929 @author jessewilson (a] google.com (Jesse Wilson) 1930 @since 2.0]]> 1931 </doc> 1932 </interface> 1933 <!-- end interface com.google.inject.PrivateBinder --> 1934 <!-- start class com.google.inject.PrivateModule --> 1935 <class name="PrivateModule" extends="java.lang.Object" 1936 abstract="true" 1937 static="false" final="false" visibility="public" 1938 deprecated="not deprecated"> 1939 <implements name="com.google.inject.Module"/> 1940 <constructor name="PrivateModule" 1941 static="false" final="false" visibility="public" 1942 deprecated="not deprecated"> 1943 </constructor> 1944 <method name="configure" 1945 abstract="false" native="false" synchronized="true" 1946 static="false" final="true" visibility="public" 1947 deprecated="not deprecated"> 1948 <param name="binder" type="com.google.inject.Binder"/> 1949 </method> 1950 <method name="configure" 1951 abstract="true" native="false" synchronized="false" 1952 static="false" final="false" visibility="protected" 1953 deprecated="not deprecated"> 1954 <doc> 1955 <![CDATA[Creates bindings and other configurations private to this module. Use {@link #expose(Class) 1956 expose()} to make the bindings in this module available externally.]]> 1957 </doc> 1958 </method> 1959 <method name="expose" 1960 abstract="false" native="false" synchronized="false" 1961 static="false" final="true" visibility="protected" 1962 deprecated="not deprecated"> 1963 <param name="key" type="com.google.inject.Key<T>"/> 1964 <doc> 1965 <![CDATA[Makes the binding for {@code key} available to other modules and the injector.]]> 1966 </doc> 1967 </method> 1968 <method name="expose" return="com.google.inject.binder.AnnotatedElementBuilder" 1969 abstract="false" native="false" synchronized="false" 1970 static="false" final="true" visibility="protected" 1971 deprecated="not deprecated"> 1972 <param name="type" type="java.lang.Class<?>"/> 1973 <doc> 1974 <![CDATA[Makes a binding for {@code type} available to other modules and the injector. Use {@link 1975 AnnotatedElementBuilder#annotatedWith(Class) annotatedWith()} to expose {@code type} with a 1976 binding annotation.]]> 1977 </doc> 1978 </method> 1979 <method name="expose" return="com.google.inject.binder.AnnotatedElementBuilder" 1980 abstract="false" native="false" synchronized="false" 1981 static="false" final="true" visibility="protected" 1982 deprecated="not deprecated"> 1983 <param name="type" type="com.google.inject.TypeLiteral<?>"/> 1984 <doc> 1985 <![CDATA[Makes a binding for {@code type} available to other modules and the injector. Use {@link 1986 AnnotatedElementBuilder#annotatedWith(Class) annotatedWith()} to expose {@code type} with a 1987 binding annotation.]]> 1988 </doc> 1989 </method> 1990 <method name="binder" return="com.google.inject.PrivateBinder" 1991 abstract="false" native="false" synchronized="false" 1992 static="false" final="true" visibility="protected" 1993 deprecated="not deprecated"> 1994 <doc> 1995 <![CDATA[Returns the current binder.]]> 1996 </doc> 1997 </method> 1998 <method name="bindScope" 1999 abstract="false" native="false" synchronized="false" 2000 static="false" final="true" visibility="protected" 2001 deprecated="not deprecated"> 2002 <param name="scopeAnnotation" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 2003 <param name="scope" type="com.google.inject.Scope"/> 2004 <doc> 2005 <![CDATA[@see Binder#bindScope(Class, Scope)]]> 2006 </doc> 2007 </method> 2008 <method name="bind" return="com.google.inject.binder.LinkedBindingBuilder<T>" 2009 abstract="false" native="false" synchronized="false" 2010 static="false" final="true" visibility="protected" 2011 deprecated="not deprecated"> 2012 <param name="key" type="com.google.inject.Key<T>"/> 2013 <doc> 2014 <![CDATA[@see Binder#bind(Key)]]> 2015 </doc> 2016 </method> 2017 <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder<T>" 2018 abstract="false" native="false" synchronized="false" 2019 static="false" final="true" visibility="protected" 2020 deprecated="not deprecated"> 2021 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 2022 <doc> 2023 <![CDATA[@see Binder#bind(TypeLiteral)]]> 2024 </doc> 2025 </method> 2026 <method name="bind" return="com.google.inject.binder.AnnotatedBindingBuilder<T>" 2027 abstract="false" native="false" synchronized="false" 2028 static="false" final="true" visibility="protected" 2029 deprecated="not deprecated"> 2030 <param name="clazz" type="java.lang.Class<T>"/> 2031 <doc> 2032 <![CDATA[@see Binder#bind(Class)]]> 2033 </doc> 2034 </method> 2035 <method name="bindConstant" return="com.google.inject.binder.AnnotatedConstantBindingBuilder" 2036 abstract="false" native="false" synchronized="false" 2037 static="false" final="true" visibility="protected" 2038 deprecated="not deprecated"> 2039 <doc> 2040 <![CDATA[@see Binder#bindConstant()]]> 2041 </doc> 2042 </method> 2043 <method name="install" 2044 abstract="false" native="false" synchronized="false" 2045 static="false" final="true" visibility="protected" 2046 deprecated="not deprecated"> 2047 <param name="module" type="com.google.inject.Module"/> 2048 <doc> 2049 <![CDATA[@see Binder#install(Module)]]> 2050 </doc> 2051 </method> 2052 <method name="addError" 2053 abstract="false" native="false" synchronized="false" 2054 static="false" final="true" visibility="protected" 2055 deprecated="not deprecated"> 2056 <param name="message" type="java.lang.String"/> 2057 <param name="arguments" type="java.lang.Object[]"/> 2058 <doc> 2059 <![CDATA[@see Binder#addError(String, Object[])]]> 2060 </doc> 2061 </method> 2062 <method name="addError" 2063 abstract="false" native="false" synchronized="false" 2064 static="false" final="true" visibility="protected" 2065 deprecated="not deprecated"> 2066 <param name="t" type="java.lang.Throwable"/> 2067 <doc> 2068 <![CDATA[@see Binder#addError(Throwable)]]> 2069 </doc> 2070 </method> 2071 <method name="addError" 2072 abstract="false" native="false" synchronized="false" 2073 static="false" final="true" visibility="protected" 2074 deprecated="not deprecated"> 2075 <param name="message" type="com.google.inject.spi.Message"/> 2076 <doc> 2077 <![CDATA[@see Binder#addError(Message)]]> 2078 </doc> 2079 </method> 2080 <method name="requestInjection" 2081 abstract="false" native="false" synchronized="false" 2082 static="false" final="true" visibility="protected" 2083 deprecated="not deprecated"> 2084 <param name="instance" type="java.lang.Object"/> 2085 <doc> 2086 <![CDATA[@see Binder#requestInjection(Object)]]> 2087 </doc> 2088 </method> 2089 <method name="requestStaticInjection" 2090 abstract="false" native="false" synchronized="false" 2091 static="false" final="true" visibility="protected" 2092 deprecated="not deprecated"> 2093 <param name="types" type="java.lang.Class[]"/> 2094 <doc> 2095 <![CDATA[@see Binder#requestStaticInjection(Class[])]]> 2096 </doc> 2097 </method> 2098 <method name="bindInterceptor" 2099 abstract="false" native="false" synchronized="false" 2100 static="false" final="true" visibility="protected" 2101 deprecated="not deprecated"> 2102 <param name="classMatcher" type="com.google.inject.matcher.Matcher<? super java.lang.Class<?>>"/> 2103 <param name="methodMatcher" type="com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>"/> 2104 <param name="interceptors" type="org.aopalliance.intercept.MethodInterceptor[]"/> 2105 <doc> 2106 <![CDATA[@see Binder#bindInterceptor(com.google.inject.matcher.Matcher, com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor[])]]> 2107 </doc> 2108 </method> 2109 <method name="requireBinding" 2110 abstract="false" native="false" synchronized="false" 2111 static="false" final="true" visibility="protected" 2112 deprecated="not deprecated"> 2113 <param name="key" type="com.google.inject.Key<?>"/> 2114 <doc> 2115 <![CDATA[Instructs Guice to require a binding to the given key.]]> 2116 </doc> 2117 </method> 2118 <method name="requireBinding" 2119 abstract="false" native="false" synchronized="false" 2120 static="false" final="true" visibility="protected" 2121 deprecated="not deprecated"> 2122 <param name="type" type="java.lang.Class<?>"/> 2123 <doc> 2124 <![CDATA[Instructs Guice to require a binding to the given type.]]> 2125 </doc> 2126 </method> 2127 <method name="getProvider" return="com.google.inject.Provider<T>" 2128 abstract="false" native="false" synchronized="false" 2129 static="false" final="true" visibility="protected" 2130 deprecated="not deprecated"> 2131 <param name="key" type="com.google.inject.Key<T>"/> 2132 <doc> 2133 <![CDATA[@see Binder#getProvider(Key)]]> 2134 </doc> 2135 </method> 2136 <method name="getProvider" return="com.google.inject.Provider<T>" 2137 abstract="false" native="false" synchronized="false" 2138 static="false" final="true" visibility="protected" 2139 deprecated="not deprecated"> 2140 <param name="type" type="java.lang.Class<T>"/> 2141 <doc> 2142 <![CDATA[@see Binder#getProvider(Class)]]> 2143 </doc> 2144 </method> 2145 <method name="convertToTypes" 2146 abstract="false" native="false" synchronized="false" 2147 static="false" final="true" visibility="protected" 2148 deprecated="not deprecated"> 2149 <param name="typeMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>"/> 2150 <param name="converter" type="com.google.inject.spi.TypeConverter"/> 2151 <doc> 2152 <![CDATA[@see Binder#convertToTypes(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeConverter)]]> 2153 </doc> 2154 </method> 2155 <method name="currentStage" return="com.google.inject.Stage" 2156 abstract="false" native="false" synchronized="false" 2157 static="false" final="true" visibility="protected" 2158 deprecated="not deprecated"> 2159 <doc> 2160 <![CDATA[@see Binder#currentStage()]]> 2161 </doc> 2162 </method> 2163 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 2164 abstract="false" native="false" synchronized="false" 2165 static="false" final="false" visibility="protected" 2166 deprecated="not deprecated"> 2167 <param name="type" type="java.lang.Class<T>"/> 2168 <doc> 2169 <![CDATA[@see Binder#getMembersInjector(Class)]]> 2170 </doc> 2171 </method> 2172 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 2173 abstract="false" native="false" synchronized="false" 2174 static="false" final="false" visibility="protected" 2175 deprecated="not deprecated"> 2176 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 2177 <doc> 2178 <![CDATA[@see Binder#getMembersInjector(TypeLiteral)]]> 2179 </doc> 2180 </method> 2181 <method name="bindListener" 2182 abstract="false" native="false" synchronized="false" 2183 static="false" final="false" visibility="protected" 2184 deprecated="not deprecated"> 2185 <param name="typeMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>"/> 2186 <param name="listener" type="com.google.inject.spi.TypeListener"/> 2187 <doc> 2188 <![CDATA[@see Binder#bindListener(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeListener)]]> 2189 </doc> 2190 </method> 2191 <method name="bindListener" 2192 abstract="false" native="false" synchronized="false" 2193 static="false" final="false" visibility="protected" 2194 deprecated="not deprecated"> 2195 <param name="bindingMatcher" type="com.google.inject.matcher.Matcher<? super com.google.inject.Binding<?>>"/> 2196 <param name="listeners" type="com.google.inject.spi.ProvisionListener[]"/> 2197 <doc> 2198 <![CDATA[@see Binder#bindListener(Matcher, ProvisionListener...)]]> 2199 </doc> 2200 </method> 2201 <doc> 2202 <![CDATA[A module whose configuration information is hidden from its environment by default. Only bindings 2203 that are explicitly exposed will be available to other modules and to the users of the injector. 2204 This module may expose the bindings it creates and the bindings of the modules it installs. 2205 2206 <p>A private module can be nested within a regular module or within another private module using 2207 {@link Binder#install install()}. Its bindings live in a new environment that inherits bindings, 2208 type converters, scopes, and interceptors from the surrounding ("parent") environment. When you 2209 nest multiple private modules, the result is a tree of environments where the injector's 2210 environment is the root. 2211 2212 <p>Guice EDSL bindings can be exposed with {@link #expose(Class) expose()}. {@literal @}{@link 2213 com.google.inject.Provides Provides} bindings can be exposed with the {@literal @}{@link 2214 Exposed} annotation: 2215 2216 <pre> 2217 public class FooBarBazModule extends PrivateModule { 2218 protected void configure() { 2219 bind(Foo.class).to(RealFoo.class); 2220 expose(Foo.class); 2221 2222 install(new TransactionalBarModule()); 2223 expose(Bar.class).annotatedWith(Transactional.class); 2224 2225 bind(SomeImplementationDetail.class); 2226 install(new MoreImplementationDetailsModule()); 2227 } 2228 2229 {@literal @}Provides {@literal @}Exposed 2230 public Baz provideBaz() { 2231 return new SuperBaz(); 2232 } 2233 } 2234 </pre> 2235 2236 <p>Private modules are implemented using {@link Injector#createChildInjector(Module[]) parent 2237 injectors}. When it can satisfy their dependencies, just-in-time bindings will be created in the 2238 root environment. Such bindings are shared among all environments in the tree. 2239 2240 <p>The scope of a binding is constrained to its environment. A singleton bound in a private 2241 module will be unique to its environment. But a binding for the same type in a different private 2242 module will yield a different instance. 2243 2244 <p>A shared binding that injects the {@code Injector} gets the root injector, which only has 2245 access to bindings in the root environment. An explicit binding that injects the {@code Injector} 2246 gets access to all bindings in the child environment. 2247 2248 <p>To promote a just-in-time binding to an explicit binding, bind it: 2249 <pre> 2250 bind(FooImpl.class); 2251 </pre> 2252 2253 @author jessewilson (a] google.com (Jesse Wilson) 2254 @since 2.0]]> 2255 </doc> 2256 </class> 2257 <!-- end class com.google.inject.PrivateModule --> 2258 <!-- start class com.google.inject.ProvidedBy --> 2259 <class name="ProvidedBy" abstract="true" 2260 static="false" final="false" visibility="public" 2261 deprecated="not deprecated"> 2262 <implements name="java.lang.annotation.Annotation"/> 2263 <doc> 2264 <![CDATA[A pointer to the default provider type for a type. 2265 2266 @author crazybob (a] google.com (Bob Lee)]]> 2267 </doc> 2268 </class> 2269 <!-- end class com.google.inject.ProvidedBy --> 2270 <!-- start interface com.google.inject.Provider --> 2271 <interface name="Provider" abstract="true" 2272 static="false" final="false" visibility="public" 2273 deprecated="not deprecated"> 2274 <implements name="javax.inject.Provider<T>"/> 2275 <method name="get" return="T" 2276 abstract="true" native="false" synchronized="false" 2277 static="false" final="false" visibility="public" 2278 deprecated="not deprecated"> 2279 <doc> 2280 <![CDATA[Provides an instance of {@code T}. Must never return {@code null}. 2281 2282 @throws OutOfScopeException when an attempt is made to access a scoped object while the scope 2283 in question is not currently active 2284 @throws ProvisionException if an instance cannot be provided. Such exceptions include messages 2285 and throwables to describe why provision failed.]]> 2286 </doc> 2287 </method> 2288 <doc> 2289 <![CDATA[An object capable of providing instances of type {@code T}. Providers are used in numerous ways 2290 by Guice: 2291 2292 <ul> 2293 <li>When the default means for obtaining instances (an injectable or parameterless constructor) 2294 is insufficient for a particular binding, the module can specify a custom {@code Provider} 2295 instead, to control exactly how Guice creates or obtains instances for the binding. 2296 2297 <li>An implementation class may always choose to have a {@code Provider<T>} instance injected, 2298 rather than having a {@code T} injected directly. This may give you access to multiple 2299 instances, instances you wish to safely mutate and discard, instances which are out of scope 2300 (e.g. using a {@code @RequestScoped} object from within a {@code @SessionScoped} object), or 2301 instances that will be initialized lazily. 2302 2303 <li>A custom {@link Scope} is implemented as a decorator of {@code Provider<T>}, which decides 2304 when to delegate to the backing provider and when to provide the instance some other way. 2305 2306 <li>The {@link Injector} offers access to the {@code Provider<T>} it uses to fulfill requests 2307 for a given key, via the {@link Injector#getProvider} methods. 2308 </ul> 2309 2310 @param <T> the type of object this provides 2311 2312 @author crazybob (a] google.com (Bob Lee)]]> 2313 </doc> 2314 </interface> 2315 <!-- end interface com.google.inject.Provider --> 2316 <!-- start class com.google.inject.Provides --> 2317 <class name="Provides" abstract="true" 2318 static="false" final="false" visibility="public" 2319 deprecated="not deprecated"> 2320 <implements name="java.lang.annotation.Annotation"/> 2321 <doc> 2322 <![CDATA[Annotates methods of a {@link Module} to create a provider method binding. The method's return 2323 type is bound to its returned value. Guice will pass dependencies to the method as parameters. 2324 2325 @author crazybob (a] google.com (Bob Lee) 2326 @since 2.0]]> 2327 </doc> 2328 </class> 2329 <!-- end class com.google.inject.Provides --> 2330 <!-- start class com.google.inject.ProvisionException --> 2331 <class name="ProvisionException" extends="java.lang.RuntimeException" 2332 abstract="false" 2333 static="false" final="true" visibility="public" 2334 deprecated="not deprecated"> 2335 <constructor name="ProvisionException" type="java.lang.Iterable<com.google.inject.spi.Message>" 2336 static="false" final="false" visibility="public" 2337 deprecated="not deprecated"> 2338 <doc> 2339 <![CDATA[Creates a ProvisionException containing {@code messages}.]]> 2340 </doc> 2341 </constructor> 2342 <constructor name="ProvisionException" type="java.lang.String, java.lang.Throwable" 2343 static="false" final="false" visibility="public" 2344 deprecated="not deprecated"> 2345 </constructor> 2346 <constructor name="ProvisionException" type="java.lang.String" 2347 static="false" final="false" visibility="public" 2348 deprecated="not deprecated"> 2349 </constructor> 2350 <method name="getErrorMessages" return="java.util.Collection<com.google.inject.spi.Message>" 2351 abstract="false" native="false" synchronized="false" 2352 static="false" final="false" visibility="public" 2353 deprecated="not deprecated"> 2354 <doc> 2355 <![CDATA[Returns messages for the errors that caused this exception.]]> 2356 </doc> 2357 </method> 2358 <method name="getMessage" return="java.lang.String" 2359 abstract="false" native="false" synchronized="false" 2360 static="false" final="false" visibility="public" 2361 deprecated="not deprecated"> 2362 </method> 2363 <doc> 2364 <![CDATA[Indicates that there was a runtime failure while providing an instance. 2365 2366 @author kevinb (a] google.com (Kevin Bourrillion) 2367 @author jessewilson (a] google.com (Jesse Wilson) 2368 @since 2.0]]> 2369 </doc> 2370 </class> 2371 <!-- end class com.google.inject.ProvisionException --> 2372 <!-- start interface com.google.inject.Scope --> 2373 <interface name="Scope" abstract="true" 2374 static="false" final="false" visibility="public" 2375 deprecated="not deprecated"> 2376 <method name="scope" return="com.google.inject.Provider<T>" 2377 abstract="true" native="false" synchronized="false" 2378 static="false" final="false" visibility="public" 2379 deprecated="not deprecated"> 2380 <param name="key" type="com.google.inject.Key<T>"/> 2381 <param name="unscoped" type="com.google.inject.Provider<T>"/> 2382 <doc> 2383 <![CDATA[Scopes a provider. The returned provider returns objects from this scope. 2384 If an object does not exist in this scope, the provider can use the given 2385 unscoped provider to retrieve one. 2386 2387 <p>Scope implementations are strongly encouraged to override 2388 {@link Object#toString} in the returned provider and include the backing 2389 provider's {@code toString()} output. 2390 2391 @param key binding key 2392 @param unscoped locates an instance when one doesn't already exist in this 2393 scope. 2394 @return a new provider which only delegates to the given unscoped provider 2395 when an instance of the requested object doesn't already exist in this 2396 scope]]> 2397 </doc> 2398 </method> 2399 <method name="toString" return="java.lang.String" 2400 abstract="true" native="false" synchronized="false" 2401 static="false" final="false" visibility="public" 2402 deprecated="not deprecated"> 2403 <doc> 2404 <![CDATA[A short but useful description of this scope. For comparison, the standard 2405 scopes that ship with guice use the descriptions 2406 {@code "Scopes.SINGLETON"}, {@code "ServletScopes.SESSION"} and 2407 {@code "ServletScopes.REQUEST"}.]]> 2408 </doc> 2409 </method> 2410 <doc> 2411 <![CDATA[A scope is a level of visibility that instances provided by Guice may have. 2412 By default, an instance created by the {@link Injector} has <i>no scope</i>, 2413 meaning it has no state from the framework's perspective -- the 2414 {@code Injector} creates it, injects it once into the class that required it, 2415 and then immediately forgets it. Associating a scope with a particular 2416 binding allows the created instance to be "remembered" and possibly used 2417 again for other injections. 2418 2419 <p>An example of a scope is {@link Scopes#SINGLETON}. 2420 2421 @author crazybob (a] google.com (Bob Lee)]]> 2422 </doc> 2423 </interface> 2424 <!-- end interface com.google.inject.Scope --> 2425 <!-- start class com.google.inject.ScopeAnnotation --> 2426 <class name="ScopeAnnotation" abstract="true" 2427 static="false" final="false" visibility="public" 2428 deprecated="not deprecated"> 2429 <implements name="java.lang.annotation.Annotation"/> 2430 <doc> 2431 <![CDATA[Annotates annotations which are used for scoping. Only one such annotation 2432 may apply to a single implementation class. You must also annotate scope 2433 annotations with {@code @Retention(RUNTIME)}. For example: 2434 2435 <pre> 2436 {@code @}Retention(RUNTIME) 2437 {@code @}Target(TYPE, METHOD) 2438 {@code @}ScopeAnnotation 2439 public {@code @}interface SessionScoped {} 2440 </pre> 2441 2442 @author crazybob (a] google.com (Bob Lee)]]> 2443 </doc> 2444 </class> 2445 <!-- end class com.google.inject.ScopeAnnotation --> 2446 <!-- start class com.google.inject.Scopes --> 2447 <class name="Scopes" extends="java.lang.Object" 2448 abstract="false" 2449 static="false" final="false" visibility="public" 2450 deprecated="not deprecated"> 2451 <method name="isSingleton" return="boolean" 2452 abstract="false" native="false" synchronized="false" 2453 static="true" final="false" visibility="public" 2454 deprecated="not deprecated"> 2455 <param name="binding" type="com.google.inject.Binding<?>"/> 2456 <doc> 2457 <![CDATA[Returns true if {@code binding} is singleton-scoped. If the binding is a {@link 2458 com.google.inject.spi.LinkedKeyBinding linked key binding} and belongs to an injector (ie. it 2459 was retrieved via {@link Injector#getBinding Injector.getBinding()}), then this method will 2460 also true if the target binding is singleton-scoped. 2461 2462 @since 3.0]]> 2463 </doc> 2464 </method> 2465 <method name="isScoped" return="boolean" 2466 abstract="false" native="false" synchronized="false" 2467 static="true" final="false" visibility="public" 2468 deprecated="not deprecated"> 2469 <param name="binding" type="com.google.inject.Binding<?>"/> 2470 <param name="scope" type="com.google.inject.Scope"/> 2471 <param name="scopeAnnotation" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 2472 <doc> 2473 <![CDATA[Returns true if {@code binding} has the given scope. If the binding is a {@link 2474 com.google.inject.spi.LinkedKeyBinding linked key binding} and belongs to an injector (ie. it 2475 was retrieved via {@link Injector#getBinding Injector.getBinding()}), then this method will 2476 also true if the target binding has the given scope. 2477 2478 @param binding binding to check 2479 @param scope scope implementation instance 2480 @param scopeAnnotation scope annotation class]]> 2481 </doc> 2482 </method> 2483 <method name="isCircularProxy" return="boolean" 2484 abstract="false" native="false" synchronized="false" 2485 static="true" final="false" visibility="public" 2486 deprecated="not deprecated"> 2487 <param name="object" type="java.lang.Object"/> 2488 <doc> 2489 <![CDATA[Returns true if the object is a proxy for a circular dependency, 2490 constructed by Guice because it encountered a circular dependency. Scope 2491 implementations should be careful to <b>not cache circular proxies</b>, 2492 because the proxies are not intended for general purpose use. (They are 2493 designed just to fulfill the immediate injection, not all injections. 2494 Caching them can lead to IllegalArgumentExceptions or ClassCastExceptions.)]]> 2495 </doc> 2496 </method> 2497 <field name="SINGLETON" type="com.google.inject.Scope" 2498 transient="false" volatile="false" 2499 static="true" final="true" visibility="public" 2500 deprecated="not deprecated"> 2501 <doc> 2502 <![CDATA[One instance per {@link Injector}. Also see {@code @}{@link Singleton}.]]> 2503 </doc> 2504 </field> 2505 <field name="NO_SCOPE" type="com.google.inject.Scope" 2506 transient="false" volatile="false" 2507 static="true" final="true" visibility="public" 2508 deprecated="not deprecated"> 2509 <doc> 2510 <![CDATA[No scope; the same as not applying any scope at all. Each time the 2511 Injector obtains an instance of an object with "no scope", it injects this 2512 instance then immediately forgets it. When the next request for the same 2513 binding arrives it will need to obtain the instance over again. 2514 2515 <p>This exists only in case a class has been annotated with a scope 2516 annotation such as {@link Singleton @Singleton}, and you need to override 2517 this to "no scope" in your binding. 2518 2519 @since 2.0]]> 2520 </doc> 2521 </field> 2522 <doc> 2523 <![CDATA[Built-in scope implementations. 2524 2525 @author crazybob (a] google.com (Bob Lee)]]> 2526 </doc> 2527 </class> 2528 <!-- end class com.google.inject.Scopes --> 2529 <!-- start class com.google.inject.Singleton --> 2530 <class name="Singleton" abstract="true" 2531 static="false" final="false" visibility="public" 2532 deprecated="not deprecated"> 2533 <implements name="java.lang.annotation.Annotation"/> 2534 <doc> 2535 <![CDATA[Apply this to implementation classes when you want only one instance 2536 (per {@link Injector}) to be reused for all injections for that binding. 2537 2538 @author crazybob (a] google.com (Bob Lee)]]> 2539 </doc> 2540 </class> 2541 <!-- end class com.google.inject.Singleton --> 2542 <!-- start class com.google.inject.Stage --> 2543 <class name="Stage" extends="java.lang.Enum<com.google.inject.Stage>" 2544 abstract="false" 2545 static="false" final="true" visibility="public" 2546 deprecated="not deprecated"> 2547 <method name="values" return="com.google.inject.Stage[]" 2548 abstract="false" native="false" synchronized="false" 2549 static="true" final="false" visibility="public" 2550 deprecated="not deprecated"> 2551 </method> 2552 <method name="valueOf" return="com.google.inject.Stage" 2553 abstract="false" native="false" synchronized="false" 2554 static="true" final="false" visibility="public" 2555 deprecated="not deprecated"> 2556 <param name="name" type="java.lang.String"/> 2557 </method> 2558 <doc> 2559 <![CDATA[The stage we're running in. 2560 2561 @author crazybob (a] google.com (Bob Lee)]]> 2562 </doc> 2563 </class> 2564 <!-- end class com.google.inject.Stage --> 2565 <!-- start class com.google.inject.TypeLiteral --> 2566 <class name="TypeLiteral" extends="java.lang.Object" 2567 abstract="false" 2568 static="false" final="false" visibility="public" 2569 deprecated="not deprecated"> 2570 <constructor name="TypeLiteral" 2571 static="false" final="false" visibility="protected" 2572 deprecated="not deprecated"> 2573 <doc> 2574 <![CDATA[Constructs a new type literal. Derives represented class from type 2575 parameter. 2576 2577 <p>Clients create an empty anonymous subclass. Doing so embeds the type 2578 parameter in the anonymous class's type hierarchy so we can reconstitute it 2579 at runtime despite erasure.]]> 2580 </doc> 2581 </constructor> 2582 <method name="getRawType" return="java.lang.Class<? super T>" 2583 abstract="false" native="false" synchronized="false" 2584 static="false" final="true" visibility="public" 2585 deprecated="not deprecated"> 2586 <doc> 2587 <![CDATA[Returns the raw (non-generic) type for this type. 2588 2589 @since 2.0]]> 2590 </doc> 2591 </method> 2592 <method name="getType" return="java.lang.reflect.Type" 2593 abstract="false" native="false" synchronized="false" 2594 static="false" final="true" visibility="public" 2595 deprecated="not deprecated"> 2596 <doc> 2597 <![CDATA[Gets underlying {@code Type} instance.]]> 2598 </doc> 2599 </method> 2600 <method name="hashCode" return="int" 2601 abstract="false" native="false" synchronized="false" 2602 static="false" final="true" visibility="public" 2603 deprecated="not deprecated"> 2604 </method> 2605 <method name="equals" return="boolean" 2606 abstract="false" native="false" synchronized="false" 2607 static="false" final="true" visibility="public" 2608 deprecated="not deprecated"> 2609 <param name="o" type="java.lang.Object"/> 2610 </method> 2611 <method name="toString" return="java.lang.String" 2612 abstract="false" native="false" synchronized="false" 2613 static="false" final="true" visibility="public" 2614 deprecated="not deprecated"> 2615 </method> 2616 <method name="get" return="com.google.inject.TypeLiteral<?>" 2617 abstract="false" native="false" synchronized="false" 2618 static="true" final="false" visibility="public" 2619 deprecated="not deprecated"> 2620 <param name="type" type="java.lang.reflect.Type"/> 2621 <doc> 2622 <![CDATA[Gets type literal for the given {@code Type} instance.]]> 2623 </doc> 2624 </method> 2625 <method name="get" return="com.google.inject.TypeLiteral<T>" 2626 abstract="false" native="false" synchronized="false" 2627 static="true" final="false" visibility="public" 2628 deprecated="not deprecated"> 2629 <param name="type" type="java.lang.Class<T>"/> 2630 <doc> 2631 <![CDATA[Gets type literal for the given {@code Class} instance.]]> 2632 </doc> 2633 </method> 2634 <method name="getSupertype" return="com.google.inject.TypeLiteral<?>" 2635 abstract="false" native="false" synchronized="false" 2636 static="false" final="false" visibility="public" 2637 deprecated="not deprecated"> 2638 <param name="supertype" type="java.lang.Class<?>"/> 2639 <doc> 2640 <![CDATA[Returns the generic form of {@code supertype}. For example, if this is {@code 2641 ArrayList<String>}, this returns {@code Iterable<String>} given the input {@code 2642 Iterable.class}. 2643 2644 @param supertype a superclass of, or interface implemented by, this. 2645 @since 2.0]]> 2646 </doc> 2647 </method> 2648 <method name="getFieldType" return="com.google.inject.TypeLiteral<?>" 2649 abstract="false" native="false" synchronized="false" 2650 static="false" final="false" visibility="public" 2651 deprecated="not deprecated"> 2652 <param name="field" type="java.lang.reflect.Field"/> 2653 <doc> 2654 <![CDATA[Returns the resolved generic type of {@code field}. 2655 2656 @param field a field defined by this or any superclass. 2657 @since 2.0]]> 2658 </doc> 2659 </method> 2660 <method name="getParameterTypes" return="java.util.List<com.google.inject.TypeLiteral<?>>" 2661 abstract="false" native="false" synchronized="false" 2662 static="false" final="false" visibility="public" 2663 deprecated="not deprecated"> 2664 <param name="methodOrConstructor" type="java.lang.reflect.Member"/> 2665 <doc> 2666 <![CDATA[Returns the resolved generic parameter types of {@code methodOrConstructor}. 2667 2668 @param methodOrConstructor a method or constructor defined by this or any supertype. 2669 @since 2.0]]> 2670 </doc> 2671 </method> 2672 <method name="getExceptionTypes" return="java.util.List<com.google.inject.TypeLiteral<?>>" 2673 abstract="false" native="false" synchronized="false" 2674 static="false" final="false" visibility="public" 2675 deprecated="not deprecated"> 2676 <param name="methodOrConstructor" type="java.lang.reflect.Member"/> 2677 <doc> 2678 <![CDATA[Returns the resolved generic exception types thrown by {@code constructor}. 2679 2680 @param methodOrConstructor a method or constructor defined by this or any supertype. 2681 @since 2.0]]> 2682 </doc> 2683 </method> 2684 <method name="getReturnType" return="com.google.inject.TypeLiteral<?>" 2685 abstract="false" native="false" synchronized="false" 2686 static="false" final="false" visibility="public" 2687 deprecated="not deprecated"> 2688 <param name="method" type="java.lang.reflect.Method"/> 2689 <doc> 2690 <![CDATA[Returns the resolved generic return type of {@code method}. 2691 2692 @param method a method defined by this or any supertype. 2693 @since 2.0]]> 2694 </doc> 2695 </method> 2696 <doc> 2697 <![CDATA[Represents a generic type {@code T}. Java doesn't yet provide a way to 2698 represent generic types, so this class does. Forces clients to create a 2699 subclass of this class which enables retrieval the type information even at 2700 runtime. 2701 2702 <p>For example, to create a type literal for {@code List<String>}, you can 2703 create an empty anonymous inner class: 2704 2705 <p> 2706 {@code TypeLiteral<List<String>> list = new TypeLiteral<List<String>>() {};} 2707 2708 <p>Along with modeling generic types, this class can resolve type parameters. 2709 For example, to figure out what type {@code keySet()} returns on a {@code 2710 Map<Integer, String>}, use this code:<pre> {@code 2711 2712 TypeLiteral<Map<Integer, String>> mapType 2713 = new TypeLiteral<Map<Integer, String>>() {}; 2714 TypeLiteral<?> keySetType 2715 = mapType.getReturnType(Map.class.getMethod("keySet")); 2716 System.out.println(keySetType); // prints "Set<Integer>"}</pre> 2717 2718 @author crazybob (a] google.com (Bob Lee) 2719 @author jessewilson (a] google.com (Jesse Wilson)]]> 2720 </doc> 2721 </class> 2722 <!-- end class com.google.inject.TypeLiteral --> 2723 </package> 2724 <package name="com.google.inject.assistedinject"> 2725 <!-- start class com.google.inject.assistedinject.Assisted --> 2726 <class name="Assisted" abstract="true" 2727 static="false" final="false" visibility="public" 2728 deprecated="not deprecated"> 2729 <implements name="java.lang.annotation.Annotation"/> 2730 <doc> 2731 <![CDATA[Annotates an injected parameter or field whose value comes from an argument to a factory method. 2732 2733 @author jmourits (a] google.com (Jerome Mourits) 2734 @author jessewilson (a] google.com (Jesse Wilson)]]> 2735 </doc> 2736 </class> 2737 <!-- end class com.google.inject.assistedinject.Assisted --> 2738 <!-- start class com.google.inject.assistedinject.AssistedInject --> 2739 <class name="AssistedInject" abstract="true" 2740 static="false" final="false" visibility="public" 2741 deprecated="not deprecated"> 2742 <implements name="java.lang.annotation.Annotation"/> 2743 <doc> 2744 <![CDATA[<p> 2745 When used in tandem with {@link FactoryModuleBuilder}, constructors annotated with 2746 {@code @AssistedInject} indicate that multiple constructors can be injected, each with different 2747 parameters. AssistedInject annotations should not be mixed with {@literal @}{@link Inject} 2748 annotations. The assisted parameters must exactly match one corresponding factory method within 2749 the factory interface, but the parameters do not need to be in the same order. Constructors 2750 annotated with AssistedInject <b>are</b> created by Guice and receive all the benefits 2751 (such as AOP). 2752 2753 <p> 2754 <strong>Obsolete Usage:</strong> When used in tandem with {@link FactoryProvider}, constructors 2755 annotated with {@code @AssistedInject} trigger a "backwards compatibility mode". The assisted 2756 parameters must exactly match one corresponding factory method within the factory interface and 2757 all must be in the same order as listed in the factory. In this backwards compatable mode, 2758 constructors annotated with AssistedInject <b>are not</b> created by Guice and thus receive 2759 none of the benefits. 2760 2761 <p> 2762 Constructor parameters must be either supplied by the factory interface and marked with 2763 <code>@Assisted</code>, or they must be injectable. 2764 2765 @author jmourits (a] google.com (Jerome Mourits) 2766 @author jessewilson (a] google.com (Jesse Wilson)]]> 2767 </doc> 2768 </class> 2769 <!-- end class com.google.inject.assistedinject.AssistedInject --> 2770 <!-- start interface com.google.inject.assistedinject.AssistedInjectBinding --> 2771 <interface name="AssistedInjectBinding" abstract="true" 2772 static="false" final="false" visibility="public" 2773 deprecated="not deprecated"> 2774 <method name="getKey" return="com.google.inject.Key<T>" 2775 abstract="true" native="false" synchronized="false" 2776 static="false" final="false" visibility="public" 2777 deprecated="not deprecated"> 2778 <doc> 2779 <![CDATA[Returns the {@link Key} for the factory binding.]]> 2780 </doc> 2781 </method> 2782 <method name="getAssistedMethods" return="java.util.Collection<com.google.inject.assistedinject.AssistedMethod>" 2783 abstract="true" native="false" synchronized="false" 2784 static="false" final="false" visibility="public" 2785 deprecated="not deprecated"> 2786 <doc> 2787 <![CDATA[Returns an {@link AssistedMethod} for each method in the factory.]]> 2788 </doc> 2789 </method> 2790 <doc> 2791 <![CDATA[A binding for a factory created by FactoryModuleBuilder. 2792 2793 @param <T> The fully qualified type of the factory. 2794 2795 @since 3.0 2796 @author ramakrishna (a] google.com (Ramakrishna Rajanna)]]> 2797 </doc> 2798 </interface> 2799 <!-- end interface com.google.inject.assistedinject.AssistedInjectBinding --> 2800 <!-- start interface com.google.inject.assistedinject.AssistedInjectTargetVisitor --> 2801 <interface name="AssistedInjectTargetVisitor" abstract="true" 2802 static="false" final="false" visibility="public" 2803 deprecated="not deprecated"> 2804 <implements name="com.google.inject.spi.BindingTargetVisitor<T, V>"/> 2805 <method name="visit" return="V" 2806 abstract="true" native="false" synchronized="false" 2807 static="false" final="false" visibility="public" 2808 deprecated="not deprecated"> 2809 <param name="assistedInjectBinding" type="com.google.inject.assistedinject.AssistedInjectBinding<? extends T>"/> 2810 <doc> 2811 <![CDATA[Visits an {@link AssistedInjectBinding} created through {@link FactoryModuleBuilder}.]]> 2812 </doc> 2813 </method> 2814 <doc> 2815 <![CDATA[A visitor for the AssistedInject extension. 2816 <p> 2817 If your {@link BindingTargetVisitor} implements this interface, bindings created by using 2818 {@link FactoryModuleBuilder} will be visited through this interface. 2819 2820 @since 3.0 2821 @author ramakrishna (a] google.com (Ramakrishna Rajanna)]]> 2822 </doc> 2823 </interface> 2824 <!-- end interface com.google.inject.assistedinject.AssistedInjectTargetVisitor --> 2825 <!-- start interface com.google.inject.assistedinject.AssistedMethod --> 2826 <interface name="AssistedMethod" abstract="true" 2827 static="false" final="false" visibility="public" 2828 deprecated="not deprecated"> 2829 <method name="getFactoryMethod" return="java.lang.reflect.Method" 2830 abstract="true" native="false" synchronized="false" 2831 static="false" final="false" visibility="public" 2832 deprecated="not deprecated"> 2833 <doc> 2834 <![CDATA[Returns the factory method that is being assisted.]]> 2835 </doc> 2836 </method> 2837 <method name="getImplementationType" return="com.google.inject.TypeLiteral<?>" 2838 abstract="true" native="false" synchronized="false" 2839 static="false" final="false" visibility="public" 2840 deprecated="not deprecated"> 2841 <doc> 2842 <![CDATA[Returns the implementation type that will be created when the method is 2843 used.]]> 2844 </doc> 2845 </method> 2846 <method name="getImplementationConstructor" return="java.lang.reflect.Constructor<?>" 2847 abstract="true" native="false" synchronized="false" 2848 static="false" final="false" visibility="public" 2849 deprecated="not deprecated"> 2850 <doc> 2851 <![CDATA[Returns the constructor that will be used to construct instances of the 2852 implementation.]]> 2853 </doc> 2854 </method> 2855 <method name="getDependencies" return="java.util.Set<com.google.inject.spi.Dependency<?>>" 2856 abstract="true" native="false" synchronized="false" 2857 static="false" final="false" visibility="public" 2858 deprecated="not deprecated"> 2859 <doc> 2860 <![CDATA[Returns all non-assisted dependencies required to construct and inject 2861 the implementation.]]> 2862 </doc> 2863 </method> 2864 <doc> 2865 <![CDATA[Details about how a method in an assisted inject factory will be assisted. 2866 2867 @since 3.0 2868 @author ramakrishna (a] google.com (Ramakrishna Rajanna)]]> 2869 </doc> 2870 </interface> 2871 <!-- end interface com.google.inject.assistedinject.AssistedMethod --> 2872 <!-- start class com.google.inject.assistedinject.FactoryModuleBuilder --> 2873 <class name="FactoryModuleBuilder" extends="java.lang.Object" 2874 abstract="false" 2875 static="false" final="true" visibility="public" 2876 deprecated="not deprecated"> 2877 <constructor name="FactoryModuleBuilder" 2878 static="false" final="false" visibility="public" 2879 deprecated="not deprecated"> 2880 </constructor> 2881 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2882 abstract="false" native="false" synchronized="false" 2883 static="false" final="false" visibility="public" 2884 deprecated="not deprecated"> 2885 <param name="source" type="java.lang.Class<T>"/> 2886 <param name="target" type="java.lang.Class<? extends T>"/> 2887 <doc> 2888 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2889 </doc> 2890 </method> 2891 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2892 abstract="false" native="false" synchronized="false" 2893 static="false" final="false" visibility="public" 2894 deprecated="not deprecated"> 2895 <param name="source" type="java.lang.Class<T>"/> 2896 <param name="target" type="com.google.inject.TypeLiteral<? extends T>"/> 2897 <doc> 2898 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2899 </doc> 2900 </method> 2901 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2902 abstract="false" native="false" synchronized="false" 2903 static="false" final="false" visibility="public" 2904 deprecated="not deprecated"> 2905 <param name="source" type="com.google.inject.TypeLiteral<T>"/> 2906 <param name="target" type="java.lang.Class<? extends T>"/> 2907 <doc> 2908 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2909 </doc> 2910 </method> 2911 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2912 abstract="false" native="false" synchronized="false" 2913 static="false" final="false" visibility="public" 2914 deprecated="not deprecated"> 2915 <param name="source" type="com.google.inject.TypeLiteral<T>"/> 2916 <param name="target" type="com.google.inject.TypeLiteral<? extends T>"/> 2917 <doc> 2918 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2919 </doc> 2920 </method> 2921 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2922 abstract="false" native="false" synchronized="false" 2923 static="false" final="false" visibility="public" 2924 deprecated="not deprecated"> 2925 <param name="source" type="java.lang.Class<T>"/> 2926 <param name="annotation" type="java.lang.annotation.Annotation"/> 2927 <param name="target" type="java.lang.Class<? extends T>"/> 2928 <doc> 2929 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2930 </doc> 2931 </method> 2932 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2933 abstract="false" native="false" synchronized="false" 2934 static="false" final="false" visibility="public" 2935 deprecated="not deprecated"> 2936 <param name="source" type="java.lang.Class<T>"/> 2937 <param name="annotation" type="java.lang.annotation.Annotation"/> 2938 <param name="target" type="com.google.inject.TypeLiteral<? extends T>"/> 2939 <doc> 2940 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2941 </doc> 2942 </method> 2943 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2944 abstract="false" native="false" synchronized="false" 2945 static="false" final="false" visibility="public" 2946 deprecated="not deprecated"> 2947 <param name="source" type="com.google.inject.TypeLiteral<T>"/> 2948 <param name="annotation" type="java.lang.annotation.Annotation"/> 2949 <param name="target" type="java.lang.Class<? extends T>"/> 2950 <doc> 2951 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2952 </doc> 2953 </method> 2954 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2955 abstract="false" native="false" synchronized="false" 2956 static="false" final="false" visibility="public" 2957 deprecated="not deprecated"> 2958 <param name="source" type="com.google.inject.TypeLiteral<T>"/> 2959 <param name="annotation" type="java.lang.annotation.Annotation"/> 2960 <param name="target" type="com.google.inject.TypeLiteral<? extends T>"/> 2961 <doc> 2962 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2963 </doc> 2964 </method> 2965 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2966 abstract="false" native="false" synchronized="false" 2967 static="false" final="false" visibility="public" 2968 deprecated="not deprecated"> 2969 <param name="source" type="java.lang.Class<T>"/> 2970 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 2971 <param name="target" type="java.lang.Class<? extends T>"/> 2972 <doc> 2973 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2974 </doc> 2975 </method> 2976 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2977 abstract="false" native="false" synchronized="false" 2978 static="false" final="false" visibility="public" 2979 deprecated="not deprecated"> 2980 <param name="source" type="java.lang.Class<T>"/> 2981 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 2982 <param name="target" type="com.google.inject.TypeLiteral<? extends T>"/> 2983 <doc> 2984 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2985 </doc> 2986 </method> 2987 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2988 abstract="false" native="false" synchronized="false" 2989 static="false" final="false" visibility="public" 2990 deprecated="not deprecated"> 2991 <param name="source" type="com.google.inject.TypeLiteral<T>"/> 2992 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 2993 <param name="target" type="java.lang.Class<? extends T>"/> 2994 <doc> 2995 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 2996 </doc> 2997 </method> 2998 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 2999 abstract="false" native="false" synchronized="false" 3000 static="false" final="false" visibility="public" 3001 deprecated="not deprecated"> 3002 <param name="source" type="com.google.inject.TypeLiteral<T>"/> 3003 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 3004 <param name="target" type="com.google.inject.TypeLiteral<? extends T>"/> 3005 <doc> 3006 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 3007 </doc> 3008 </method> 3009 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 3010 abstract="false" native="false" synchronized="false" 3011 static="false" final="false" visibility="public" 3012 deprecated="not deprecated"> 3013 <param name="source" type="com.google.inject.Key<T>"/> 3014 <param name="target" type="java.lang.Class<? extends T>"/> 3015 <doc> 3016 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 3017 </doc> 3018 </method> 3019 <method name="implement" return="com.google.inject.assistedinject.FactoryModuleBuilder" 3020 abstract="false" native="false" synchronized="false" 3021 static="false" final="false" visibility="public" 3022 deprecated="not deprecated"> 3023 <param name="source" type="com.google.inject.Key<T>"/> 3024 <param name="target" type="com.google.inject.TypeLiteral<? extends T>"/> 3025 <doc> 3026 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 3027 </doc> 3028 </method> 3029 <method name="build" return="com.google.inject.Module" 3030 abstract="false" native="false" synchronized="false" 3031 static="false" final="false" visibility="public" 3032 deprecated="not deprecated"> 3033 <param name="factoryInterface" type="java.lang.Class<F>"/> 3034 <doc> 3035 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 3036 </doc> 3037 </method> 3038 <method name="build" return="com.google.inject.Module" 3039 abstract="false" native="false" synchronized="false" 3040 static="false" final="false" visibility="public" 3041 deprecated="not deprecated"> 3042 <param name="factoryInterface" type="com.google.inject.TypeLiteral<F>"/> 3043 <doc> 3044 <![CDATA[See the factory configuration examples at {@link FactoryModuleBuilder}.]]> 3045 </doc> 3046 </method> 3047 <method name="build" return="com.google.inject.Module" 3048 abstract="false" native="false" synchronized="false" 3049 static="false" final="false" visibility="public" 3050 deprecated="not deprecated"> 3051 <param name="factoryInterface" type="com.google.inject.Key<F>"/> 3052 </method> 3053 <doc> 3054 <![CDATA[Provides a factory that combines the caller's arguments with injector-supplied values to 3055 construct objects. 3056 3057 <h3>Defining a factory</h3> 3058 Create an interface whose methods return the constructed type, or any of its supertypes. The 3059 method's parameters are the arguments required to build the constructed type. 3060 3061 <pre>public interface PaymentFactory { 3062 Payment create(Date startDate, Money amount); 3063 }</pre> 3064 3065 You can name your factory methods whatever you like, such as <i>create</i>, <i>createPayment</i> 3066 or <i>newPayment</i>. 3067 3068 <h3>Creating a type that accepts factory parameters</h3> 3069 {@code constructedType} is a concrete class with an {@literal @}{@link com.google.inject.Inject 3070 Inject}-annotated constructor. In addition to injector-supplied parameters, the constructor 3071 should have parameters that match each of the factory method's parameters. Each factory-supplied 3072 parameter requires an {@literal @}{@link Assisted} annotation. This serves to document that the 3073 parameter is not bound by your application's modules. 3074 3075 <pre>public class RealPayment implements Payment { 3076 {@literal @}Inject 3077 public RealPayment( 3078 CreditService creditService, 3079 AuthService authService, 3080 <strong>{@literal @}Assisted Date startDate</strong>, 3081 <strong>{@literal @}Assisted Money amount</strong>) { 3082 ... 3083 } 3084 }</pre> 3085 3086 <h3>Multiple factory methods for the same type</h3> 3087 If the factory contains many methods that return the same type, you can create multiple 3088 constructors in your concrete class, each constructor marked with with 3089 {@literal @}{@link AssistedInject}, in order to match the different parameters types of the 3090 factory methods. 3091 3092 <pre>public interface PaymentFactory { 3093 Payment create(Date startDate, Money amount); 3094 Payment createWithoutDate(Money amount); 3095 } 3096 3097 public class RealPayment implements Payment { 3098 {@literal @}AssistedInject 3099 public RealPayment( 3100 CreditService creditService, 3101 AuthService authService, 3102 <strong>{@literal @}Assisted Date startDate</strong>, 3103 <strong>{@literal @}Assisted Money amount</strong>) { 3104 ... 3105 } 3106 3107 {@literal @}AssistedInject 3108 public RealPayment( 3109 CreditService creditService, 3110 AuthService authService, 3111 <strong>{@literal @}Assisted Money amount</strong>) { 3112 ... 3113 } 3114 }</pre> 3115 3116 <h3>Configuring simple factories</h3> 3117 In your {@link Module module}, install a {@code FactoryModuleBuilder} that creates the 3118 factory: 3119 3120 <pre>install(new FactoryModuleBuilder() 3121 .implement(Payment.class, RealPayment.class) 3122 .build(PaymentFactory.class);</pre> 3123 3124 As a side-effect of this binding, Guice will inject the factory to initialize it for use. The 3125 factory cannot be used until the injector has been initialized. 3126 3127 <h3>Configuring complex factories</h3> 3128 Factories can create an arbitrary number of objects, one per each method. Each factory 3129 method can be configured using <code>.implement</code>. 3130 3131 <pre>public interface OrderFactory { 3132 Payment create(Date startDate, Money amount); 3133 Shipment create(Customer customer, Item item); 3134 Receipt create(Payment payment, Shipment shipment); 3135 } 3136 3137 [...] 3138 3139 install(new FactoryModuleBuilder() 3140 .implement(Payment.class, RealPayment.class) 3141 // excluding .implement for Shipment means the implementation class 3142 // will be 'Shipment' itself, which is legal if it's not an interface. 3143 .implement(Receipt.class, RealReceipt.class) 3144 .build(OrderFactory.class);</pre> 3145 </pre> 3146 3147 <h3>Using the factory</h3> 3148 Inject your factory into your application classes. When you use the factory, your arguments 3149 will be combined with values from the injector to construct an instance. 3150 3151 <pre>public class PaymentAction { 3152 {@literal @}Inject private PaymentFactory paymentFactory; 3153 3154 public void doPayment(Money amount) { 3155 Payment payment = paymentFactory.create(new Date(), amount); 3156 payment.apply(); 3157 } 3158 }</pre> 3159 3160 <h3>Making parameter types distinct</h3> 3161 The types of the factory method's parameters must be distinct. To use multiple parameters of 3162 the same type, use a named {@literal @}{@link Assisted} annotation to disambiguate the 3163 parameters. The names must be applied to the factory method's parameters: 3164 3165 <pre>public interface PaymentFactory { 3166 Payment create( 3167 <strong>{@literal @}Assisted("startDate")</strong> Date startDate, 3168 <strong>{@literal @}Assisted("dueDate")</strong> Date dueDate, 3169 Money amount); 3170 } </pre> 3171 3172 ...and to the concrete type's constructor parameters: 3173 3174 <pre>public class RealPayment implements Payment { 3175 {@literal @}Inject 3176 public RealPayment( 3177 CreditService creditService, 3178 AuthService authService, 3179 <strong>{@literal @}Assisted("startDate")</strong> Date startDate, 3180 <strong>{@literal @}Assisted("dueDate")</strong> Date dueDate, 3181 <strong>{@literal @}Assisted</strong> Money amount) { 3182 ... 3183 } 3184 }</pre> 3185 3186 <h3>Values are created by Guice</h3> 3187 Returned factories use child injectors to create values. The values are eligible for method 3188 interception. In addition, {@literal @}{@literal Inject} members will be injected before they are 3189 returned. 3190 3191 <h3>More configuration options</h3> 3192 In addition to simply specifying an implementation class for any returned type, factories' return 3193 values can be automatic or can be configured to use annotations: 3194 <p/> 3195 If you just want to return the types specified in the factory, do not configure any 3196 implementations: 3197 3198 <pre>public interface FruitFactory { 3199 Apple getApple(Color color); 3200 } 3201 ... 3202 protected void configure() { 3203 install(new FactoryModuleBuilder().build(FruitFactory.class)); 3204 }</pre> 3205 3206 Note that any type returned by the factory in this manner needs to be an implementation class. 3207 <p/> 3208 To return two different implementations for the same interface from your factory, use binding 3209 annotations on your return types: 3210 3211 <pre>interface CarFactory { 3212 {@literal @}Named("fast") Car getFastCar(Color color); 3213 {@literal @}Named("clean") Car getCleanCar(Color color); 3214 } 3215 ... 3216 protected void configure() { 3217 install(new FactoryModuleBuilder() 3218 .implement(Car.class, Names.named("fast"), Porsche.class) 3219 .implement(Car.class, Names.named("clean"), Prius.class) 3220 .build(CarFactory.class)); 3221 }</pre> 3222 3223 <h3>Implementation limitations</h3> 3224 As a limitation of the implementation, it is prohibited to declare a factory method that 3225 accepts a {@code Provider} as one of its arguments. 3226 3227 @since 3.0 3228 @author schmitt (a] google.com (Peter Schmitt)]]> 3229 </doc> 3230 </class> 3231 <!-- end class com.google.inject.assistedinject.FactoryModuleBuilder --> 3232 <!-- start class com.google.inject.assistedinject.FactoryProvider --> 3233 <class name="FactoryProvider" extends="java.lang.Object" 3234 abstract="false" 3235 static="false" final="false" visibility="public" 3236 deprecated="use {@link FactoryModuleBuilder} instead."> 3237 <implements name="com.google.inject.Provider<F>"/> 3238 <implements name="com.google.inject.spi.HasDependencies"/> 3239 <method name="newFactory" return="com.google.inject.Provider<F>" 3240 abstract="false" native="false" synchronized="false" 3241 static="true" final="false" visibility="public" 3242 deprecated="not deprecated"> 3243 <param name="factoryType" type="java.lang.Class<F>"/> 3244 <param name="implementationType" type="java.lang.Class<?>"/> 3245 </method> 3246 <method name="newFactory" return="com.google.inject.Provider<F>" 3247 abstract="false" native="false" synchronized="false" 3248 static="true" final="false" visibility="public" 3249 deprecated="not deprecated"> 3250 <param name="factoryType" type="com.google.inject.TypeLiteral<F>"/> 3251 <param name="implementationType" type="com.google.inject.TypeLiteral<?>"/> 3252 </method> 3253 <method name="getDependencies" return="java.util.Set<com.google.inject.spi.Dependency<?>>" 3254 abstract="false" native="false" synchronized="false" 3255 static="false" final="false" visibility="public" 3256 deprecated="not deprecated"> 3257 </method> 3258 <method name="get" return="F" 3259 abstract="false" native="false" synchronized="false" 3260 static="false" final="false" visibility="public" 3261 deprecated="not deprecated"> 3262 </method> 3263 <doc> 3264 <![CDATA[<strong>Obsolete.</strong> Prefer {@link FactoryModuleBuilder} for its more concise API and 3265 additional capability. 3266 3267 <p>Provides a factory that combines the caller's arguments with injector-supplied values to 3268 construct objects. 3269 3270 <h3>Defining a factory</h3> 3271 Create an interface whose methods return the constructed type, or any of its supertypes. The 3272 method's parameters are the arguments required to build the constructed type. 3273 <pre>public interface PaymentFactory { 3274 Payment create(Date startDate, Money amount); 3275 }</pre> 3276 You can name your factory methods whatever you like, such as <i>create</i>, <i>createPayment</i> 3277 or <i>newPayment</i>. 3278 3279 <h3>Creating a type that accepts factory parameters</h3> 3280 {@code constructedType} is a concrete class with an {@literal @}{@link Inject}-annotated 3281 constructor. In addition to injector-supplied parameters, the constructor should have 3282 parameters that match each of the factory method's parameters. Each factory-supplied parameter 3283 requires an {@literal @}{@link Assisted} annotation. This serves to document that the parameter 3284 is not bound by your application's modules. 3285 <pre>public class RealPayment implements Payment { 3286 {@literal @}Inject 3287 public RealPayment( 3288 CreditService creditService, 3289 AuthService authService, 3290 <strong>{@literal @}Assisted Date startDate</strong>, 3291 <strong>{@literal @}Assisted Money amount</strong>) { 3292 ... 3293 } 3294 }</pre> 3295 Any parameter that permits a null value should also be annotated {@code @Nullable}. 3296 3297 <h3>Configuring factories</h3> 3298 In your {@link com.google.inject.Module module}, bind the factory interface to the returned 3299 factory: 3300 <pre>bind(PaymentFactory.class).toProvider( 3301 FactoryProvider.newFactory(PaymentFactory.class, RealPayment.class));</pre> 3302 As a side-effect of this binding, Guice will inject the factory to initialize it for use. The 3303 factory cannot be used until the injector has been initialized. 3304 3305 <h3>Using the factory</h3> 3306 Inject your factory into your application classes. When you use the factory, your arguments 3307 will be combined with values from the injector to construct an instance. 3308 <pre>public class PaymentAction { 3309 {@literal @}Inject private PaymentFactory paymentFactory; 3310 3311 public void doPayment(Money amount) { 3312 Payment payment = paymentFactory.create(new Date(), amount); 3313 payment.apply(); 3314 } 3315 }</pre> 3316 3317 <h3>Making parameter types distinct</h3> 3318 The types of the factory method's parameters must be distinct. To use multiple parameters of 3319 the same type, use a named {@literal @}{@link Assisted} annotation to disambiguate the 3320 parameters. The names must be applied to the factory method's parameters: 3321 3322 <pre>public interface PaymentFactory { 3323 Payment create( 3324 <strong>{@literal @}Assisted("startDate")</strong> Date startDate, 3325 <strong>{@literal @}Assisted("dueDate")</strong> Date dueDate, 3326 Money amount); 3327 } </pre> 3328 ...and to the concrete type's constructor parameters: 3329 <pre>public class RealPayment implements Payment { 3330 {@literal @}Inject 3331 public RealPayment( 3332 CreditService creditService, 3333 AuthService authService, 3334 <strong>{@literal @}Assisted("startDate")</strong> Date startDate, 3335 <strong>{@literal @}Assisted("dueDate")</strong> Date dueDate, 3336 <strong>{@literal @}Assisted</strong> Money amount) { 3337 ... 3338 } 3339 }</pre> 3340 3341 <h3>Values are created by Guice</h3> 3342 Returned factories use child injectors to create values. The values are eligible for method 3343 interception. In addition, {@literal @}{@literal Inject} members will be injected before they are 3344 returned. 3345 3346 <h3>Backwards compatibility using {@literal @}AssistedInject</h3> 3347 Instead of the {@literal @}Inject annotation, you may annotate the constructed classes with 3348 {@literal @}{@link AssistedInject}. This triggers a limited backwards-compatability mode. 3349 3350 <p>Instead of matching factory method arguments to constructor parameters using their names, the 3351 <strong>parameters are matched by their order</strong>. The first factory method argument is 3352 used for the first {@literal @}Assisted constructor parameter, etc.. Annotation names have no 3353 effect. 3354 3355 <p>Returned values are <strong>not created by Guice</strong>. These types are not eligible for 3356 method interception. They do receive post-construction member injection. 3357 3358 @param <F> The factory interface 3359 3360 @author jmourits (a] google.com (Jerome Mourits) 3361 @author jessewilson (a] google.com (Jesse Wilson) 3362 @author dtm (a] google.com (Daniel Martin) 3363 3364 @deprecated use {@link FactoryModuleBuilder} instead.]]> 3365 </doc> 3366 </class> 3367 <!-- end class com.google.inject.assistedinject.FactoryProvider --> 3368 </package> 3369 <package name="com.google.inject.binder"> 3370 <!-- start interface com.google.inject.binder.AnnotatedBindingBuilder --> 3371 <interface name="AnnotatedBindingBuilder" abstract="true" 3372 static="false" final="false" visibility="public" 3373 deprecated="not deprecated"> 3374 <implements name="com.google.inject.binder.LinkedBindingBuilder<T>"/> 3375 <method name="annotatedWith" return="com.google.inject.binder.LinkedBindingBuilder<T>" 3376 abstract="true" native="false" synchronized="false" 3377 static="false" final="false" visibility="public" 3378 deprecated="not deprecated"> 3379 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 3380 <doc> 3381 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3382 </doc> 3383 </method> 3384 <method name="annotatedWith" return="com.google.inject.binder.LinkedBindingBuilder<T>" 3385 abstract="true" native="false" synchronized="false" 3386 static="false" final="false" visibility="public" 3387 deprecated="not deprecated"> 3388 <param name="annotation" type="java.lang.annotation.Annotation"/> 3389 <doc> 3390 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3391 </doc> 3392 </method> 3393 <doc> 3394 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3395 3396 @author crazybob (a] google.com (Bob Lee)]]> 3397 </doc> 3398 </interface> 3399 <!-- end interface com.google.inject.binder.AnnotatedBindingBuilder --> 3400 <!-- start interface com.google.inject.binder.AnnotatedConstantBindingBuilder --> 3401 <interface name="AnnotatedConstantBindingBuilder" abstract="true" 3402 static="false" final="false" visibility="public" 3403 deprecated="not deprecated"> 3404 <method name="annotatedWith" return="com.google.inject.binder.ConstantBindingBuilder" 3405 abstract="true" native="false" synchronized="false" 3406 static="false" final="false" visibility="public" 3407 deprecated="not deprecated"> 3408 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 3409 <doc> 3410 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3411 </doc> 3412 </method> 3413 <method name="annotatedWith" return="com.google.inject.binder.ConstantBindingBuilder" 3414 abstract="true" native="false" synchronized="false" 3415 static="false" final="false" visibility="public" 3416 deprecated="not deprecated"> 3417 <param name="annotation" type="java.lang.annotation.Annotation"/> 3418 <doc> 3419 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3420 </doc> 3421 </method> 3422 <doc> 3423 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3424 3425 @author crazybob (a] google.com (Bob Lee)]]> 3426 </doc> 3427 </interface> 3428 <!-- end interface com.google.inject.binder.AnnotatedConstantBindingBuilder --> 3429 <!-- start interface com.google.inject.binder.AnnotatedElementBuilder --> 3430 <interface name="AnnotatedElementBuilder" abstract="true" 3431 static="false" final="false" visibility="public" 3432 deprecated="not deprecated"> 3433 <method name="annotatedWith" 3434 abstract="true" native="false" synchronized="false" 3435 static="false" final="false" visibility="public" 3436 deprecated="not deprecated"> 3437 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 3438 <doc> 3439 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3440 </doc> 3441 </method> 3442 <method name="annotatedWith" 3443 abstract="true" native="false" synchronized="false" 3444 static="false" final="false" visibility="public" 3445 deprecated="not deprecated"> 3446 <param name="annotation" type="java.lang.annotation.Annotation"/> 3447 <doc> 3448 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3449 </doc> 3450 </method> 3451 <doc> 3452 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3453 3454 @author jessewilson (a] google.com (Jesse Wilson) 3455 @since 2.0]]> 3456 </doc> 3457 </interface> 3458 <!-- end interface com.google.inject.binder.AnnotatedElementBuilder --> 3459 <!-- start interface com.google.inject.binder.ConstantBindingBuilder --> 3460 <interface name="ConstantBindingBuilder" abstract="true" 3461 static="false" final="false" visibility="public" 3462 deprecated="not deprecated"> 3463 <method name="to" 3464 abstract="true" native="false" synchronized="false" 3465 static="false" final="false" visibility="public" 3466 deprecated="not deprecated"> 3467 <param name="value" type="java.lang.String"/> 3468 <doc> 3469 <![CDATA[Binds constant to the given value.]]> 3470 </doc> 3471 </method> 3472 <method name="to" 3473 abstract="true" native="false" synchronized="false" 3474 static="false" final="false" visibility="public" 3475 deprecated="not deprecated"> 3476 <param name="value" type="int"/> 3477 <doc> 3478 <![CDATA[Binds constant to the given value.]]> 3479 </doc> 3480 </method> 3481 <method name="to" 3482 abstract="true" native="false" synchronized="false" 3483 static="false" final="false" visibility="public" 3484 deprecated="not deprecated"> 3485 <param name="value" type="long"/> 3486 <doc> 3487 <![CDATA[Binds constant to the given value.]]> 3488 </doc> 3489 </method> 3490 <method name="to" 3491 abstract="true" native="false" synchronized="false" 3492 static="false" final="false" visibility="public" 3493 deprecated="not deprecated"> 3494 <param name="value" type="boolean"/> 3495 <doc> 3496 <![CDATA[Binds constant to the given value.]]> 3497 </doc> 3498 </method> 3499 <method name="to" 3500 abstract="true" native="false" synchronized="false" 3501 static="false" final="false" visibility="public" 3502 deprecated="not deprecated"> 3503 <param name="value" type="double"/> 3504 <doc> 3505 <![CDATA[Binds constant to the given value.]]> 3506 </doc> 3507 </method> 3508 <method name="to" 3509 abstract="true" native="false" synchronized="false" 3510 static="false" final="false" visibility="public" 3511 deprecated="not deprecated"> 3512 <param name="value" type="float"/> 3513 <doc> 3514 <![CDATA[Binds constant to the given value.]]> 3515 </doc> 3516 </method> 3517 <method name="to" 3518 abstract="true" native="false" synchronized="false" 3519 static="false" final="false" visibility="public" 3520 deprecated="not deprecated"> 3521 <param name="value" type="short"/> 3522 <doc> 3523 <![CDATA[Binds constant to the given value.]]> 3524 </doc> 3525 </method> 3526 <method name="to" 3527 abstract="true" native="false" synchronized="false" 3528 static="false" final="false" visibility="public" 3529 deprecated="not deprecated"> 3530 <param name="value" type="char"/> 3531 <doc> 3532 <![CDATA[Binds constant to the given value.]]> 3533 </doc> 3534 </method> 3535 <method name="to" 3536 abstract="true" native="false" synchronized="false" 3537 static="false" final="false" visibility="public" 3538 deprecated="not deprecated"> 3539 <param name="value" type="byte"/> 3540 <doc> 3541 <![CDATA[Binds constant to the given value. 3542 3543 @since 3.0]]> 3544 </doc> 3545 </method> 3546 <method name="to" 3547 abstract="true" native="false" synchronized="false" 3548 static="false" final="false" visibility="public" 3549 deprecated="not deprecated"> 3550 <param name="value" type="java.lang.Class<?>"/> 3551 <doc> 3552 <![CDATA[Binds constant to the given value.]]> 3553 </doc> 3554 </method> 3555 <method name="to" 3556 abstract="true" native="false" synchronized="false" 3557 static="false" final="false" visibility="public" 3558 deprecated="not deprecated"> 3559 <param name="value" type="E extends java.lang.Enum<E>"/> 3560 <doc> 3561 <![CDATA[Binds constant to the given value.]]> 3562 </doc> 3563 </method> 3564 <doc> 3565 <![CDATA[Binds to a constant value.]]> 3566 </doc> 3567 </interface> 3568 <!-- end interface com.google.inject.binder.ConstantBindingBuilder --> 3569 <!-- start interface com.google.inject.binder.LinkedBindingBuilder --> 3570 <interface name="LinkedBindingBuilder" abstract="true" 3571 static="false" final="false" visibility="public" 3572 deprecated="not deprecated"> 3573 <implements name="com.google.inject.binder.ScopedBindingBuilder"/> 3574 <method name="to" return="com.google.inject.binder.ScopedBindingBuilder" 3575 abstract="true" native="false" synchronized="false" 3576 static="false" final="false" visibility="public" 3577 deprecated="not deprecated"> 3578 <param name="implementation" type="java.lang.Class<? extends T>"/> 3579 <doc> 3580 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3581 </doc> 3582 </method> 3583 <method name="to" return="com.google.inject.binder.ScopedBindingBuilder" 3584 abstract="true" native="false" synchronized="false" 3585 static="false" final="false" visibility="public" 3586 deprecated="not deprecated"> 3587 <param name="implementation" type="com.google.inject.TypeLiteral<? extends T>"/> 3588 <doc> 3589 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3590 </doc> 3591 </method> 3592 <method name="to" return="com.google.inject.binder.ScopedBindingBuilder" 3593 abstract="true" native="false" synchronized="false" 3594 static="false" final="false" visibility="public" 3595 deprecated="not deprecated"> 3596 <param name="targetKey" type="com.google.inject.Key<? extends T>"/> 3597 <doc> 3598 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3599 </doc> 3600 </method> 3601 <method name="toInstance" 3602 abstract="true" native="false" synchronized="false" 3603 static="false" final="false" visibility="public" 3604 deprecated="not deprecated"> 3605 <param name="instance" type="T"/> 3606 <doc> 3607 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3608 3609 @see com.google.inject.Injector#injectMembers]]> 3610 </doc> 3611 </method> 3612 <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder" 3613 abstract="true" native="false" synchronized="false" 3614 static="false" final="false" visibility="public" 3615 deprecated="not deprecated"> 3616 <param name="provider" type="com.google.inject.Provider<? extends T>"/> 3617 <doc> 3618 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3619 3620 @see com.google.inject.Injector#injectMembers]]> 3621 </doc> 3622 </method> 3623 <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder" 3624 abstract="true" native="false" synchronized="false" 3625 static="false" final="false" visibility="public" 3626 deprecated="not deprecated"> 3627 <param name="provider" type="javax.inject.Provider<? extends T>"/> 3628 <doc> 3629 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3630 3631 @see com.google.inject.Injector#injectMembers]]> 3632 </doc> 3633 </method> 3634 <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder" 3635 abstract="true" native="false" synchronized="false" 3636 static="false" final="false" visibility="public" 3637 deprecated="not deprecated"> 3638 <param name="providerType" type="java.lang.Class<? extends javax.inject.Provider<? extends T>>"/> 3639 <doc> 3640 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3641 </doc> 3642 </method> 3643 <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder" 3644 abstract="true" native="false" synchronized="false" 3645 static="false" final="false" visibility="public" 3646 deprecated="not deprecated"> 3647 <param name="providerType" type="com.google.inject.TypeLiteral<? extends javax.inject.Provider<? extends T>>"/> 3648 <doc> 3649 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3650 </doc> 3651 </method> 3652 <method name="toProvider" return="com.google.inject.binder.ScopedBindingBuilder" 3653 abstract="true" native="false" synchronized="false" 3654 static="false" final="false" visibility="public" 3655 deprecated="not deprecated"> 3656 <param name="providerKey" type="com.google.inject.Key<? extends javax.inject.Provider<? extends T>>"/> 3657 <doc> 3658 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3659 </doc> 3660 </method> 3661 <method name="toConstructor" return="com.google.inject.binder.ScopedBindingBuilder" 3662 abstract="true" native="false" synchronized="false" 3663 static="false" final="false" visibility="public" 3664 deprecated="not deprecated"> 3665 <param name="constructor" type="java.lang.reflect.Constructor<S>"/> 3666 <doc> 3667 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3668 3669 @since 3.0]]> 3670 </doc> 3671 </method> 3672 <method name="toConstructor" return="com.google.inject.binder.ScopedBindingBuilder" 3673 abstract="true" native="false" synchronized="false" 3674 static="false" final="false" visibility="public" 3675 deprecated="not deprecated"> 3676 <param name="constructor" type="java.lang.reflect.Constructor<S>"/> 3677 <param name="type" type="com.google.inject.TypeLiteral<? extends S>"/> 3678 <doc> 3679 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3680 3681 @since 3.0]]> 3682 </doc> 3683 </method> 3684 <doc> 3685 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3686 3687 @author crazybob (a] google.com (Bob Lee)]]> 3688 </doc> 3689 </interface> 3690 <!-- end interface com.google.inject.binder.LinkedBindingBuilder --> 3691 <!-- start interface com.google.inject.binder.ScopedBindingBuilder --> 3692 <interface name="ScopedBindingBuilder" abstract="true" 3693 static="false" final="false" visibility="public" 3694 deprecated="not deprecated"> 3695 <method name="in" 3696 abstract="true" native="false" synchronized="false" 3697 static="false" final="false" visibility="public" 3698 deprecated="not deprecated"> 3699 <param name="scopeAnnotation" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 3700 <doc> 3701 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3702 </doc> 3703 </method> 3704 <method name="in" 3705 abstract="true" native="false" synchronized="false" 3706 static="false" final="false" visibility="public" 3707 deprecated="not deprecated"> 3708 <param name="scope" type="com.google.inject.Scope"/> 3709 <doc> 3710 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}.]]> 3711 </doc> 3712 </method> 3713 <method name="asEagerSingleton" 3714 abstract="true" native="false" synchronized="false" 3715 static="false" final="false" visibility="public" 3716 deprecated="not deprecated"> 3717 <doc> 3718 <![CDATA[Instructs the {@link com.google.inject.Injector} to eagerly initialize this 3719 singleton-scoped binding upon creation. Useful for application 3720 initialization logic. See the EDSL examples at 3721 {@link com.google.inject.Binder}.]]> 3722 </doc> 3723 </method> 3724 <doc> 3725 <![CDATA[See the EDSL examples at {@link com.google.inject.Binder}. 3726 3727 @author crazybob (a] google.com (Bob Lee)]]> 3728 </doc> 3729 </interface> 3730 <!-- end interface com.google.inject.binder.ScopedBindingBuilder --> 3731 </package> 3732 <package name="com.google.inject.grapher"> 3733 <!-- start class com.google.inject.grapher.AbstractInjectorGrapher --> 3734 <class name="AbstractInjectorGrapher" extends="java.lang.Object" 3735 abstract="true" 3736 static="false" final="false" visibility="public" 3737 deprecated="not deprecated"> 3738 <implements name="com.google.inject.grapher.InjectorGrapher"/> 3739 <constructor name="AbstractInjectorGrapher" 3740 static="false" final="false" visibility="public" 3741 deprecated="not deprecated"> 3742 </constructor> 3743 <constructor name="AbstractInjectorGrapher" type="com.google.inject.grapher.AbstractInjectorGrapher.GrapherParameters" 3744 static="false" final="false" visibility="public" 3745 deprecated="not deprecated"> 3746 </constructor> 3747 <method name="graph" 3748 abstract="false" native="false" synchronized="false" 3749 static="false" final="true" visibility="public" 3750 deprecated="not deprecated"> 3751 <param name="injector" type="com.google.inject.Injector"/> 3752 <exception name="IOException" type="java.io.IOException"/> 3753 </method> 3754 <method name="graph" 3755 abstract="false" native="false" synchronized="false" 3756 static="false" final="true" visibility="public" 3757 deprecated="not deprecated"> 3758 <param name="injector" type="com.google.inject.Injector"/> 3759 <param name="root" type="java.util.Set<com.google.inject.Key<?>>"/> 3760 <exception name="IOException" type="java.io.IOException"/> 3761 </method> 3762 <method name="reset" 3763 abstract="true" native="false" synchronized="false" 3764 static="false" final="false" visibility="protected" 3765 deprecated="not deprecated"> 3766 <exception name="IOException" type="java.io.IOException"/> 3767 <doc> 3768 <![CDATA[Resets the state of the grapher before rendering a new graph.]]> 3769 </doc> 3770 </method> 3771 <method name="newInterfaceNode" 3772 abstract="true" native="false" synchronized="false" 3773 static="false" final="false" visibility="protected" 3774 deprecated="not deprecated"> 3775 <param name="node" type="com.google.inject.grapher.InterfaceNode"/> 3776 <exception name="IOException" type="java.io.IOException"/> 3777 <doc> 3778 <![CDATA[Adds a new interface node to the graph.]]> 3779 </doc> 3780 </method> 3781 <method name="newImplementationNode" 3782 abstract="true" native="false" synchronized="false" 3783 static="false" final="false" visibility="protected" 3784 deprecated="not deprecated"> 3785 <param name="node" type="com.google.inject.grapher.ImplementationNode"/> 3786 <exception name="IOException" type="java.io.IOException"/> 3787 <doc> 3788 <![CDATA[Adds a new implementation node to the graph.]]> 3789 </doc> 3790 </method> 3791 <method name="newInstanceNode" 3792 abstract="true" native="false" synchronized="false" 3793 static="false" final="false" visibility="protected" 3794 deprecated="not deprecated"> 3795 <param name="node" type="com.google.inject.grapher.InstanceNode"/> 3796 <exception name="IOException" type="java.io.IOException"/> 3797 <doc> 3798 <![CDATA[Adds a new instance node to the graph.]]> 3799 </doc> 3800 </method> 3801 <method name="newDependencyEdge" 3802 abstract="true" native="false" synchronized="false" 3803 static="false" final="false" visibility="protected" 3804 deprecated="not deprecated"> 3805 <param name="edge" type="com.google.inject.grapher.DependencyEdge"/> 3806 <exception name="IOException" type="java.io.IOException"/> 3807 <doc> 3808 <![CDATA[Adds a new dependency edge to the graph.]]> 3809 </doc> 3810 </method> 3811 <method name="newBindingEdge" 3812 abstract="true" native="false" synchronized="false" 3813 static="false" final="false" visibility="protected" 3814 deprecated="not deprecated"> 3815 <param name="edge" type="com.google.inject.grapher.BindingEdge"/> 3816 <exception name="IOException" type="java.io.IOException"/> 3817 <doc> 3818 <![CDATA[Adds a new binding edge to the graph.]]> 3819 </doc> 3820 </method> 3821 <method name="postProcess" 3822 abstract="true" native="false" synchronized="false" 3823 static="false" final="false" visibility="protected" 3824 deprecated="not deprecated"> 3825 <exception name="IOException" type="java.io.IOException"/> 3826 <doc> 3827 <![CDATA[Performs any post processing required after all nodes and edges have been added.]]> 3828 </doc> 3829 </method> 3830 <doc> 3831 <![CDATA[Abstract injector grapher that builds the dependency graph but doesn't render it. 3832 3833 @author bojand (a] google.com (Bojan Djordjevic)]]> 3834 </doc> 3835 </class> 3836 <!-- end class com.google.inject.grapher.AbstractInjectorGrapher --> 3837 <!-- start class com.google.inject.grapher.AbstractInjectorGrapher.GrapherParameters --> 3838 <class name="AbstractInjectorGrapher.GrapherParameters" extends="java.lang.Object" 3839 abstract="false" 3840 static="true" final="true" visibility="public" 3841 deprecated="not deprecated"> 3842 <constructor name="GrapherParameters" 3843 static="false" final="false" visibility="public" 3844 deprecated="not deprecated"> 3845 </constructor> 3846 <method name="getRootKeySetCreator" return="com.google.inject.grapher.RootKeySetCreator" 3847 abstract="false" native="false" synchronized="false" 3848 static="false" final="false" visibility="public" 3849 deprecated="not deprecated"> 3850 </method> 3851 <method name="setRootKeySetCreator" return="com.google.inject.grapher.AbstractInjectorGrapher.GrapherParameters" 3852 abstract="false" native="false" synchronized="false" 3853 static="false" final="false" visibility="public" 3854 deprecated="not deprecated"> 3855 <param name="rootKeySetCreator" type="com.google.inject.grapher.RootKeySetCreator"/> 3856 </method> 3857 <method name="getAliasCreator" return="com.google.inject.grapher.AliasCreator" 3858 abstract="false" native="false" synchronized="false" 3859 static="false" final="false" visibility="public" 3860 deprecated="not deprecated"> 3861 </method> 3862 <method name="setAliasCreator" return="com.google.inject.grapher.AbstractInjectorGrapher.GrapherParameters" 3863 abstract="false" native="false" synchronized="false" 3864 static="false" final="false" visibility="public" 3865 deprecated="not deprecated"> 3866 <param name="aliasCreator" type="com.google.inject.grapher.AliasCreator"/> 3867 </method> 3868 <method name="getNodeCreator" return="com.google.inject.grapher.NodeCreator" 3869 abstract="false" native="false" synchronized="false" 3870 static="false" final="false" visibility="public" 3871 deprecated="not deprecated"> 3872 </method> 3873 <method name="setNodeCreator" return="com.google.inject.grapher.AbstractInjectorGrapher.GrapherParameters" 3874 abstract="false" native="false" synchronized="false" 3875 static="false" final="false" visibility="public" 3876 deprecated="not deprecated"> 3877 <param name="nodeCreator" type="com.google.inject.grapher.NodeCreator"/> 3878 </method> 3879 <method name="getEdgeCreator" return="com.google.inject.grapher.EdgeCreator" 3880 abstract="false" native="false" synchronized="false" 3881 static="false" final="false" visibility="public" 3882 deprecated="not deprecated"> 3883 </method> 3884 <method name="setEdgeCreator" return="com.google.inject.grapher.AbstractInjectorGrapher.GrapherParameters" 3885 abstract="false" native="false" synchronized="false" 3886 static="false" final="false" visibility="public" 3887 deprecated="not deprecated"> 3888 <param name="edgeCreator" type="com.google.inject.grapher.EdgeCreator"/> 3889 </method> 3890 <doc> 3891 <![CDATA[Parameters used to override default settings of the grapher.]]> 3892 </doc> 3893 </class> 3894 <!-- end class com.google.inject.grapher.AbstractInjectorGrapher.GrapherParameters --> 3895 <!-- start class com.google.inject.grapher.Alias --> 3896 <class name="Alias" extends="java.lang.Object" 3897 abstract="false" 3898 static="false" final="true" visibility="public" 3899 deprecated="not deprecated"> 3900 <constructor name="Alias" type="com.google.inject.grapher.NodeId, com.google.inject.grapher.NodeId" 3901 static="false" final="false" visibility="public" 3902 deprecated="not deprecated"> 3903 </constructor> 3904 <method name="getFromId" return="com.google.inject.grapher.NodeId" 3905 abstract="false" native="false" synchronized="false" 3906 static="false" final="false" visibility="public" 3907 deprecated="not deprecated"> 3908 </method> 3909 <method name="getToId" return="com.google.inject.grapher.NodeId" 3910 abstract="false" native="false" synchronized="false" 3911 static="false" final="false" visibility="public" 3912 deprecated="not deprecated"> 3913 </method> 3914 <doc> 3915 <![CDATA[Alias between two nodes. Causes the 'from' node to be aliased with the 'to' node, which means 3916 that the 'from' node is not rendered and all edges going to it instead go to the 'to' node. 3917 3918 @author bojand (a] google.com (Bojan Djordjevic)]]> 3919 </doc> 3920 </class> 3921 <!-- end class com.google.inject.grapher.Alias --> 3922 <!-- start interface com.google.inject.grapher.AliasCreator --> 3923 <interface name="AliasCreator" abstract="true" 3924 static="false" final="false" visibility="public" 3925 deprecated="not deprecated"> 3926 <method name="createAliases" return="java.lang.Iterable<com.google.inject.grapher.Alias>" 3927 abstract="true" native="false" synchronized="false" 3928 static="false" final="false" visibility="public" 3929 deprecated="not deprecated"> 3930 <param name="bindings" type="java.lang.Iterable<com.google.inject.Binding<?>>"/> 3931 <doc> 3932 <![CDATA[Returns aliases for the given dependency graph. The aliases do not need to be transitively 3933 resolved, i.e. it is valid to return an alias (X to Y) and an alias (Y to Z). It is the 3934 responsibility of the caller to resolve this to (X to Z) and (Y to Z). 3935 3936 @param bindings bindings that make up the dependency graph 3937 @return aliases that should be applied on the graph]]> 3938 </doc> 3939 </method> 3940 <doc> 3941 <![CDATA[Creator of node aliases. Used by dependency graphers to merge nodes in the internal Guice graph 3942 into a single node on the rendered graph. 3943 3944 @author bojand (a] google.com (Bojan Djordjevic)]]> 3945 </doc> 3946 </interface> 3947 <!-- end interface com.google.inject.grapher.AliasCreator --> 3948 <!-- start class com.google.inject.grapher.BindingEdge --> 3949 <class name="BindingEdge" extends="com.google.inject.grapher.Edge" 3950 abstract="false" 3951 static="false" final="false" visibility="public" 3952 deprecated="not deprecated"> 3953 <constructor name="BindingEdge" type="com.google.inject.grapher.NodeId, com.google.inject.grapher.NodeId, com.google.inject.grapher.BindingEdge.Type" 3954 static="false" final="false" visibility="public" 3955 deprecated="not deprecated"> 3956 </constructor> 3957 <method name="getType" return="com.google.inject.grapher.BindingEdge.Type" 3958 abstract="false" native="false" synchronized="false" 3959 static="false" final="false" visibility="public" 3960 deprecated="not deprecated"> 3961 </method> 3962 <method name="equals" return="boolean" 3963 abstract="false" native="false" synchronized="false" 3964 static="false" final="false" visibility="public" 3965 deprecated="not deprecated"> 3966 <param name="obj" type="java.lang.Object"/> 3967 </method> 3968 <method name="hashCode" return="int" 3969 abstract="false" native="false" synchronized="false" 3970 static="false" final="false" visibility="public" 3971 deprecated="not deprecated"> 3972 </method> 3973 <method name="toString" return="java.lang.String" 3974 abstract="false" native="false" synchronized="false" 3975 static="false" final="false" visibility="public" 3976 deprecated="not deprecated"> 3977 </method> 3978 <method name="copy" return="com.google.inject.grapher.Edge" 3979 abstract="false" native="false" synchronized="false" 3980 static="false" final="false" visibility="public" 3981 deprecated="not deprecated"> 3982 <param name="fromId" type="com.google.inject.grapher.NodeId"/> 3983 <param name="toId" type="com.google.inject.grapher.NodeId"/> 3984 </method> 3985 <doc> 3986 <![CDATA[Edge that connects an interface to the type or instance that is bound to implement it. 3987 3988 @author phopkins (a] gmail.com (Pete Hopkins)]]> 3989 </doc> 3990 </class> 3991 <!-- end class com.google.inject.grapher.BindingEdge --> 3992 <!-- start class com.google.inject.grapher.BindingEdge.Type --> 3993 <class name="BindingEdge.Type" extends="java.lang.Enum<com.google.inject.grapher.BindingEdge.Type>" 3994 abstract="false" 3995 static="true" final="true" visibility="public" 3996 deprecated="not deprecated"> 3997 <method name="values" return="com.google.inject.grapher.BindingEdge.Type[]" 3998 abstract="false" native="false" synchronized="false" 3999 static="true" final="false" visibility="public" 4000 deprecated="not deprecated"> 4001 </method> 4002 <method name="valueOf" return="com.google.inject.grapher.BindingEdge.Type" 4003 abstract="false" native="false" synchronized="false" 4004 static="true" final="false" visibility="public" 4005 deprecated="not deprecated"> 4006 <param name="name" type="java.lang.String"/> 4007 </method> 4008 <doc> 4009 <![CDATA[Classification for what kind of binding this edge represents.]]> 4010 </doc> 4011 </class> 4012 <!-- end class com.google.inject.grapher.BindingEdge.Type --> 4013 <!-- start class com.google.inject.grapher.DefaultRootKeySetCreator --> 4014 <class name="DefaultRootKeySetCreator" extends="java.lang.Object" 4015 abstract="false" 4016 static="false" final="false" visibility="public" 4017 deprecated="not deprecated"> 4018 <implements name="com.google.inject.grapher.RootKeySetCreator"/> 4019 <constructor name="DefaultRootKeySetCreator" 4020 static="false" final="false" visibility="public" 4021 deprecated="not deprecated"> 4022 </constructor> 4023 <method name="getRootKeys" return="java.util.Set<com.google.inject.Key<?>>" 4024 abstract="false" native="false" synchronized="false" 4025 static="false" final="false" visibility="public" 4026 deprecated="not deprecated"> 4027 <param name="injector" type="com.google.inject.Injector"/> 4028 </method> 4029 <doc> 4030 <![CDATA[Root key set creator that starts with all types that are not Guice internal types or the 4031 {@link Logger} type. 4032 4033 @author bojand (a] google.com (Bojan Djordjevic)]]> 4034 </doc> 4035 </class> 4036 <!-- end class com.google.inject.grapher.DefaultRootKeySetCreator --> 4037 <!-- start class com.google.inject.grapher.DependencyEdge --> 4038 <class name="DependencyEdge" extends="com.google.inject.grapher.Edge" 4039 abstract="false" 4040 static="false" final="false" visibility="public" 4041 deprecated="not deprecated"> 4042 <constructor name="DependencyEdge" type="com.google.inject.grapher.NodeId, com.google.inject.grapher.NodeId, com.google.inject.spi.InjectionPoint" 4043 static="false" final="false" visibility="public" 4044 deprecated="not deprecated"> 4045 </constructor> 4046 <method name="getInjectionPoint" return="com.google.inject.spi.InjectionPoint" 4047 abstract="false" native="false" synchronized="false" 4048 static="false" final="false" visibility="public" 4049 deprecated="not deprecated"> 4050 </method> 4051 <method name="equals" return="boolean" 4052 abstract="false" native="false" synchronized="false" 4053 static="false" final="false" visibility="public" 4054 deprecated="not deprecated"> 4055 <param name="obj" type="java.lang.Object"/> 4056 </method> 4057 <method name="hashCode" return="int" 4058 abstract="false" native="false" synchronized="false" 4059 static="false" final="false" visibility="public" 4060 deprecated="not deprecated"> 4061 </method> 4062 <method name="toString" return="java.lang.String" 4063 abstract="false" native="false" synchronized="false" 4064 static="false" final="false" visibility="public" 4065 deprecated="not deprecated"> 4066 </method> 4067 <method name="copy" return="com.google.inject.grapher.Edge" 4068 abstract="false" native="false" synchronized="false" 4069 static="false" final="false" visibility="public" 4070 deprecated="not deprecated"> 4071 <param name="fromId" type="com.google.inject.grapher.NodeId"/> 4072 <param name="toId" type="com.google.inject.grapher.NodeId"/> 4073 </method> 4074 <doc> 4075 <![CDATA[Edge from a class or {@link InjectionPoint} to the interface node that will satisfy the 4076 dependency. 4077 4078 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4079 </doc> 4080 </class> 4081 <!-- end class com.google.inject.grapher.DependencyEdge --> 4082 <!-- start class com.google.inject.grapher.Edge --> 4083 <class name="Edge" extends="java.lang.Object" 4084 abstract="true" 4085 static="false" final="false" visibility="public" 4086 deprecated="not deprecated"> 4087 <constructor name="Edge" type="com.google.inject.grapher.NodeId, com.google.inject.grapher.NodeId" 4088 static="false" final="false" visibility="protected" 4089 deprecated="not deprecated"> 4090 </constructor> 4091 <method name="getFromId" return="com.google.inject.grapher.NodeId" 4092 abstract="false" native="false" synchronized="false" 4093 static="false" final="false" visibility="public" 4094 deprecated="not deprecated"> 4095 </method> 4096 <method name="getToId" return="com.google.inject.grapher.NodeId" 4097 abstract="false" native="false" synchronized="false" 4098 static="false" final="false" visibility="public" 4099 deprecated="not deprecated"> 4100 </method> 4101 <method name="equals" return="boolean" 4102 abstract="false" native="false" synchronized="false" 4103 static="false" final="false" visibility="public" 4104 deprecated="not deprecated"> 4105 <param name="obj" type="java.lang.Object"/> 4106 </method> 4107 <method name="hashCode" return="int" 4108 abstract="false" native="false" synchronized="false" 4109 static="false" final="false" visibility="public" 4110 deprecated="not deprecated"> 4111 </method> 4112 <method name="copy" return="com.google.inject.grapher.Edge" 4113 abstract="true" native="false" synchronized="false" 4114 static="false" final="false" visibility="public" 4115 deprecated="not deprecated"> 4116 <param name="fromId" type="com.google.inject.grapher.NodeId"/> 4117 <param name="toId" type="com.google.inject.grapher.NodeId"/> 4118 <doc> 4119 <![CDATA[Returns a copy of the edge with new node IDs. 4120 4121 @param fromId new ID of the 'from' node 4122 @param toId new ID of the 'to' node 4123 @return copy of the edge with the new node IDs]]> 4124 </doc> 4125 </method> 4126 <doc> 4127 <![CDATA[Edge in a guice dependency graph. 4128 4129 @author bojand (a] google.com (Bojan Djordjevic)]]> 4130 </doc> 4131 </class> 4132 <!-- end class com.google.inject.grapher.Edge --> 4133 <!-- start interface com.google.inject.grapher.EdgeCreator --> 4134 <interface name="EdgeCreator" abstract="true" 4135 static="false" final="false" visibility="public" 4136 deprecated="not deprecated"> 4137 <method name="getEdges" return="java.lang.Iterable<com.google.inject.grapher.Edge>" 4138 abstract="true" native="false" synchronized="false" 4139 static="false" final="false" visibility="public" 4140 deprecated="not deprecated"> 4141 <param name="bindings" type="java.lang.Iterable<com.google.inject.Binding<?>>"/> 4142 <doc> 4143 <![CDATA[Returns edges for the given dependency graph.]]> 4144 </doc> 4145 </method> 4146 <doc> 4147 <![CDATA[Creator of graph edges to render. All edges will be rendered on the graph after node aliasing is 4148 performed. 4149 4150 @author bojand (a] google.com (Bojan Djordjevic)]]> 4151 </doc> 4152 </interface> 4153 <!-- end interface com.google.inject.grapher.EdgeCreator --> 4154 <!-- start class com.google.inject.grapher.ImplementationNode --> 4155 <class name="ImplementationNode" extends="com.google.inject.grapher.Node" 4156 abstract="false" 4157 static="false" final="false" visibility="public" 4158 deprecated="not deprecated"> 4159 <constructor name="ImplementationNode" type="com.google.inject.grapher.NodeId, java.lang.Object, java.util.Collection<java.lang.reflect.Member>" 4160 static="false" final="false" visibility="public" 4161 deprecated="not deprecated"> 4162 </constructor> 4163 <method name="getMembers" return="java.util.Collection<java.lang.reflect.Member>" 4164 abstract="false" native="false" synchronized="false" 4165 static="false" final="false" visibility="public" 4166 deprecated="not deprecated"> 4167 </method> 4168 <method name="equals" return="boolean" 4169 abstract="false" native="false" synchronized="false" 4170 static="false" final="false" visibility="public" 4171 deprecated="not deprecated"> 4172 <param name="obj" type="java.lang.Object"/> 4173 </method> 4174 <method name="hashCode" return="int" 4175 abstract="false" native="false" synchronized="false" 4176 static="false" final="false" visibility="public" 4177 deprecated="not deprecated"> 4178 </method> 4179 <method name="toString" return="java.lang.String" 4180 abstract="false" native="false" synchronized="false" 4181 static="false" final="false" visibility="public" 4182 deprecated="not deprecated"> 4183 </method> 4184 <method name="copy" return="com.google.inject.grapher.Node" 4185 abstract="false" native="false" synchronized="false" 4186 static="false" final="false" visibility="public" 4187 deprecated="not deprecated"> 4188 <param name="id" type="com.google.inject.grapher.NodeId"/> 4189 </method> 4190 <doc> 4191 <![CDATA[Node for types that have {@link Dependency}s and are bound to {@link InterfaceNode}s. These 4192 nodes will often have fields for {@link Member}s that are {@link InjectionPoint}s. 4193 4194 @see DependencyEdge 4195 4196 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4197 </doc> 4198 </class> 4199 <!-- end class com.google.inject.grapher.ImplementationNode --> 4200 <!-- start interface com.google.inject.grapher.InjectorGrapher --> 4201 <interface name="InjectorGrapher" abstract="true" 4202 static="false" final="false" visibility="public" 4203 deprecated="not deprecated"> 4204 <method name="graph" 4205 abstract="true" native="false" synchronized="false" 4206 static="false" final="false" visibility="public" 4207 deprecated="not deprecated"> 4208 <param name="injector" type="com.google.inject.Injector"/> 4209 <exception name="IOException" type="java.io.IOException"/> 4210 <doc> 4211 <![CDATA[Graphs the guice dependency graph for the given injector using default starting keys.]]> 4212 </doc> 4213 </method> 4214 <method name="graph" 4215 abstract="true" native="false" synchronized="false" 4216 static="false" final="false" visibility="public" 4217 deprecated="not deprecated"> 4218 <param name="injector" type="com.google.inject.Injector"/> 4219 <param name="root" type="java.util.Set<com.google.inject.Key<?>>"/> 4220 <exception name="IOException" type="java.io.IOException"/> 4221 <doc> 4222 <![CDATA[Graphs the guice dependency graph for the given injector using the given starting keys and 4223 their transitive dependencies.]]> 4224 </doc> 4225 </method> 4226 <doc> 4227 <![CDATA[Guice injector grapher. Renders the guice dependency graph for an injector. It can render the 4228 whole dependency graph or just transitive dependencies of a given set of nodes. 4229 4230 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4231 </doc> 4232 </interface> 4233 <!-- end interface com.google.inject.grapher.InjectorGrapher --> 4234 <!-- start class com.google.inject.grapher.InstanceNode --> 4235 <class name="InstanceNode" extends="com.google.inject.grapher.Node" 4236 abstract="false" 4237 static="false" final="false" visibility="public" 4238 deprecated="not deprecated"> 4239 <constructor name="InstanceNode" type="com.google.inject.grapher.NodeId, java.lang.Object, java.lang.Object, java.lang.Iterable<java.lang.reflect.Member>" 4240 static="false" final="false" visibility="public" 4241 deprecated="not deprecated"> 4242 </constructor> 4243 <method name="getInstance" return="java.lang.Object" 4244 abstract="false" native="false" synchronized="false" 4245 static="false" final="false" visibility="public" 4246 deprecated="not deprecated"> 4247 </method> 4248 <method name="getMembers" return="java.lang.Iterable<java.lang.reflect.Member>" 4249 abstract="false" native="false" synchronized="false" 4250 static="false" final="false" visibility="public" 4251 deprecated="not deprecated"> 4252 </method> 4253 <method name="equals" return="boolean" 4254 abstract="false" native="false" synchronized="false" 4255 static="false" final="false" visibility="public" 4256 deprecated="not deprecated"> 4257 <param name="obj" type="java.lang.Object"/> 4258 </method> 4259 <method name="hashCode" return="int" 4260 abstract="false" native="false" synchronized="false" 4261 static="false" final="false" visibility="public" 4262 deprecated="not deprecated"> 4263 </method> 4264 <method name="toString" return="java.lang.String" 4265 abstract="false" native="false" synchronized="false" 4266 static="false" final="false" visibility="public" 4267 deprecated="not deprecated"> 4268 </method> 4269 <method name="copy" return="com.google.inject.grapher.Node" 4270 abstract="false" native="false" synchronized="false" 4271 static="false" final="false" visibility="public" 4272 deprecated="not deprecated"> 4273 <param name="id" type="com.google.inject.grapher.NodeId"/> 4274 </method> 4275 <doc> 4276 <![CDATA[Node for instances. Used when a type is bound to an instance. 4277 4278 @author bojand (a] google.com (Bojan Djordjevic)]]> 4279 </doc> 4280 </class> 4281 <!-- end class com.google.inject.grapher.InstanceNode --> 4282 <!-- start class com.google.inject.grapher.InterfaceNode --> 4283 <class name="InterfaceNode" extends="com.google.inject.grapher.Node" 4284 abstract="false" 4285 static="false" final="false" visibility="public" 4286 deprecated="not deprecated"> 4287 <constructor name="InterfaceNode" type="com.google.inject.grapher.NodeId, java.lang.Object" 4288 static="false" final="false" visibility="public" 4289 deprecated="not deprecated"> 4290 </constructor> 4291 <method name="copy" return="com.google.inject.grapher.Node" 4292 abstract="false" native="false" synchronized="false" 4293 static="false" final="false" visibility="public" 4294 deprecated="not deprecated"> 4295 <param name="id" type="com.google.inject.grapher.NodeId"/> 4296 </method> 4297 <method name="equals" return="boolean" 4298 abstract="false" native="false" synchronized="false" 4299 static="false" final="false" visibility="public" 4300 deprecated="not deprecated"> 4301 <param name="obj" type="java.lang.Object"/> 4302 </method> 4303 <method name="toString" return="java.lang.String" 4304 abstract="false" native="false" synchronized="false" 4305 static="false" final="false" visibility="public" 4306 deprecated="not deprecated"> 4307 </method> 4308 <doc> 4309 <![CDATA[Node for an interface type that has been bound to an implementation class or instance. 4310 4311 @see BindingEdge 4312 4313 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4314 </doc> 4315 </class> 4316 <!-- end class com.google.inject.grapher.InterfaceNode --> 4317 <!-- start interface com.google.inject.grapher.NameFactory --> 4318 <interface name="NameFactory" abstract="true" 4319 static="false" final="false" visibility="public" 4320 deprecated="not deprecated"> 4321 <method name="getMemberName" return="java.lang.String" 4322 abstract="true" native="false" synchronized="false" 4323 static="false" final="false" visibility="public" 4324 deprecated="not deprecated"> 4325 <param name="member" type="java.lang.reflect.Member"/> 4326 </method> 4327 <method name="getClassName" return="java.lang.String" 4328 abstract="true" native="false" synchronized="false" 4329 static="false" final="false" visibility="public" 4330 deprecated="not deprecated"> 4331 <param name="key" type="com.google.inject.Key<?>"/> 4332 </method> 4333 <method name="getInstanceName" return="java.lang.String" 4334 abstract="true" native="false" synchronized="false" 4335 static="false" final="false" visibility="public" 4336 deprecated="not deprecated"> 4337 <param name="instance" type="java.lang.Object"/> 4338 </method> 4339 <method name="getAnnotationName" return="java.lang.String" 4340 abstract="true" native="false" synchronized="false" 4341 static="false" final="false" visibility="public" 4342 deprecated="not deprecated"> 4343 <param name="key" type="com.google.inject.Key<?>"/> 4344 </method> 4345 <method name="getSourceName" return="java.lang.String" 4346 abstract="true" native="false" synchronized="false" 4347 static="false" final="false" visibility="public" 4348 deprecated="not deprecated"> 4349 <param name="source" type="java.lang.Object"/> 4350 </method> 4351 <doc> 4352 <![CDATA[Interface for a service that provides nice {@link String}s that we can 4353 display in the graph for the types that come up in {@link Binding}s. 4354 4355 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4356 </doc> 4357 </interface> 4358 <!-- end interface com.google.inject.grapher.NameFactory --> 4359 <!-- start class com.google.inject.grapher.Node --> 4360 <class name="Node" extends="java.lang.Object" 4361 abstract="true" 4362 static="false" final="false" visibility="public" 4363 deprecated="not deprecated"> 4364 <constructor name="Node" type="com.google.inject.grapher.NodeId, java.lang.Object" 4365 static="false" final="false" visibility="protected" 4366 deprecated="not deprecated"> 4367 </constructor> 4368 <method name="getId" return="com.google.inject.grapher.NodeId" 4369 abstract="false" native="false" synchronized="false" 4370 static="false" final="false" visibility="public" 4371 deprecated="not deprecated"> 4372 </method> 4373 <method name="getSource" return="java.lang.Object" 4374 abstract="false" native="false" synchronized="false" 4375 static="false" final="false" visibility="public" 4376 deprecated="not deprecated"> 4377 </method> 4378 <method name="equals" return="boolean" 4379 abstract="false" native="false" synchronized="false" 4380 static="false" final="false" visibility="public" 4381 deprecated="not deprecated"> 4382 <param name="obj" type="java.lang.Object"/> 4383 </method> 4384 <method name="hashCode" return="int" 4385 abstract="false" native="false" synchronized="false" 4386 static="false" final="false" visibility="public" 4387 deprecated="not deprecated"> 4388 </method> 4389 <method name="copy" return="com.google.inject.grapher.Node" 4390 abstract="true" native="false" synchronized="false" 4391 static="false" final="false" visibility="public" 4392 deprecated="not deprecated"> 4393 <param name="id" type="com.google.inject.grapher.NodeId"/> 4394 <doc> 4395 <![CDATA[Returns a copy of the node with a new ID. 4396 4397 @param id new ID of the node 4398 @return copy of the node with a new ID]]> 4399 </doc> 4400 </method> 4401 <doc> 4402 <![CDATA[Node in a guice dependency graph. 4403 4404 @author bojand (a] google.com (Bojan Djordjevic)]]> 4405 </doc> 4406 </class> 4407 <!-- end class com.google.inject.grapher.Node --> 4408 <!-- start interface com.google.inject.grapher.NodeCreator --> 4409 <interface name="NodeCreator" abstract="true" 4410 static="false" final="false" visibility="public" 4411 deprecated="not deprecated"> 4412 <method name="getNodes" return="java.lang.Iterable<com.google.inject.grapher.Node>" 4413 abstract="true" native="false" synchronized="false" 4414 static="false" final="false" visibility="public" 4415 deprecated="not deprecated"> 4416 <param name="bindings" type="java.lang.Iterable<com.google.inject.Binding<?>>"/> 4417 <doc> 4418 <![CDATA[Returns nodes for the given dependency graph.]]> 4419 </doc> 4420 </method> 4421 <doc> 4422 <![CDATA[Creator of graph nodes. 4423 4424 @author bojand (a] google.com (Bojan Djordjevic)]]> 4425 </doc> 4426 </interface> 4427 <!-- end interface com.google.inject.grapher.NodeCreator --> 4428 <!-- start class com.google.inject.grapher.NodeId --> 4429 <class name="NodeId" extends="java.lang.Object" 4430 abstract="false" 4431 static="false" final="true" visibility="public" 4432 deprecated="not deprecated"> 4433 <method name="newTypeId" return="com.google.inject.grapher.NodeId" 4434 abstract="false" native="false" synchronized="false" 4435 static="true" final="false" visibility="public" 4436 deprecated="not deprecated"> 4437 <param name="key" type="com.google.inject.Key<?>"/> 4438 </method> 4439 <method name="newInstanceId" return="com.google.inject.grapher.NodeId" 4440 abstract="false" native="false" synchronized="false" 4441 static="true" final="false" visibility="public" 4442 deprecated="not deprecated"> 4443 <param name="key" type="com.google.inject.Key<?>"/> 4444 </method> 4445 <method name="getKey" return="com.google.inject.Key<?>" 4446 abstract="false" native="false" synchronized="false" 4447 static="false" final="false" visibility="public" 4448 deprecated="not deprecated"> 4449 </method> 4450 <method name="hashCode" return="int" 4451 abstract="false" native="false" synchronized="false" 4452 static="false" final="false" visibility="public" 4453 deprecated="not deprecated"> 4454 </method> 4455 <method name="equals" return="boolean" 4456 abstract="false" native="false" synchronized="false" 4457 static="false" final="false" visibility="public" 4458 deprecated="not deprecated"> 4459 <param name="obj" type="java.lang.Object"/> 4460 </method> 4461 <method name="toString" return="java.lang.String" 4462 abstract="false" native="false" synchronized="false" 4463 static="false" final="false" visibility="public" 4464 deprecated="not deprecated"> 4465 </method> 4466 <doc> 4467 <![CDATA[ID of a node in the graph. An ID is given by a {@link Key} and a node type, which is used to 4468 distinguish instances and implementation classes for the same key. For example 4469 {@code bind(Integer.class).toInstance(42)} produces two nodes: an 4470 interface node with the key of {@code Key<Integer>} and an instance node with the same 4471 {@link Key} and value of 42. 4472 4473 @author bojand (a] google.com (Bojan Djordjevic)]]> 4474 </doc> 4475 </class> 4476 <!-- end class com.google.inject.grapher.NodeId --> 4477 <!-- start class com.google.inject.grapher.NodeId.NodeType --> 4478 <class name="NodeId.NodeType" extends="java.lang.Enum<com.google.inject.grapher.NodeId.NodeType>" 4479 abstract="false" 4480 static="true" final="true" visibility="public" 4481 deprecated="not deprecated"> 4482 <method name="values" return="com.google.inject.grapher.NodeId.NodeType[]" 4483 abstract="false" native="false" synchronized="false" 4484 static="true" final="false" visibility="public" 4485 deprecated="not deprecated"> 4486 </method> 4487 <method name="valueOf" return="com.google.inject.grapher.NodeId.NodeType" 4488 abstract="false" native="false" synchronized="false" 4489 static="true" final="false" visibility="public" 4490 deprecated="not deprecated"> 4491 <param name="name" type="java.lang.String"/> 4492 </method> 4493 <doc> 4494 <![CDATA[Type of node.]]> 4495 </doc> 4496 </class> 4497 <!-- end class com.google.inject.grapher.NodeId.NodeType --> 4498 <!-- start interface com.google.inject.grapher.RootKeySetCreator --> 4499 <interface name="RootKeySetCreator" abstract="true" 4500 static="false" final="false" visibility="public" 4501 deprecated="not deprecated"> 4502 <method name="getRootKeys" return="java.util.Set<com.google.inject.Key<?>>" 4503 abstract="true" native="false" synchronized="false" 4504 static="false" final="false" visibility="public" 4505 deprecated="not deprecated"> 4506 <param name="injector" type="com.google.inject.Injector"/> 4507 <doc> 4508 <![CDATA[Returns the set of starting keys to graph.]]> 4509 </doc> 4510 </method> 4511 <doc> 4512 <![CDATA[Creator of the default starting set of keys to graph. These keys and their transitive 4513 dependencies will be graphed. 4514 4515 @author bojand (a] google.com (Bojan Djordjevic)]]> 4516 </doc> 4517 </interface> 4518 <!-- end interface com.google.inject.grapher.RootKeySetCreator --> 4519 <!-- start class com.google.inject.grapher.ShortNameFactory --> 4520 <class name="ShortNameFactory" extends="java.lang.Object" 4521 abstract="false" 4522 static="false" final="false" visibility="public" 4523 deprecated="not deprecated"> 4524 <implements name="com.google.inject.grapher.NameFactory"/> 4525 <constructor name="ShortNameFactory" 4526 static="false" final="false" visibility="public" 4527 deprecated="not deprecated"> 4528 </constructor> 4529 <method name="getMemberName" return="java.lang.String" 4530 abstract="false" native="false" synchronized="false" 4531 static="false" final="false" visibility="public" 4532 deprecated="not deprecated"> 4533 <param name="member" type="java.lang.reflect.Member"/> 4534 </method> 4535 <method name="getAnnotationName" return="java.lang.String" 4536 abstract="false" native="false" synchronized="false" 4537 static="false" final="false" visibility="public" 4538 deprecated="not deprecated"> 4539 <param name="key" type="com.google.inject.Key<?>"/> 4540 </method> 4541 <method name="getClassName" return="java.lang.String" 4542 abstract="false" native="false" synchronized="false" 4543 static="false" final="false" visibility="public" 4544 deprecated="not deprecated"> 4545 <param name="key" type="com.google.inject.Key<?>"/> 4546 </method> 4547 <method name="getInstanceName" return="java.lang.String" 4548 abstract="false" native="false" synchronized="false" 4549 static="false" final="false" visibility="public" 4550 deprecated="not deprecated"> 4551 <param name="instance" type="java.lang.Object"/> 4552 </method> 4553 <method name="getSourceName" return="java.lang.String" 4554 abstract="false" native="false" synchronized="false" 4555 static="false" final="false" visibility="public" 4556 deprecated="not deprecated"> 4557 <param name="source" type="java.lang.Object"/> 4558 <doc> 4559 <![CDATA[Returns a name for a Guice "source" object. This will typically be either 4560 a {@link StackTraceElement} for when the binding is made to the instance, 4561 or a {@link Method} when a provider method is used.]]> 4562 </doc> 4563 </method> 4564 <method name="getFileString" return="java.lang.String" 4565 abstract="false" native="false" synchronized="false" 4566 static="false" final="false" visibility="protected" 4567 deprecated="not deprecated"> 4568 <param name="stackTraceElement" type="java.lang.StackTraceElement"/> 4569 </method> 4570 <method name="getMethodString" return="java.lang.String" 4571 abstract="false" native="false" synchronized="false" 4572 static="false" final="false" visibility="protected" 4573 deprecated="not deprecated"> 4574 <param name="method" type="java.lang.reflect.Method"/> 4575 </method> 4576 <doc> 4577 <![CDATA[Reasonable implementation for {@link NameFactory}. Mostly takes various 4578 {@link Object#toString()}s and strips package names out of them so that 4579 they'll fit on the graph. 4580 4581 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4582 </doc> 4583 </class> 4584 <!-- end class com.google.inject.grapher.ShortNameFactory --> 4585 <!-- start class com.google.inject.grapher.TransitiveDependencyVisitor --> 4586 <class name="TransitiveDependencyVisitor" extends="com.google.inject.spi.DefaultBindingTargetVisitor<java.lang.Object, java.util.Collection<com.google.inject.Key<?>>>" 4587 abstract="false" 4588 static="false" final="false" visibility="public" 4589 deprecated="not deprecated"> 4590 <constructor name="TransitiveDependencyVisitor" 4591 static="false" final="false" visibility="public" 4592 deprecated="not deprecated"> 4593 </constructor> 4594 <method name="visit" return="java.util.Collection<com.google.inject.Key<?>>" 4595 abstract="false" native="false" synchronized="false" 4596 static="false" final="false" visibility="public" 4597 deprecated="not deprecated"> 4598 <param name="binding" type="com.google.inject.spi.ConstructorBinding<?>"/> 4599 </method> 4600 <method name="visit" return="java.util.Collection<com.google.inject.Key<?>>" 4601 abstract="false" native="false" synchronized="false" 4602 static="false" final="false" visibility="public" 4603 deprecated="not deprecated"> 4604 <param name="binding" type="com.google.inject.spi.ConvertedConstantBinding<?>"/> 4605 </method> 4606 <method name="visit" return="java.util.Collection<com.google.inject.Key<?>>" 4607 abstract="false" native="false" synchronized="false" 4608 static="false" final="false" visibility="public" 4609 deprecated="not deprecated"> 4610 <param name="binding" type="com.google.inject.spi.InstanceBinding<?>"/> 4611 </method> 4612 <method name="visit" return="java.util.Collection<com.google.inject.Key<?>>" 4613 abstract="false" native="false" synchronized="false" 4614 static="false" final="false" visibility="public" 4615 deprecated="not deprecated"> 4616 <param name="binding" type="com.google.inject.spi.LinkedKeyBinding<?>"/> 4617 </method> 4618 <method name="visit" return="java.util.Collection<com.google.inject.Key<?>>" 4619 abstract="false" native="false" synchronized="false" 4620 static="false" final="false" visibility="public" 4621 deprecated="not deprecated"> 4622 <param name="binding" type="com.google.inject.spi.ProviderBinding<?>"/> 4623 </method> 4624 <method name="visit" return="java.util.Collection<com.google.inject.Key<?>>" 4625 abstract="false" native="false" synchronized="false" 4626 static="false" final="false" visibility="public" 4627 deprecated="not deprecated"> 4628 <param name="binding" type="com.google.inject.spi.ProviderInstanceBinding<?>"/> 4629 </method> 4630 <method name="visit" return="java.util.Collection<com.google.inject.Key<?>>" 4631 abstract="false" native="false" synchronized="false" 4632 static="false" final="false" visibility="public" 4633 deprecated="not deprecated"> 4634 <param name="binding" type="com.google.inject.spi.ProviderKeyBinding<?>"/> 4635 </method> 4636 <method name="visitOther" return="java.util.Collection<com.google.inject.Key<?>>" 4637 abstract="false" native="false" synchronized="false" 4638 static="false" final="false" visibility="public" 4639 deprecated="not deprecated"> 4640 <param name="binding" type="com.google.inject.Binding<?>"/> 4641 </method> 4642 <doc> 4643 <![CDATA[{@link BindingTargetVisitor} that returns a {@link Collection} of the 4644 {@link Key}s of each {@link Binding}'s dependencies. Used by 4645 {@link InjectorGrapher} to walk the dependency graph from a starting set of 4646 {@link Binding}s. 4647 4648 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4649 </doc> 4650 </class> 4651 <!-- end class com.google.inject.grapher.TransitiveDependencyVisitor --> 4652 </package> 4653 <package name="com.google.inject.grapher.graphviz"> 4654 <!-- start class com.google.inject.grapher.graphviz.ArrowType --> 4655 <class name="ArrowType" extends="java.lang.Enum<com.google.inject.grapher.graphviz.ArrowType>" 4656 abstract="false" 4657 static="false" final="true" visibility="public" 4658 deprecated="not deprecated"> 4659 <method name="values" return="com.google.inject.grapher.graphviz.ArrowType[]" 4660 abstract="false" native="false" synchronized="false" 4661 static="true" final="false" visibility="public" 4662 deprecated="not deprecated"> 4663 </method> 4664 <method name="valueOf" return="com.google.inject.grapher.graphviz.ArrowType" 4665 abstract="false" native="false" synchronized="false" 4666 static="true" final="false" visibility="public" 4667 deprecated="not deprecated"> 4668 <param name="name" type="java.lang.String"/> 4669 </method> 4670 <method name="toString" return="java.lang.String" 4671 abstract="false" native="false" synchronized="false" 4672 static="false" final="false" visibility="public" 4673 deprecated="not deprecated"> 4674 </method> 4675 <doc> 4676 <![CDATA[Arrow symbols that are available from Graphviz. These can be composed by 4677 concatenation to make double arrows and such. 4678 <p> 4679 See: http://www.graphviz.org/doc/info/arrows.html 4680 4681 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4682 </doc> 4683 </class> 4684 <!-- end class com.google.inject.grapher.graphviz.ArrowType --> 4685 <!-- start class com.google.inject.grapher.graphviz.CompassPoint --> 4686 <class name="CompassPoint" extends="java.lang.Enum<com.google.inject.grapher.graphviz.CompassPoint>" 4687 abstract="false" 4688 static="false" final="true" visibility="public" 4689 deprecated="not deprecated"> 4690 <method name="values" return="com.google.inject.grapher.graphviz.CompassPoint[]" 4691 abstract="false" native="false" synchronized="false" 4692 static="true" final="false" visibility="public" 4693 deprecated="not deprecated"> 4694 </method> 4695 <method name="valueOf" return="com.google.inject.grapher.graphviz.CompassPoint" 4696 abstract="false" native="false" synchronized="false" 4697 static="true" final="false" visibility="public" 4698 deprecated="not deprecated"> 4699 <param name="name" type="java.lang.String"/> 4700 </method> 4701 <method name="toString" return="java.lang.String" 4702 abstract="false" native="false" synchronized="false" 4703 static="false" final="false" visibility="public" 4704 deprecated="not deprecated"> 4705 </method> 4706 <doc> 4707 <![CDATA[Enum for the "compass point" values used to control where edge 4708 end points appear on the graph. 4709 <p> 4710 See: http://www.graphviz.org/doc/info/attrs.html#k:portPos 4711 4712 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4713 </doc> 4714 </class> 4715 <!-- end class com.google.inject.grapher.graphviz.CompassPoint --> 4716 <!-- start class com.google.inject.grapher.graphviz.EdgeStyle --> 4717 <class name="EdgeStyle" extends="java.lang.Enum<com.google.inject.grapher.graphviz.EdgeStyle>" 4718 abstract="false" 4719 static="false" final="true" visibility="public" 4720 deprecated="not deprecated"> 4721 <method name="values" return="com.google.inject.grapher.graphviz.EdgeStyle[]" 4722 abstract="false" native="false" synchronized="false" 4723 static="true" final="false" visibility="public" 4724 deprecated="not deprecated"> 4725 </method> 4726 <method name="valueOf" return="com.google.inject.grapher.graphviz.EdgeStyle" 4727 abstract="false" native="false" synchronized="false" 4728 static="true" final="false" visibility="public" 4729 deprecated="not deprecated"> 4730 <param name="name" type="java.lang.String"/> 4731 </method> 4732 <method name="toString" return="java.lang.String" 4733 abstract="false" native="false" synchronized="false" 4734 static="false" final="false" visibility="public" 4735 deprecated="not deprecated"> 4736 </method> 4737 <doc> 4738 <![CDATA[Styles for edges. 4739 <p> 4740 See: http://www.graphviz.org/doc/info/attrs.html#k:style 4741 4742 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4743 </doc> 4744 </class> 4745 <!-- end class com.google.inject.grapher.graphviz.EdgeStyle --> 4746 <!-- start class com.google.inject.grapher.graphviz.GraphvizEdge --> 4747 <class name="GraphvizEdge" extends="java.lang.Object" 4748 abstract="false" 4749 static="false" final="false" visibility="public" 4750 deprecated="not deprecated"> 4751 <constructor name="GraphvizEdge" type="com.google.inject.grapher.NodeId, com.google.inject.grapher.NodeId" 4752 static="false" final="false" visibility="public" 4753 deprecated="not deprecated"> 4754 </constructor> 4755 <method name="getHeadNodeId" return="com.google.inject.grapher.NodeId" 4756 abstract="false" native="false" synchronized="false" 4757 static="false" final="false" visibility="public" 4758 deprecated="not deprecated"> 4759 </method> 4760 <method name="getHeadPortId" return="java.lang.String" 4761 abstract="false" native="false" synchronized="false" 4762 static="false" final="false" visibility="public" 4763 deprecated="not deprecated"> 4764 </method> 4765 <method name="setHeadPortId" 4766 abstract="false" native="false" synchronized="false" 4767 static="false" final="false" visibility="public" 4768 deprecated="not deprecated"> 4769 <param name="headPortId" type="java.lang.String"/> 4770 </method> 4771 <method name="getHeadCompassPoint" return="com.google.inject.grapher.graphviz.CompassPoint" 4772 abstract="false" native="false" synchronized="false" 4773 static="false" final="false" visibility="public" 4774 deprecated="not deprecated"> 4775 </method> 4776 <method name="setHeadCompassPoint" 4777 abstract="false" native="false" synchronized="false" 4778 static="false" final="false" visibility="public" 4779 deprecated="not deprecated"> 4780 <param name="headCompassPoint" type="com.google.inject.grapher.graphviz.CompassPoint"/> 4781 </method> 4782 <method name="getArrowHead" return="java.util.List<com.google.inject.grapher.graphviz.ArrowType>" 4783 abstract="false" native="false" synchronized="false" 4784 static="false" final="false" visibility="public" 4785 deprecated="not deprecated"> 4786 </method> 4787 <method name="setArrowHead" 4788 abstract="false" native="false" synchronized="false" 4789 static="false" final="false" visibility="public" 4790 deprecated="not deprecated"> 4791 <param name="arrowHead" type="java.util.List<com.google.inject.grapher.graphviz.ArrowType>"/> 4792 </method> 4793 <method name="getTailNodeId" return="com.google.inject.grapher.NodeId" 4794 abstract="false" native="false" synchronized="false" 4795 static="false" final="false" visibility="public" 4796 deprecated="not deprecated"> 4797 </method> 4798 <method name="getTailPortId" return="java.lang.String" 4799 abstract="false" native="false" synchronized="false" 4800 static="false" final="false" visibility="public" 4801 deprecated="not deprecated"> 4802 </method> 4803 <method name="setTailPortId" 4804 abstract="false" native="false" synchronized="false" 4805 static="false" final="false" visibility="public" 4806 deprecated="not deprecated"> 4807 <param name="tailPortId" type="java.lang.String"/> 4808 </method> 4809 <method name="getTailCompassPoint" return="com.google.inject.grapher.graphviz.CompassPoint" 4810 abstract="false" native="false" synchronized="false" 4811 static="false" final="false" visibility="public" 4812 deprecated="not deprecated"> 4813 </method> 4814 <method name="setTailCompassPoint" 4815 abstract="false" native="false" synchronized="false" 4816 static="false" final="false" visibility="public" 4817 deprecated="not deprecated"> 4818 <param name="tailCompassPoint" type="com.google.inject.grapher.graphviz.CompassPoint"/> 4819 </method> 4820 <method name="getArrowTail" return="java.util.List<com.google.inject.grapher.graphviz.ArrowType>" 4821 abstract="false" native="false" synchronized="false" 4822 static="false" final="false" visibility="public" 4823 deprecated="not deprecated"> 4824 </method> 4825 <method name="setArrowTail" 4826 abstract="false" native="false" synchronized="false" 4827 static="false" final="false" visibility="public" 4828 deprecated="not deprecated"> 4829 <param name="arrowTail" type="java.util.List<com.google.inject.grapher.graphviz.ArrowType>"/> 4830 </method> 4831 <method name="getStyle" return="com.google.inject.grapher.graphviz.EdgeStyle" 4832 abstract="false" native="false" synchronized="false" 4833 static="false" final="false" visibility="public" 4834 deprecated="not deprecated"> 4835 </method> 4836 <method name="setStyle" 4837 abstract="false" native="false" synchronized="false" 4838 static="false" final="false" visibility="public" 4839 deprecated="not deprecated"> 4840 <param name="style" type="com.google.inject.grapher.graphviz.EdgeStyle"/> 4841 </method> 4842 <doc> 4843 <![CDATA[Data object to encapsulate the attributes of Graphviz edges that we're 4844 interested in drawing. 4845 4846 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4847 </doc> 4848 </class> 4849 <!-- end class com.google.inject.grapher.graphviz.GraphvizEdge --> 4850 <!-- start class com.google.inject.grapher.graphviz.GraphvizGrapher --> 4851 <class name="GraphvizGrapher" extends="com.google.inject.grapher.AbstractInjectorGrapher" 4852 abstract="false" 4853 static="false" final="false" visibility="public" 4854 deprecated="not deprecated"> 4855 <method name="reset" 4856 abstract="false" native="false" synchronized="false" 4857 static="false" final="false" visibility="protected" 4858 deprecated="not deprecated"> 4859 </method> 4860 <method name="setOut" 4861 abstract="false" native="false" synchronized="false" 4862 static="false" final="false" visibility="public" 4863 deprecated="not deprecated"> 4864 <param name="out" type="java.io.PrintWriter"/> 4865 </method> 4866 <method name="setRankdir" 4867 abstract="false" native="false" synchronized="false" 4868 static="false" final="false" visibility="public" 4869 deprecated="not deprecated"> 4870 <param name="rankdir" type="java.lang.String"/> 4871 </method> 4872 <method name="postProcess" 4873 abstract="false" native="false" synchronized="false" 4874 static="false" final="false" visibility="protected" 4875 deprecated="not deprecated"> 4876 </method> 4877 <method name="getGraphAttributes" return="java.util.Map<java.lang.String, java.lang.String>" 4878 abstract="false" native="false" synchronized="false" 4879 static="false" final="false" visibility="protected" 4880 deprecated="not deprecated"> 4881 </method> 4882 <method name="start" 4883 abstract="false" native="false" synchronized="false" 4884 static="false" final="false" visibility="protected" 4885 deprecated="not deprecated"> 4886 </method> 4887 <method name="finish" 4888 abstract="false" native="false" synchronized="false" 4889 static="false" final="false" visibility="protected" 4890 deprecated="not deprecated"> 4891 </method> 4892 <method name="renderNode" 4893 abstract="false" native="false" synchronized="false" 4894 static="false" final="false" visibility="protected" 4895 deprecated="not deprecated"> 4896 <param name="node" type="com.google.inject.grapher.graphviz.GraphvizNode"/> 4897 </method> 4898 <method name="getNodeAttributes" return="java.util.Map<java.lang.String, java.lang.String>" 4899 abstract="false" native="false" synchronized="false" 4900 static="false" final="false" visibility="protected" 4901 deprecated="not deprecated"> 4902 <param name="node" type="com.google.inject.grapher.graphviz.GraphvizNode"/> 4903 </method> 4904 <method name="getNodeLabel" return="java.lang.String" 4905 abstract="false" native="false" synchronized="false" 4906 static="false" final="false" visibility="protected" 4907 deprecated="not deprecated"> 4908 <param name="node" type="com.google.inject.grapher.graphviz.GraphvizNode"/> 4909 <doc> 4910 <![CDATA[Creates the "label" for a node. This is a string of HTML that defines a 4911 table with a heading at the top and (in the case of 4912 {@link ImplementationNode}s) rows for each of the member fields.]]> 4913 </doc> 4914 </method> 4915 <method name="renderEdge" 4916 abstract="false" native="false" synchronized="false" 4917 static="false" final="false" visibility="protected" 4918 deprecated="not deprecated"> 4919 <param name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge"/> 4920 </method> 4921 <method name="getEdgeAttributes" return="java.util.Map<java.lang.String, java.lang.String>" 4922 abstract="false" native="false" synchronized="false" 4923 static="false" final="false" visibility="protected" 4924 deprecated="not deprecated"> 4925 <param name="edge" type="com.google.inject.grapher.graphviz.GraphvizEdge"/> 4926 </method> 4927 <method name="getArrowString" return="java.lang.String" 4928 abstract="false" native="false" synchronized="false" 4929 static="false" final="false" visibility="protected" 4930 deprecated="not deprecated"> 4931 <param name="arrows" type="java.util.List<com.google.inject.grapher.graphviz.ArrowType>"/> 4932 <doc> 4933 <![CDATA[Turns a {@link List} of {@link ArrowType}s into a {@link String} that 4934 represents combining them. With Graphviz, that just means concatenating 4935 them.]]> 4936 </doc> 4937 </method> 4938 <method name="getEdgeEndPoint" return="java.lang.String" 4939 abstract="false" native="false" synchronized="false" 4940 static="false" final="false" visibility="protected" 4941 deprecated="not deprecated"> 4942 <param name="nodeId" type="java.lang.String"/> 4943 <param name="portId" type="java.lang.String"/> 4944 <param name="compassPoint" type="com.google.inject.grapher.graphviz.CompassPoint"/> 4945 </method> 4946 <method name="htmlEscape" return="java.lang.String" 4947 abstract="false" native="false" synchronized="false" 4948 static="false" final="false" visibility="protected" 4949 deprecated="not deprecated"> 4950 <param name="str" type="java.lang.String"/> 4951 </method> 4952 <method name="htmlEscape" return="java.util.List<java.lang.String>" 4953 abstract="false" native="false" synchronized="false" 4954 static="false" final="false" visibility="protected" 4955 deprecated="not deprecated"> 4956 <param name="elements" type="java.util.List<java.lang.String>"/> 4957 </method> 4958 <method name="newInterfaceNode" 4959 abstract="false" native="false" synchronized="false" 4960 static="false" final="false" visibility="protected" 4961 deprecated="not deprecated"> 4962 <param name="node" type="com.google.inject.grapher.InterfaceNode"/> 4963 </method> 4964 <method name="newImplementationNode" 4965 abstract="false" native="false" synchronized="false" 4966 static="false" final="false" visibility="protected" 4967 deprecated="not deprecated"> 4968 <param name="node" type="com.google.inject.grapher.ImplementationNode"/> 4969 </method> 4970 <method name="newInstanceNode" 4971 abstract="false" native="false" synchronized="false" 4972 static="false" final="false" visibility="protected" 4973 deprecated="not deprecated"> 4974 <param name="node" type="com.google.inject.grapher.InstanceNode"/> 4975 </method> 4976 <method name="newDependencyEdge" 4977 abstract="false" native="false" synchronized="false" 4978 static="false" final="false" visibility="protected" 4979 deprecated="not deprecated"> 4980 <param name="edge" type="com.google.inject.grapher.DependencyEdge"/> 4981 </method> 4982 <method name="newBindingEdge" 4983 abstract="false" native="false" synchronized="false" 4984 static="false" final="false" visibility="protected" 4985 deprecated="not deprecated"> 4986 <param name="edge" type="com.google.inject.grapher.BindingEdge"/> 4987 </method> 4988 <doc> 4989 <![CDATA[{@link InjectorGrapher} implementation that writes out a Graphviz DOT file of the graph. 4990 Dependencies are bound in {@link GraphvizModule}. 4991 <p> 4992 Specify the {@link PrintWriter} to output to with {@link #setOut(PrintWriter)}. 4993 4994 @author phopkins (a] gmail.com (Pete Hopkins)]]> 4995 </doc> 4996 </class> 4997 <!-- end class com.google.inject.grapher.graphviz.GraphvizGrapher --> 4998 <!-- start class com.google.inject.grapher.graphviz.GraphvizModule --> 4999 <class name="GraphvizModule" extends="com.google.inject.AbstractModule" 5000 abstract="false" 5001 static="false" final="false" visibility="public" 5002 deprecated="not deprecated"> 5003 <constructor name="GraphvizModule" 5004 static="false" final="false" visibility="public" 5005 deprecated="not deprecated"> 5006 </constructor> 5007 <method name="configure" 5008 abstract="false" native="false" synchronized="false" 5009 static="false" final="false" visibility="protected" 5010 deprecated="not deprecated"> 5011 </method> 5012 <doc> 5013 <![CDATA[Module that provides classes needed by {@link GraphvizGrapher}. 5014 5015 @author phopkins (a] gmail.com (Pete Hopkins)]]> 5016 </doc> 5017 </class> 5018 <!-- end class com.google.inject.grapher.graphviz.GraphvizModule --> 5019 <!-- start class com.google.inject.grapher.graphviz.GraphvizNode --> 5020 <class name="GraphvizNode" extends="java.lang.Object" 5021 abstract="false" 5022 static="false" final="false" visibility="public" 5023 deprecated="not deprecated"> 5024 <constructor name="GraphvizNode" type="com.google.inject.grapher.NodeId" 5025 static="false" final="false" visibility="public" 5026 deprecated="not deprecated"> 5027 </constructor> 5028 <method name="getNodeId" return="com.google.inject.grapher.NodeId" 5029 abstract="false" native="false" synchronized="false" 5030 static="false" final="false" visibility="public" 5031 deprecated="not deprecated"> 5032 </method> 5033 <method name="getShape" return="com.google.inject.grapher.graphviz.NodeShape" 5034 abstract="false" native="false" synchronized="false" 5035 static="false" final="false" visibility="public" 5036 deprecated="not deprecated"> 5037 </method> 5038 <method name="setShape" 5039 abstract="false" native="false" synchronized="false" 5040 static="false" final="false" visibility="public" 5041 deprecated="not deprecated"> 5042 <param name="shape" type="com.google.inject.grapher.graphviz.NodeShape"/> 5043 </method> 5044 <method name="getStyle" return="com.google.inject.grapher.graphviz.NodeStyle" 5045 abstract="false" native="false" synchronized="false" 5046 static="false" final="false" visibility="public" 5047 deprecated="not deprecated"> 5048 </method> 5049 <method name="setStyle" 5050 abstract="false" native="false" synchronized="false" 5051 static="false" final="false" visibility="public" 5052 deprecated="not deprecated"> 5053 <param name="style" type="com.google.inject.grapher.graphviz.NodeStyle"/> 5054 </method> 5055 <method name="getTitle" return="java.lang.String" 5056 abstract="false" native="false" synchronized="false" 5057 static="false" final="false" visibility="public" 5058 deprecated="not deprecated"> 5059 </method> 5060 <method name="setTitle" 5061 abstract="false" native="false" synchronized="false" 5062 static="false" final="false" visibility="public" 5063 deprecated="not deprecated"> 5064 <param name="title" type="java.lang.String"/> 5065 </method> 5066 <method name="getSubtitles" return="java.util.List<java.lang.String>" 5067 abstract="false" native="false" synchronized="false" 5068 static="false" final="false" visibility="public" 5069 deprecated="not deprecated"> 5070 </method> 5071 <method name="addSubtitle" 5072 abstract="false" native="false" synchronized="false" 5073 static="false" final="false" visibility="public" 5074 deprecated="not deprecated"> 5075 <param name="position" type="int"/> 5076 <param name="subtitle" type="java.lang.String"/> 5077 </method> 5078 <method name="getHeaderTextColor" return="java.lang.String" 5079 abstract="false" native="false" synchronized="false" 5080 static="false" final="false" visibility="public" 5081 deprecated="not deprecated"> 5082 </method> 5083 <method name="setHeaderTextColor" 5084 abstract="false" native="false" synchronized="false" 5085 static="false" final="false" visibility="public" 5086 deprecated="not deprecated"> 5087 <param name="headerTextColor" type="java.lang.String"/> 5088 </method> 5089 <method name="getHeaderBackgroundColor" return="java.lang.String" 5090 abstract="false" native="false" synchronized="false" 5091 static="false" final="false" visibility="public" 5092 deprecated="not deprecated"> 5093 </method> 5094 <method name="setHeaderBackgroundColor" 5095 abstract="false" native="false" synchronized="false" 5096 static="false" final="false" visibility="public" 5097 deprecated="not deprecated"> 5098 <param name="headerBackgroundColor" type="java.lang.String"/> 5099 </method> 5100 <method name="addField" 5101 abstract="false" native="false" synchronized="false" 5102 static="false" final="false" visibility="public" 5103 deprecated="not deprecated"> 5104 <param name="portId" type="java.lang.String"/> 5105 <param name="title" type="java.lang.String"/> 5106 </method> 5107 <method name="getFields" return="java.util.Map<java.lang.String, java.lang.String>" 5108 abstract="false" native="false" synchronized="false" 5109 static="false" final="false" visibility="public" 5110 deprecated="not deprecated"> 5111 </method> 5112 <method name="getIdentifier" return="java.lang.String" 5113 abstract="false" native="false" synchronized="false" 5114 static="false" final="false" visibility="public" 5115 deprecated="not deprecated"> 5116 </method> 5117 <method name="setIdentifier" 5118 abstract="false" native="false" synchronized="false" 5119 static="false" final="false" visibility="public" 5120 deprecated="not deprecated"> 5121 <param name="identifier" type="java.lang.String"/> 5122 </method> 5123 <doc> 5124 <![CDATA[Data object to encapsulate the attributes of Graphviz nodes that we're 5125 interested in drawing. 5126 5127 @author phopkins (a] gmail.com (Pete Hopkins)]]> 5128 </doc> 5129 </class> 5130 <!-- end class com.google.inject.grapher.graphviz.GraphvizNode --> 5131 <!-- start class com.google.inject.grapher.graphviz.NodeShape --> 5132 <class name="NodeShape" extends="java.lang.Enum<com.google.inject.grapher.graphviz.NodeShape>" 5133 abstract="false" 5134 static="false" final="true" visibility="public" 5135 deprecated="not deprecated"> 5136 <method name="values" return="com.google.inject.grapher.graphviz.NodeShape[]" 5137 abstract="false" native="false" synchronized="false" 5138 static="true" final="false" visibility="public" 5139 deprecated="not deprecated"> 5140 </method> 5141 <method name="valueOf" return="com.google.inject.grapher.graphviz.NodeShape" 5142 abstract="false" native="false" synchronized="false" 5143 static="true" final="false" visibility="public" 5144 deprecated="not deprecated"> 5145 <param name="name" type="java.lang.String"/> 5146 </method> 5147 <method name="toString" return="java.lang.String" 5148 abstract="false" native="false" synchronized="false" 5149 static="false" final="false" visibility="public" 5150 deprecated="not deprecated"> 5151 </method> 5152 <doc> 5153 <![CDATA[Enum for the shapes that are most interesting for Guice graphing. 5154 <p> 5155 See: http://www.graphviz.org/doc/info/shapes.html 5156 5157 @author phopkins (a] gmail.com (Pete Hopkins)]]> 5158 </doc> 5159 </class> 5160 <!-- end class com.google.inject.grapher.graphviz.NodeShape --> 5161 <!-- start class com.google.inject.grapher.graphviz.NodeStyle --> 5162 <class name="NodeStyle" extends="java.lang.Enum<com.google.inject.grapher.graphviz.NodeStyle>" 5163 abstract="false" 5164 static="false" final="true" visibility="public" 5165 deprecated="not deprecated"> 5166 <method name="values" return="com.google.inject.grapher.graphviz.NodeStyle[]" 5167 abstract="false" native="false" synchronized="false" 5168 static="true" final="false" visibility="public" 5169 deprecated="not deprecated"> 5170 </method> 5171 <method name="valueOf" return="com.google.inject.grapher.graphviz.NodeStyle" 5172 abstract="false" native="false" synchronized="false" 5173 static="true" final="false" visibility="public" 5174 deprecated="not deprecated"> 5175 <param name="name" type="java.lang.String"/> 5176 </method> 5177 <method name="toString" return="java.lang.String" 5178 abstract="false" native="false" synchronized="false" 5179 static="false" final="false" visibility="public" 5180 deprecated="not deprecated"> 5181 </method> 5182 <doc> 5183 <![CDATA[Styles for nodes. Similar to {@link EdgeStyle} but with a few more options. 5184 <p> 5185 See: http://www.graphviz.org/doc/info/attrs.html#k:style 5186 5187 @author phopkins (a] gmail.com (Pete Hopkins)]]> 5188 </doc> 5189 </class> 5190 <!-- end class com.google.inject.grapher.graphviz.NodeStyle --> 5191 <!-- start interface com.google.inject.grapher.graphviz.PortIdFactory --> 5192 <interface name="PortIdFactory" abstract="true" 5193 static="false" final="false" visibility="public" 5194 deprecated="not deprecated"> 5195 <method name="getPortId" return="java.lang.String" 5196 abstract="true" native="false" synchronized="false" 5197 static="false" final="false" visibility="public" 5198 deprecated="not deprecated"> 5199 <param name="member" type="java.lang.reflect.Member"/> 5200 </method> 5201 <doc> 5202 <![CDATA[Interface for a service that returns Graphviz port IDs, used for naming the 5203 rows in {@link ImplementationNode}-displaying {@link GraphvizNode}s. 5204 5205 @author phopkins (a] gmail.com (Pete Hopkins)]]> 5206 </doc> 5207 </interface> 5208 <!-- end interface com.google.inject.grapher.graphviz.PortIdFactory --> 5209 <!-- start class com.google.inject.grapher.graphviz.PortIdFactoryImpl --> 5210 <class name="PortIdFactoryImpl" extends="java.lang.Object" 5211 abstract="false" 5212 static="false" final="false" visibility="public" 5213 deprecated="not deprecated"> 5214 <implements name="com.google.inject.grapher.graphviz.PortIdFactory"/> 5215 <constructor name="PortIdFactoryImpl" 5216 static="false" final="false" visibility="public" 5217 deprecated="not deprecated"> 5218 </constructor> 5219 <method name="getPortId" return="java.lang.String" 5220 abstract="false" native="false" synchronized="false" 5221 static="false" final="false" visibility="public" 5222 deprecated="not deprecated"> 5223 <param name="member" type="java.lang.reflect.Member"/> 5224 </method> 5225 <doc> 5226 <![CDATA[Implementation of {@link PortIdFactory}. Bound in {@link GraphvizModule}. 5227 5228 @author phopkins (a] gmail.com (Pete Hopkins)]]> 5229 </doc> 5230 </class> 5231 <!-- end class com.google.inject.grapher.graphviz.PortIdFactoryImpl --> 5232 </package> 5233 <package name="com.google.inject.jndi"> 5234 <!-- start class com.google.inject.jndi.JndiIntegration --> 5235 <class name="JndiIntegration" extends="java.lang.Object" 5236 abstract="false" 5237 static="false" final="false" visibility="public" 5238 deprecated="not deprecated"> 5239 <method name="fromJndi" return="com.google.inject.Provider<T>" 5240 abstract="false" native="false" synchronized="false" 5241 static="true" final="false" visibility="public" 5242 deprecated="not deprecated"> 5243 <param name="type" type="java.lang.Class<T>"/> 5244 <param name="name" type="java.lang.String"/> 5245 <doc> 5246 <![CDATA[Creates a provider which looks up objects in JNDI using the given name. 5247 Example usage: 5248 5249 <pre> 5250 bind(DataSource.class).toProvider(fromJndi(DataSource.class, "java:...")); 5251 </pre>]]> 5252 </doc> 5253 </method> 5254 <doc> 5255 <![CDATA[Integrates Guice with JNDI. Requires a binding to 5256 {@link javax.naming.Context}. 5257 5258 @author crazybob (a] google.com (Bob Lee)]]> 5259 </doc> 5260 </class> 5261 <!-- end class com.google.inject.jndi.JndiIntegration --> 5262 </package> 5263 <package name="com.google.inject.matcher"> 5264 <!-- start class com.google.inject.matcher.AbstractMatcher --> 5265 <class name="AbstractMatcher" extends="java.lang.Object" 5266 abstract="true" 5267 static="false" final="false" visibility="public" 5268 deprecated="not deprecated"> 5269 <implements name="com.google.inject.matcher.Matcher<T>"/> 5270 <constructor name="AbstractMatcher" 5271 static="false" final="false" visibility="public" 5272 deprecated="not deprecated"> 5273 </constructor> 5274 <method name="and" return="com.google.inject.matcher.Matcher<T>" 5275 abstract="false" native="false" synchronized="false" 5276 static="false" final="false" visibility="public" 5277 deprecated="not deprecated"> 5278 <param name="other" type="com.google.inject.matcher.Matcher<? super T>"/> 5279 </method> 5280 <method name="or" return="com.google.inject.matcher.Matcher<T>" 5281 abstract="false" native="false" synchronized="false" 5282 static="false" final="false" visibility="public" 5283 deprecated="not deprecated"> 5284 <param name="other" type="com.google.inject.matcher.Matcher<? super T>"/> 5285 </method> 5286 <doc> 5287 <![CDATA[Implements {@code and()} and {@code or()}. 5288 5289 @author crazybob (a] google.com (Bob Lee)]]> 5290 </doc> 5291 </class> 5292 <!-- end class com.google.inject.matcher.AbstractMatcher --> 5293 <!-- start interface com.google.inject.matcher.Matcher --> 5294 <interface name="Matcher" abstract="true" 5295 static="false" final="false" visibility="public" 5296 deprecated="not deprecated"> 5297 <method name="matches" return="boolean" 5298 abstract="true" native="false" synchronized="false" 5299 static="false" final="false" visibility="public" 5300 deprecated="not deprecated"> 5301 <param name="t" type="T"/> 5302 <doc> 5303 <![CDATA[Returns {@code true} if this matches {@code t}, {@code false} otherwise.]]> 5304 </doc> 5305 </method> 5306 <method name="and" return="com.google.inject.matcher.Matcher<T>" 5307 abstract="true" native="false" synchronized="false" 5308 static="false" final="false" visibility="public" 5309 deprecated="not deprecated"> 5310 <param name="other" type="com.google.inject.matcher.Matcher<? super T>"/> 5311 <doc> 5312 <![CDATA[Returns a new matcher which returns {@code true} if both this and the 5313 given matcher return {@code true}.]]> 5314 </doc> 5315 </method> 5316 <method name="or" return="com.google.inject.matcher.Matcher<T>" 5317 abstract="true" native="false" synchronized="false" 5318 static="false" final="false" visibility="public" 5319 deprecated="not deprecated"> 5320 <param name="other" type="com.google.inject.matcher.Matcher<? super T>"/> 5321 <doc> 5322 <![CDATA[Returns a new matcher which returns {@code true} if either this or the 5323 given matcher return {@code true}.]]> 5324 </doc> 5325 </method> 5326 <doc> 5327 <![CDATA[Returns {@code true} or {@code false} for a given input. 5328 5329 @author crazybob (a] google.com (Bob Lee)]]> 5330 </doc> 5331 </interface> 5332 <!-- end interface com.google.inject.matcher.Matcher --> 5333 <!-- start class com.google.inject.matcher.Matchers --> 5334 <class name="Matchers" extends="java.lang.Object" 5335 abstract="false" 5336 static="false" final="false" visibility="public" 5337 deprecated="not deprecated"> 5338 <method name="any" return="com.google.inject.matcher.Matcher<java.lang.Object>" 5339 abstract="false" native="false" synchronized="false" 5340 static="true" final="false" visibility="public" 5341 deprecated="not deprecated"> 5342 <doc> 5343 <![CDATA[Returns a matcher which matches any input.]]> 5344 </doc> 5345 </method> 5346 <method name="not" return="com.google.inject.matcher.Matcher<T>" 5347 abstract="false" native="false" synchronized="false" 5348 static="true" final="false" visibility="public" 5349 deprecated="not deprecated"> 5350 <param name="p" type="com.google.inject.matcher.Matcher<? super T>"/> 5351 <doc> 5352 <![CDATA[Inverts the given matcher.]]> 5353 </doc> 5354 </method> 5355 <method name="annotatedWith" return="com.google.inject.matcher.Matcher<java.lang.reflect.AnnotatedElement>" 5356 abstract="false" native="false" synchronized="false" 5357 static="true" final="false" visibility="public" 5358 deprecated="not deprecated"> 5359 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 5360 <doc> 5361 <![CDATA[Returns a matcher which matches elements (methods, classes, etc.) 5362 with a given annotation.]]> 5363 </doc> 5364 </method> 5365 <method name="annotatedWith" return="com.google.inject.matcher.Matcher<java.lang.reflect.AnnotatedElement>" 5366 abstract="false" native="false" synchronized="false" 5367 static="true" final="false" visibility="public" 5368 deprecated="not deprecated"> 5369 <param name="annotation" type="java.lang.annotation.Annotation"/> 5370 <doc> 5371 <![CDATA[Returns a matcher which matches elements (methods, classes, etc.) 5372 with a given annotation.]]> 5373 </doc> 5374 </method> 5375 <method name="subclassesOf" return="com.google.inject.matcher.Matcher<java.lang.Class>" 5376 abstract="false" native="false" synchronized="false" 5377 static="true" final="false" visibility="public" 5378 deprecated="not deprecated"> 5379 <param name="superclass" type="java.lang.Class<?>"/> 5380 <doc> 5381 <![CDATA[Returns a matcher which matches subclasses of the given type (as well as 5382 the given type).]]> 5383 </doc> 5384 </method> 5385 <method name="only" return="com.google.inject.matcher.Matcher<java.lang.Object>" 5386 abstract="false" native="false" synchronized="false" 5387 static="true" final="false" visibility="public" 5388 deprecated="not deprecated"> 5389 <param name="value" type="java.lang.Object"/> 5390 <doc> 5391 <![CDATA[Returns a matcher which matches objects equal to the given object.]]> 5392 </doc> 5393 </method> 5394 <method name="identicalTo" return="com.google.inject.matcher.Matcher<java.lang.Object>" 5395 abstract="false" native="false" synchronized="false" 5396 static="true" final="false" visibility="public" 5397 deprecated="not deprecated"> 5398 <param name="value" type="java.lang.Object"/> 5399 <doc> 5400 <![CDATA[Returns a matcher which matches only the given object.]]> 5401 </doc> 5402 </method> 5403 <method name="inPackage" return="com.google.inject.matcher.Matcher<java.lang.Class>" 5404 abstract="false" native="false" synchronized="false" 5405 static="true" final="false" visibility="public" 5406 deprecated="not deprecated"> 5407 <param name="targetPackage" type="java.lang.Package"/> 5408 <doc> 5409 <![CDATA[Returns a matcher which matches classes in the given package. Packages are specific to their 5410 classloader, so classes with the same package name may not have the same package at runtime.]]> 5411 </doc> 5412 </method> 5413 <method name="inSubpackage" return="com.google.inject.matcher.Matcher<java.lang.Class>" 5414 abstract="false" native="false" synchronized="false" 5415 static="true" final="false" visibility="public" 5416 deprecated="not deprecated"> 5417 <param name="targetPackageName" type="java.lang.String"/> 5418 <doc> 5419 <![CDATA[Returns a matcher which matches classes in the given package and its subpackages. Unlike 5420 {@link #inPackage(Package) inPackage()}, this matches classes from any classloader. 5421 5422 @since 2.0]]> 5423 </doc> 5424 </method> 5425 <method name="returns" return="com.google.inject.matcher.Matcher<java.lang.reflect.Method>" 5426 abstract="false" native="false" synchronized="false" 5427 static="true" final="false" visibility="public" 5428 deprecated="not deprecated"> 5429 <param name="returnType" type="com.google.inject.matcher.Matcher<? super java.lang.Class<?>>"/> 5430 <doc> 5431 <![CDATA[Returns a matcher which matches methods with matching return types.]]> 5432 </doc> 5433 </method> 5434 <doc> 5435 <![CDATA[Matcher implementations. Supports matching classes and methods. 5436 5437 @author crazybob (a] google.com (Bob Lee)]]> 5438 </doc> 5439 </class> 5440 <!-- end class com.google.inject.matcher.Matchers --> 5441 </package> 5442 <package name="com.google.inject.multibindings"> 5443 <!-- start class com.google.inject.multibindings.MapBinder --> 5444 <class name="MapBinder" extends="java.lang.Object" 5445 abstract="true" 5446 static="false" final="false" visibility="public" 5447 deprecated="not deprecated"> 5448 <method name="newMapBinder" return="com.google.inject.multibindings.MapBinder<K, V>" 5449 abstract="false" native="false" synchronized="false" 5450 static="true" final="false" visibility="public" 5451 deprecated="not deprecated"> 5452 <param name="binder" type="com.google.inject.Binder"/> 5453 <param name="keyType" type="com.google.inject.TypeLiteral<K>"/> 5454 <param name="valueType" type="com.google.inject.TypeLiteral<V>"/> 5455 <doc> 5456 <![CDATA[Returns a new mapbinder that collects entries of {@code keyType}/{@code valueType} in a 5457 {@link Map} that is itself bound with no binding annotation.]]> 5458 </doc> 5459 </method> 5460 <method name="newMapBinder" return="com.google.inject.multibindings.MapBinder<K, V>" 5461 abstract="false" native="false" synchronized="false" 5462 static="true" final="false" visibility="public" 5463 deprecated="not deprecated"> 5464 <param name="binder" type="com.google.inject.Binder"/> 5465 <param name="keyType" type="java.lang.Class<K>"/> 5466 <param name="valueType" type="java.lang.Class<V>"/> 5467 <doc> 5468 <![CDATA[Returns a new mapbinder that collects entries of {@code keyType}/{@code valueType} in a 5469 {@link Map} that is itself bound with no binding annotation.]]> 5470 </doc> 5471 </method> 5472 <method name="newMapBinder" return="com.google.inject.multibindings.MapBinder<K, V>" 5473 abstract="false" native="false" synchronized="false" 5474 static="true" final="false" visibility="public" 5475 deprecated="not deprecated"> 5476 <param name="binder" type="com.google.inject.Binder"/> 5477 <param name="keyType" type="com.google.inject.TypeLiteral<K>"/> 5478 <param name="valueType" type="com.google.inject.TypeLiteral<V>"/> 5479 <param name="annotation" type="java.lang.annotation.Annotation"/> 5480 <doc> 5481 <![CDATA[Returns a new mapbinder that collects entries of {@code keyType}/{@code valueType} in a 5482 {@link Map} that is itself bound with {@code annotation}.]]> 5483 </doc> 5484 </method> 5485 <method name="newMapBinder" return="com.google.inject.multibindings.MapBinder<K, V>" 5486 abstract="false" native="false" synchronized="false" 5487 static="true" final="false" visibility="public" 5488 deprecated="not deprecated"> 5489 <param name="binder" type="com.google.inject.Binder"/> 5490 <param name="keyType" type="java.lang.Class<K>"/> 5491 <param name="valueType" type="java.lang.Class<V>"/> 5492 <param name="annotation" type="java.lang.annotation.Annotation"/> 5493 <doc> 5494 <![CDATA[Returns a new mapbinder that collects entries of {@code keyType}/{@code valueType} in a 5495 {@link Map} that is itself bound with {@code annotation}.]]> 5496 </doc> 5497 </method> 5498 <method name="newMapBinder" return="com.google.inject.multibindings.MapBinder<K, V>" 5499 abstract="false" native="false" synchronized="false" 5500 static="true" final="false" visibility="public" 5501 deprecated="not deprecated"> 5502 <param name="binder" type="com.google.inject.Binder"/> 5503 <param name="keyType" type="com.google.inject.TypeLiteral<K>"/> 5504 <param name="valueType" type="com.google.inject.TypeLiteral<V>"/> 5505 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 5506 <doc> 5507 <![CDATA[Returns a new mapbinder that collects entries of {@code keyType}/{@code valueType} in a 5508 {@link Map} that is itself bound with {@code annotationType}.]]> 5509 </doc> 5510 </method> 5511 <method name="newMapBinder" return="com.google.inject.multibindings.MapBinder<K, V>" 5512 abstract="false" native="false" synchronized="false" 5513 static="true" final="false" visibility="public" 5514 deprecated="not deprecated"> 5515 <param name="binder" type="com.google.inject.Binder"/> 5516 <param name="keyType" type="java.lang.Class<K>"/> 5517 <param name="valueType" type="java.lang.Class<V>"/> 5518 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 5519 <doc> 5520 <![CDATA[Returns a new mapbinder that collects entries of {@code keyType}/{@code valueType} in a 5521 {@link Map} that is itself bound with {@code annotationType}.]]> 5522 </doc> 5523 </method> 5524 <method name="permitDuplicates" return="com.google.inject.multibindings.MapBinder<K, V>" 5525 abstract="true" native="false" synchronized="false" 5526 static="false" final="false" visibility="public" 5527 deprecated="not deprecated"> 5528 <doc> 5529 <![CDATA[Configures the {@code MapBinder} to handle duplicate entries. 5530 <p>When multiple equal keys are bound, the value that gets included in the map is 5531 arbitrary. 5532 <p>In addition to the {@code Map<K, V>} and {@code Map<K, Provider<V>>} 5533 maps that are normally bound, a {@code Map<K, Set<V>>} and 5534 {@code Map<K, Set<Provider<V>>>} are <em>also</em> bound, which contain 5535 all values bound to each key. 5536 <p> 5537 When multiple modules contribute elements to the map, this configuration 5538 option impacts all of them. 5539 5540 @return this map binder 5541 @since 3.0]]> 5542 </doc> 5543 </method> 5544 <method name="addBinding" return="com.google.inject.binder.LinkedBindingBuilder<V>" 5545 abstract="true" native="false" synchronized="false" 5546 static="false" final="false" visibility="public" 5547 deprecated="not deprecated"> 5548 <param name="key" type="K"/> 5549 <doc> 5550 <![CDATA[Returns a binding builder used to add a new entry in the map. Each 5551 key must be distinct (and non-null). Bound providers will be evaluated each 5552 time the map is injected. 5553 5554 <p>It is an error to call this method without also calling one of the 5555 {@code to} methods on the returned binding builder. 5556 5557 <p>Scoping elements independently is supported. Use the {@code in} method 5558 to specify a binding scope.]]> 5559 </doc> 5560 </method> 5561 <doc> 5562 <![CDATA[An API to bind multiple map entries separately, only to later inject them as 5563 a complete map. MapBinder is intended for use in your application's module: 5564 <pre><code> 5565 public class SnacksModule extends AbstractModule { 5566 protected void configure() { 5567 MapBinder<String, Snack> mapbinder 5568 = MapBinder.newMapBinder(binder(), String.class, Snack.class); 5569 mapbinder.addBinding("twix").toInstance(new Twix()); 5570 mapbinder.addBinding("snickers").toProvider(SnickersProvider.class); 5571 mapbinder.addBinding("skittles").to(Skittles.class); 5572 } 5573 }</code></pre> 5574 5575 <p>With this binding, a {@link Map}{@code <String, Snack>} can now be 5576 injected: 5577 <pre><code> 5578 class SnackMachine { 5579 {@literal @}Inject 5580 public SnackMachine(Map<String, Snack> snacks) { ... } 5581 }</code></pre> 5582 5583 <p>In addition to binding {@code Map<K, V>}, a mapbinder will also bind 5584 {@code Map<K, Provider<V>>} for lazy value provision: 5585 <pre><code> 5586 class SnackMachine { 5587 {@literal @}Inject 5588 public SnackMachine(Map<String, Provider<Snack>> snackProviders) { ... } 5589 }</code></pre> 5590 5591 <p>Contributing mapbindings from different modules is supported. For example, 5592 it is okay to have both {@code CandyModule} and {@code ChipsModule} both 5593 create their own {@code MapBinder<String, Snack>}, and to each contribute 5594 bindings to the snacks map. When that map is injected, it will contain 5595 entries from both modules. 5596 5597 <p>The map's iteration order is consistent with the binding order. This is 5598 convenient when multiple elements are contributed by the same module because 5599 that module can order its bindings appropriately. Avoid relying on the 5600 iteration order of elements contributed by different modules, since there is 5601 no equivalent mechanism to order modules. 5602 5603 <p>The map is unmodifiable. Elements can only be added to the map by 5604 configuring the MapBinder. Elements can never be removed from the map. 5605 5606 <p>Values are resolved at map injection time. If a value is bound to a 5607 provider, that provider's get method will be called each time the map is 5608 injected (unless the binding is also scoped, or a map of providers is injected). 5609 5610 <p>Annotations are used to create different maps of the same key/value 5611 type. Each distinct annotation gets its own independent map. 5612 5613 <p><strong>Keys must be distinct.</strong> If the same key is bound more than 5614 once, map injection will fail. However, use {@link #permitDuplicates()} in 5615 order to allow duplicate keys; extra bindings to {@code Map<K, Set<V>>} and 5616 {@code Map<K, Set<Provider<V>>} will be added. 5617 5618 <p><strong>Keys must be non-null.</strong> {@code addBinding(null)} will 5619 throw an unchecked exception. 5620 5621 <p><strong>Values must be non-null to use map injection.</strong> If any 5622 value is null, map injection will fail (although injecting a map of providers 5623 will not). 5624 5625 @author dpb (a] google.com (David P. Baker)]]> 5626 </doc> 5627 </class> 5628 <!-- end class com.google.inject.multibindings.MapBinder --> 5629 <!-- start interface com.google.inject.multibindings.MapBinderBinding --> 5630 <interface name="MapBinderBinding" abstract="true" 5631 static="false" final="false" visibility="public" 5632 deprecated="not deprecated"> 5633 <method name="getMapKey" return="com.google.inject.Key<T>" 5634 abstract="true" native="false" synchronized="false" 5635 static="false" final="false" visibility="public" 5636 deprecated="not deprecated"> 5637 <doc> 5638 <![CDATA[Returns the {@link Key} for the map.]]> 5639 </doc> 5640 </method> 5641 <method name="getKeyTypeLiteral" return="com.google.inject.TypeLiteral<?>" 5642 abstract="true" native="false" synchronized="false" 5643 static="false" final="false" visibility="public" 5644 deprecated="not deprecated"> 5645 <doc> 5646 <![CDATA[Returns the TypeLiteral describing the keys of the map. 5647 <p> 5648 The TypeLiteral will always match the type Map's generic type. For example, if getMapKey 5649 returns a key of <code>Map<String, Snack></code>, then this will always return a 5650 <code>TypeLiteral<String></code>.]]> 5651 </doc> 5652 </method> 5653 <method name="getValueTypeLiteral" return="com.google.inject.TypeLiteral<?>" 5654 abstract="true" native="false" synchronized="false" 5655 static="false" final="false" visibility="public" 5656 deprecated="not deprecated"> 5657 <doc> 5658 <![CDATA[Returns the TypeLiteral describing the values of the map. 5659 <p> 5660 The TypeLiteral will always match the type Map's generic type. For example, if getMapKey 5661 returns a key of <code>Map<String, Snack></code>, then this will always return a 5662 <code>TypeLiteral<Snack></code>.]]> 5663 </doc> 5664 </method> 5665 <method name="getEntries" return="java.util.List<java.util.Map.Entry<?, com.google.inject.Binding<?>>>" 5666 abstract="true" native="false" synchronized="false" 5667 static="false" final="false" visibility="public" 5668 deprecated="not deprecated"> 5669 <doc> 5670 <![CDATA[Returns all entries in the Map. The returned list of Map.Entries contains the key and a binding 5671 to the value. Duplicate keys or values will exist as separate Map.Entries in the returned list. 5672 This is only supported on bindings returned from an injector. This will throw 5673 {@link UnsupportedOperationException} if it is called on an element retrieved from 5674 {@link Elements#getElements}. 5675 <p> 5676 The elements will always match the type Map's generic type. For example, if getMapKey returns a 5677 key of <code>Map<String, Snack></code>, then this will always return a list of type 5678 <code>List<Map.Entry<String, Binding<Snack>>></code>.]]> 5679 </doc> 5680 </method> 5681 <method name="permitsDuplicates" return="boolean" 5682 abstract="true" native="false" synchronized="false" 5683 static="false" final="false" visibility="public" 5684 deprecated="not deprecated"> 5685 <doc> 5686 <![CDATA[Returns true if the MapBinder permits duplicates. This is only supported on bindings returned 5687 from an injector. This will throw {@link UnsupportedOperationException} if it is called on a 5688 MapBinderBinding retrieved from {@link Elements#getElements}.]]> 5689 </doc> 5690 </method> 5691 <method name="containsElement" return="boolean" 5692 abstract="true" native="false" synchronized="false" 5693 static="false" final="false" visibility="public" 5694 deprecated="not deprecated"> 5695 <param name="element" type="com.google.inject.spi.Element"/> 5696 <doc> 5697 <![CDATA[Returns true if this MapBinder contains the given Element in order to build the map or uses the 5698 given Element in order to support building and injecting the map. This will work for 5699 MapBinderBindings retrieved from an injector and {@link Elements#getElements}. Usually this is 5700 only necessary if you are working with elements retrieved from modules (without an Injector), 5701 otherwise {@link #getEntries} and {@link #permitsDuplicates} are better options. 5702 <p> 5703 If you need to introspect the details of the map, such as the keys, values or if it permits 5704 duplicates, it is necessary to pass the elements through an Injector and use 5705 {@link #getEntries()} and {@link #permitsDuplicates()}.]]> 5706 </doc> 5707 </method> 5708 <doc> 5709 <![CDATA[A binding for a MapBinder. 5710 <p> 5711 Although MapBinders may be injected through a variety of generic types (Map<K, V>, Map 5712 <K, Provider<V>>, Map<K, Set<V>>, Map<K, Set< 5713 Provider<V>>, and even Set<Map.Entry<K, Provider<V>>), a 5714 MapBinderBinding exists only on the Binding associated with the Map<K, V> key. Other 5715 bindings can be validated to be derived from this MapBinderBinding using 5716 {@link #containsElement(Element)}. 5717 5718 @param <T> The fully qualified type of the map, including Map. For example: 5719 <code>MapBinderBinding<Map<String, Snack>></code> 5720 5721 @since 3.0 5722 @author sameb (a] google.com (Sam Berlin)]]> 5723 </doc> 5724 </interface> 5725 <!-- end interface com.google.inject.multibindings.MapBinderBinding --> 5726 <!-- start class com.google.inject.multibindings.Multibinder --> 5727 <class name="Multibinder" extends="java.lang.Object" 5728 abstract="true" 5729 static="false" final="false" visibility="public" 5730 deprecated="not deprecated"> 5731 <method name="newSetBinder" return="com.google.inject.multibindings.Multibinder<T>" 5732 abstract="false" native="false" synchronized="false" 5733 static="true" final="false" visibility="public" 5734 deprecated="not deprecated"> 5735 <param name="binder" type="com.google.inject.Binder"/> 5736 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 5737 <doc> 5738 <![CDATA[Returns a new multibinder that collects instances of {@code type} in a {@link Set} that is 5739 itself bound with no binding annotation.]]> 5740 </doc> 5741 </method> 5742 <method name="newSetBinder" return="com.google.inject.multibindings.Multibinder<T>" 5743 abstract="false" native="false" synchronized="false" 5744 static="true" final="false" visibility="public" 5745 deprecated="not deprecated"> 5746 <param name="binder" type="com.google.inject.Binder"/> 5747 <param name="type" type="java.lang.Class<T>"/> 5748 <doc> 5749 <![CDATA[Returns a new multibinder that collects instances of {@code type} in a {@link Set} that is 5750 itself bound with no binding annotation.]]> 5751 </doc> 5752 </method> 5753 <method name="newSetBinder" return="com.google.inject.multibindings.Multibinder<T>" 5754 abstract="false" native="false" synchronized="false" 5755 static="true" final="false" visibility="public" 5756 deprecated="not deprecated"> 5757 <param name="binder" type="com.google.inject.Binder"/> 5758 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 5759 <param name="annotation" type="java.lang.annotation.Annotation"/> 5760 <doc> 5761 <![CDATA[Returns a new multibinder that collects instances of {@code type} in a {@link Set} that is 5762 itself bound with {@code annotation}.]]> 5763 </doc> 5764 </method> 5765 <method name="newSetBinder" return="com.google.inject.multibindings.Multibinder<T>" 5766 abstract="false" native="false" synchronized="false" 5767 static="true" final="false" visibility="public" 5768 deprecated="not deprecated"> 5769 <param name="binder" type="com.google.inject.Binder"/> 5770 <param name="type" type="java.lang.Class<T>"/> 5771 <param name="annotation" type="java.lang.annotation.Annotation"/> 5772 <doc> 5773 <![CDATA[Returns a new multibinder that collects instances of {@code type} in a {@link Set} that is 5774 itself bound with {@code annotation}.]]> 5775 </doc> 5776 </method> 5777 <method name="newSetBinder" return="com.google.inject.multibindings.Multibinder<T>" 5778 abstract="false" native="false" synchronized="false" 5779 static="true" final="false" visibility="public" 5780 deprecated="not deprecated"> 5781 <param name="binder" type="com.google.inject.Binder"/> 5782 <param name="type" type="com.google.inject.TypeLiteral<T>"/> 5783 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 5784 <doc> 5785 <![CDATA[Returns a new multibinder that collects instances of {@code type} in a {@link Set} that is 5786 itself bound with {@code annotationType}.]]> 5787 </doc> 5788 </method> 5789 <method name="newSetBinder" return="com.google.inject.multibindings.Multibinder<T>" 5790 abstract="false" native="false" synchronized="false" 5791 static="true" final="false" visibility="public" 5792 deprecated="not deprecated"> 5793 <param name="binder" type="com.google.inject.Binder"/> 5794 <param name="type" type="java.lang.Class<T>"/> 5795 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 5796 <doc> 5797 <![CDATA[Returns a new multibinder that collects instances of {@code type} in a {@link Set} that is 5798 itself bound with {@code annotationType}.]]> 5799 </doc> 5800 </method> 5801 <method name="permitDuplicates" return="com.google.inject.multibindings.Multibinder<T>" 5802 abstract="true" native="false" synchronized="false" 5803 static="false" final="false" visibility="public" 5804 deprecated="not deprecated"> 5805 <doc> 5806 <![CDATA[Configures the bound set to silently discard duplicate elements. When multiple equal values are 5807 bound, the one that gets included is arbitrary. When multiple modules contribute elements to 5808 the set, this configuration option impacts all of them. 5809 5810 @return this multibinder 5811 @since 3.0]]> 5812 </doc> 5813 </method> 5814 <method name="addBinding" return="com.google.inject.binder.LinkedBindingBuilder<T>" 5815 abstract="true" native="false" synchronized="false" 5816 static="false" final="false" visibility="public" 5817 deprecated="not deprecated"> 5818 <doc> 5819 <![CDATA[Returns a binding builder used to add a new element in the set. Each 5820 bound element must have a distinct value. Bound providers will be 5821 evaluated each time the set is injected. 5822 5823 <p>It is an error to call this method without also calling one of the 5824 {@code to} methods on the returned binding builder. 5825 5826 <p>Scoping elements independently is supported. Use the {@code in} method 5827 to specify a binding scope.]]> 5828 </doc> 5829 </method> 5830 <doc> 5831 <![CDATA[An API to bind multiple values separately, only to later inject them as a 5832 complete collection. Multibinder is intended for use in your application's 5833 module: 5834 <pre><code> 5835 public class SnacksModule extends AbstractModule { 5836 protected void configure() { 5837 Multibinder<Snack> multibinder 5838 = Multibinder.newSetBinder(binder(), Snack.class); 5839 multibinder.addBinding().toInstance(new Twix()); 5840 multibinder.addBinding().toProvider(SnickersProvider.class); 5841 multibinder.addBinding().to(Skittles.class); 5842 } 5843 }</code></pre> 5844 5845 <p>With this binding, a {@link Set}{@code <Snack>} can now be injected: 5846 <pre><code> 5847 class SnackMachine { 5848 {@literal @}Inject 5849 public SnackMachine(Set<Snack> snacks) { ... } 5850 }</code></pre> 5851 5852 <p>Contributing multibindings from different modules is supported. For 5853 example, it is okay for both {@code CandyModule} and {@code ChipsModule} 5854 to create their own {@code Multibinder<Snack>}, and to each contribute 5855 bindings to the set of snacks. When that set is injected, it will contain 5856 elements from both modules. 5857 5858 <p>The set's iteration order is consistent with the binding order. This is 5859 convenient when multiple elements are contributed by the same module because 5860 that module can order its bindings appropriately. Avoid relying on the 5861 iteration order of elements contributed by different modules, since there is 5862 no equivalent mechanism to order modules. 5863 5864 <p>The set is unmodifiable. Elements can only be added to the set by 5865 configuring the multibinder. Elements can never be removed from the set. 5866 5867 <p>Elements are resolved at set injection time. If an element is bound to a 5868 provider, that provider's get method will be called each time the set is 5869 injected (unless the binding is also scoped). 5870 5871 <p>Annotations are be used to create different sets of the same element 5872 type. Each distinct annotation gets its own independent collection of 5873 elements. 5874 5875 <p><strong>Elements must be distinct.</strong> If multiple bound elements 5876 have the same value, set injection will fail. 5877 5878 <p><strong>Elements must be non-null.</strong> If any set element is null, 5879 set injection will fail. 5880 5881 @author jessewilson (a] google.com (Jesse Wilson)]]> 5882 </doc> 5883 </class> 5884 <!-- end class com.google.inject.multibindings.Multibinder --> 5885 <!-- start interface com.google.inject.multibindings.MultibinderBinding --> 5886 <interface name="MultibinderBinding" abstract="true" 5887 static="false" final="false" visibility="public" 5888 deprecated="not deprecated"> 5889 <method name="getSetKey" return="com.google.inject.Key<T>" 5890 abstract="true" native="false" synchronized="false" 5891 static="false" final="false" visibility="public" 5892 deprecated="not deprecated"> 5893 <doc> 5894 <![CDATA[Returns the key for the set.]]> 5895 </doc> 5896 </method> 5897 <method name="getElementTypeLiteral" return="com.google.inject.TypeLiteral<?>" 5898 abstract="true" native="false" synchronized="false" 5899 static="false" final="false" visibility="public" 5900 deprecated="not deprecated"> 5901 <doc> 5902 <![CDATA[Returns the TypeLiteral that describes the type of elements in the set. 5903 <p> 5904 The elements will always match the type Set's generic type. For example, if getSetKey returns a 5905 key of <code>Set<String></code>, then this will always return a 5906 <code>TypeLiteral<String></code>.]]> 5907 </doc> 5908 </method> 5909 <method name="getElements" return="java.util.List<com.google.inject.Binding<?>>" 5910 abstract="true" native="false" synchronized="false" 5911 static="false" final="false" visibility="public" 5912 deprecated="not deprecated"> 5913 <doc> 5914 <![CDATA[Returns all bindings that make up the set. This is only supported on bindings returned from an 5915 injector. This will throw {@link UnsupportedOperationException} if it is called on an element 5916 retrieved from {@link Elements#getElements}. 5917 <p> 5918 The elements will always match the type Set's generic type. For example, if getSetKey returns a 5919 key of <code>Set<String></code>, then this will always return a list of type 5920 <code>List<Binding<String>></code>.]]> 5921 </doc> 5922 </method> 5923 <method name="permitsDuplicates" return="boolean" 5924 abstract="true" native="false" synchronized="false" 5925 static="false" final="false" visibility="public" 5926 deprecated="not deprecated"> 5927 <doc> 5928 <![CDATA[Returns true if the multibinder permits duplicates. This is only supported on bindings returned 5929 from an injector. This will throw {@link UnsupportedOperationException} if it is called on a 5930 MultibinderBinding retrieved from {@link Elements#getElements}.]]> 5931 </doc> 5932 </method> 5933 <method name="containsElement" return="boolean" 5934 abstract="true" native="false" synchronized="false" 5935 static="false" final="false" visibility="public" 5936 deprecated="not deprecated"> 5937 <param name="element" type="com.google.inject.spi.Element"/> 5938 <doc> 5939 <![CDATA[Returns true if this Multibinder uses the given Element. This will be true for bindings that 5940 derive the elements of the set and other bindings that Multibinder uses internally. This will 5941 work for MultibinderBindings retrieved from an injector and {@link Elements#getElements}. 5942 Usually this is only necessary if you are working with elements retrieved from modules (without 5943 an Injector), otherwise {@link #getElements} and {@link #permitsDuplicates} are better options. 5944 <p> 5945 If you need to introspect the details of the set, such as the values or if it permits 5946 duplicates, it is necessary to pass the elements through an Injector and use 5947 {@link #getElements()} and {@link #permitsDuplicates()}.]]> 5948 </doc> 5949 </method> 5950 <doc> 5951 <![CDATA[A binding for a Multibinder. 5952 5953 @param <T> The fully qualified type of the set, including Set. For example: 5954 <code>MultibinderBinding<Set<Boolean>></code> 5955 5956 @since 3.0 5957 @author sameb (a] google.com (Sam Berlin)]]> 5958 </doc> 5959 </interface> 5960 <!-- end interface com.google.inject.multibindings.MultibinderBinding --> 5961 <!-- start interface com.google.inject.multibindings.MultibindingsTargetVisitor --> 5962 <interface name="MultibindingsTargetVisitor" abstract="true" 5963 static="false" final="false" visibility="public" 5964 deprecated="not deprecated"> 5965 <implements name="com.google.inject.spi.BindingTargetVisitor<T, V>"/> 5966 <method name="visit" return="V" 5967 abstract="true" native="false" synchronized="false" 5968 static="false" final="false" visibility="public" 5969 deprecated="not deprecated"> 5970 <param name="multibinding" type="com.google.inject.multibindings.MultibinderBinding<? extends T>"/> 5971 <doc> 5972 <![CDATA[Visits a binding created through {@link Multibinder}.]]> 5973 </doc> 5974 </method> 5975 <method name="visit" return="V" 5976 abstract="true" native="false" synchronized="false" 5977 static="false" final="false" visibility="public" 5978 deprecated="not deprecated"> 5979 <param name="mapbinding" type="com.google.inject.multibindings.MapBinderBinding<? extends T>"/> 5980 <doc> 5981 <![CDATA[Visits a binding created through {@link MapBinder}.]]> 5982 </doc> 5983 </method> 5984 <doc> 5985 <![CDATA[A visitor for the multibinder extension. 5986 <p> 5987 If your {@link BindingTargetVisitor} implements this interface, bindings created by using 5988 {@link Multibinder} or {@link MapBinder} will be visited through this interface. 5989 5990 @since 3.0 5991 @author sameb (a] google.com (Sam Berlin)]]> 5992 </doc> 5993 </interface> 5994 <!-- end interface com.google.inject.multibindings.MultibindingsTargetVisitor --> 5995 </package> 5996 <package name="com.google.inject.name"> 5997 <!-- start class com.google.inject.name.Named --> 5998 <class name="Named" abstract="true" 5999 static="false" final="false" visibility="public" 6000 deprecated="not deprecated"> 6001 <implements name="java.lang.annotation.Annotation"/> 6002 <doc> 6003 <![CDATA[Annotates named things. 6004 6005 @author crazybob (a] google.com (Bob Lee)]]> 6006 </doc> 6007 </class> 6008 <!-- end class com.google.inject.name.Named --> 6009 <!-- start class com.google.inject.name.Names --> 6010 <class name="Names" extends="java.lang.Object" 6011 abstract="false" 6012 static="false" final="false" visibility="public" 6013 deprecated="not deprecated"> 6014 <method name="named" return="com.google.inject.name.Named" 6015 abstract="false" native="false" synchronized="false" 6016 static="true" final="false" visibility="public" 6017 deprecated="not deprecated"> 6018 <param name="name" type="java.lang.String"/> 6019 <doc> 6020 <![CDATA[Creates a {@link Named} annotation with {@code name} as the value.]]> 6021 </doc> 6022 </method> 6023 <method name="bindProperties" 6024 abstract="false" native="false" synchronized="false" 6025 static="true" final="false" visibility="public" 6026 deprecated="not deprecated"> 6027 <param name="binder" type="com.google.inject.Binder"/> 6028 <param name="properties" type="java.util.Map<java.lang.String, java.lang.String>"/> 6029 <doc> 6030 <![CDATA[Creates a constant binding to {@code @Named(key)} for each entry in 6031 {@code properties}.]]> 6032 </doc> 6033 </method> 6034 <method name="bindProperties" 6035 abstract="false" native="false" synchronized="false" 6036 static="true" final="false" visibility="public" 6037 deprecated="not deprecated"> 6038 <param name="binder" type="com.google.inject.Binder"/> 6039 <param name="properties" type="java.util.Properties"/> 6040 <doc> 6041 <![CDATA[Creates a constant binding to {@code @Named(key)} for each property. This 6042 method binds all properties including those inherited from 6043 {@link Properties#defaults defaults}.]]> 6044 </doc> 6045 </method> 6046 <doc> 6047 <![CDATA[Utility methods for use with {@code @}{@link Named}. 6048 6049 @author crazybob (a] google.com (Bob Lee)]]> 6050 </doc> 6051 </class> 6052 <!-- end class com.google.inject.name.Names --> 6053 </package> 6054 <package name="com.google.inject.persist"> 6055 <!-- start class com.google.inject.persist.PersistFilter --> 6056 <class name="PersistFilter" extends="java.lang.Object" 6057 abstract="false" 6058 static="false" final="true" visibility="public" 6059 deprecated="not deprecated"> 6060 <constructor name="PersistFilter" type="com.google.inject.persist.UnitOfWork, com.google.inject.persist.PersistService" 6061 static="false" final="false" visibility="public" 6062 deprecated="not deprecated"> 6063 </constructor> 6064 <method name="init" 6065 abstract="false" native="false" synchronized="false" 6066 static="false" final="false" visibility="public" 6067 deprecated="not deprecated"> 6068 <param name="filterConfig" type="FilterConfig"/> 6069 <exception name="ServletException" type="ServletException"/> 6070 </method> 6071 <method name="destroy" 6072 abstract="false" native="false" synchronized="false" 6073 static="false" final="false" visibility="public" 6074 deprecated="not deprecated"> 6075 </method> 6076 <method name="doFilter" 6077 abstract="false" native="false" synchronized="false" 6078 static="false" final="false" visibility="public" 6079 deprecated="not deprecated"> 6080 <param name="servletRequest" type="ServletRequest"/> 6081 <param name="servletResponse" type="ServletResponse"/> 6082 <param name="filterChain" type="FilterChain"/> 6083 <exception name="IOException" type="java.io.IOException"/> 6084 <exception name="ServletException" type="ServletException"/> 6085 </method> 6086 <doc> 6087 <![CDATA[Apply this filter to enable the HTTP Request unit of work and to have 6088 guice-persist manage the lifecycle of active units of work. 6089 The filter automatically starts and stops the relevant {@link PersistService} 6090 upon {@link javax.servlet.Filter#init(javax.servlet.FilterConfig)} and 6091 {@link javax.servlet.Filter#destroy()} respectively. 6092 6093 <p> To be able to use the open session-in-view pattern (i.e. work per request), 6094 register this filter <b>once</b> in your Guice {@code ServletModule}. It is 6095 important that you register this filter before any other filter. 6096 6097 For multiple providers, you should register this filter once per provider, inside 6098 a private module for each persist module installed (this must be the same private 6099 module where the specific persist module is itself installed). 6100 6101 <p> 6102 Example configuration: 6103 <pre>{@code 6104 public class MyModule extends ServletModule { 6105 public void configureServlets() { 6106 filter("/*").through(PersistFilter.class); 6107 6108 serve("/index.html").with(MyHtmlServlet.class); 6109 // Etc. 6110 } 6111 } 6112 }</pre> 6113 <p> 6114 This filter is thread safe and allows you to create injectors concurrently 6115 and deploy multiple guice-persist modules within the same injector, or even 6116 multiple injectors with persist modules withing the same JVM or web app. 6117 <p> 6118 This filter requires the Guice Servlet extension. 6119 6120 @author Dhanji R. Prasanna (dhanji (a] gmail.com)]]> 6121 </doc> 6122 </class> 6123 <!-- end class com.google.inject.persist.PersistFilter --> 6124 <!-- start class com.google.inject.persist.PersistModule --> 6125 <class name="PersistModule" extends="com.google.inject.AbstractModule" 6126 abstract="true" 6127 static="false" final="false" visibility="public" 6128 deprecated="not deprecated"> 6129 <constructor name="PersistModule" 6130 static="false" final="false" visibility="public" 6131 deprecated="not deprecated"> 6132 </constructor> 6133 <method name="configure" 6134 abstract="false" native="false" synchronized="false" 6135 static="false" final="true" visibility="protected" 6136 deprecated="not deprecated"> 6137 </method> 6138 <method name="configurePersistence" 6139 abstract="true" native="false" synchronized="false" 6140 static="false" final="false" visibility="protected" 6141 deprecated="not deprecated"> 6142 </method> 6143 <method name="getTransactionInterceptor" return="org.aopalliance.intercept.MethodInterceptor" 6144 abstract="true" native="false" synchronized="false" 6145 static="false" final="false" visibility="protected" 6146 deprecated="not deprecated"> 6147 </method> 6148 <doc> 6149 <![CDATA[Install this module to add guice-persist library support for JPA persistence 6150 providers. 6151 6152 @author dhanji (a] gmail.com (Dhanji R. Prasanna)]]> 6153 </doc> 6154 </class> 6155 <!-- end class com.google.inject.persist.PersistModule --> 6156 <!-- start interface com.google.inject.persist.PersistService --> 6157 <interface name="PersistService" abstract="true" 6158 static="false" final="false" visibility="public" 6159 deprecated="not deprecated"> 6160 <method name="start" 6161 abstract="true" native="false" synchronized="false" 6162 static="false" final="false" visibility="public" 6163 deprecated="not deprecated"> 6164 <doc> 6165 <![CDATA[Starts the underlying persistence engine and makes guice-persist ready for 6166 use. For instance, with JPA, it creates an EntityManagerFactory and may 6167 open connection pools. This method must be called by your code prior to 6168 using any guice-persist or JPA artifacts. If already started, 6169 calling this method does nothing, if already stopped, it also does 6170 nothing.]]> 6171 </doc> 6172 </method> 6173 <method name="stop" 6174 abstract="true" native="false" synchronized="false" 6175 static="false" final="false" visibility="public" 6176 deprecated="not deprecated"> 6177 <doc> 6178 <![CDATA[Stops the underlying persistence engine. For instance, with JPA, it 6179 closes the {@code EntityManagerFactory}. If already stopped, calling this 6180 method does nothing. If not yet started, it also does nothing.]]> 6181 </doc> 6182 </method> 6183 <doc> 6184 <![CDATA[Persistence provider service. Use this to manage the overall 6185 startup and stop of the persistence module(s). 6186 6187 TODO(dhanji): Integrate with Service API when appropriate. 6188 6189 @author dhanji (a] gmail.com (Dhanji R. Prasanna)]]> 6190 </doc> 6191 </interface> 6192 <!-- end interface com.google.inject.persist.PersistService --> 6193 <!-- start class com.google.inject.persist.Transactional --> 6194 <class name="Transactional" abstract="true" 6195 static="false" final="false" visibility="public" 6196 deprecated="not deprecated"> 6197 <implements name="java.lang.annotation.Annotation"/> 6198 <doc> 6199 <![CDATA[<p> Any method or class marked with this annotation will be considered for transactionality. 6200 Consult the documentation on http://code.google.com/p/google-guice for detailed semantics. 6201 Marking a method {@code @Transactional} will start a new transaction before the method 6202 executes and commit it after the method returns. 6203 <p> 6204 If the method throws an exception, the transaction will be rolled back <em>unless</em> 6205 you have specifically requested not to in the {@link #ignore()} clause. 6206 <p> 6207 Similarly, the set of exceptions that will trigger a rollback can be defined in 6208 the {@link #rollbackOn()} clause. By default, only unchecked exceptions trigger a 6209 rollback. 6210 6211 @author Dhanji R. Prasanna (dhanji (a] gmail.com)]]> 6212 </doc> 6213 </class> 6214 <!-- end class com.google.inject.persist.Transactional --> 6215 <!-- start interface com.google.inject.persist.UnitOfWork --> 6216 <interface name="UnitOfWork" abstract="true" 6217 static="false" final="false" visibility="public" 6218 deprecated="not deprecated"> 6219 <method name="begin" 6220 abstract="true" native="false" synchronized="false" 6221 static="false" final="false" visibility="public" 6222 deprecated="not deprecated"> 6223 <doc> 6224 <![CDATA[Starts a Unit Of Work. Underneath, causes a session to the data layer to be opened. If there 6225 is already one open, the invocation will do nothing. In this way, you can define arbitrary 6226 units-of-work that nest within one another safely. 6227 6228 Transaction semantics are not affected.]]> 6229 </doc> 6230 </method> 6231 <method name="end" 6232 abstract="true" native="false" synchronized="false" 6233 static="false" final="false" visibility="public" 6234 deprecated="not deprecated"> 6235 <doc> 6236 <![CDATA[Declares an end to the current Unit of Work. Underneath, causes any open session to the data 6237 layer to close. If there is no Unit of work open, then the call returns silently. You can 6238 safely invoke end() repeatedly. 6239 <p> 6240 Transaction semantics are not affected.]]> 6241 </doc> 6242 </method> 6243 <doc> 6244 <![CDATA[This interface is used to gain manual control over the unit of work. This is mostly to do 6245 work in non-request, non-transactional threads. Or where more fine-grained control over the unit 6246 of work is required. Starting and ending a unit of work directly corresponds to opening and 6247 closing a {@code Session}, {@code EntityManager} or {@code ObjectContainer} respectively. 6248 <p> The 6249 Unit of Work referred to by UnitOfWork will always be local to the calling thread. Be careful to 6250 end() in a finally block. Neither JPA, nor Hibernate supports threadsafe sessions (reasoning 6251 behind thread-locality of Unit of Work semantics). 6252 6253 <ul> 6254 <li>Using UnitOfWork with the PersistFilter inside a request is not recommended.</li> 6255 <li>Using UnitOfWork with session-per-txn strategy is not terribly clever either.</li> 6256 <li>Using UnitOfWork with session-per-request strategy but *outside* a request (i.e. in a 6257 background or bootstrap thread) is probably a good use case.</li> 6258 </ul> 6259 6260 @author Dhanji R. Prasanna (dhanji@gmail com)]]> 6261 </doc> 6262 </interface> 6263 <!-- end interface com.google.inject.persist.UnitOfWork --> 6264 </package> 6265 <package name="com.google.inject.persist.finder"> 6266 <!-- start class com.google.inject.persist.finder.DynamicFinder --> 6267 <class name="DynamicFinder" extends="java.lang.Object" 6268 abstract="false" 6269 static="false" final="true" visibility="public" 6270 deprecated="not deprecated"> 6271 <constructor name="DynamicFinder" type="java.lang.reflect.Method" 6272 static="false" final="false" visibility="public" 6273 deprecated="not deprecated"> 6274 </constructor> 6275 <method name="from" return="com.google.inject.persist.finder.DynamicFinder" 6276 abstract="false" native="false" synchronized="false" 6277 static="true" final="false" visibility="public" 6278 deprecated="not deprecated"> 6279 <param name="method" type="java.lang.reflect.Method"/> 6280 <doc> 6281 <![CDATA[Returns some metadata if the method is annotated {@code @Finder} or null. 6282 6283 @param method a method you want to test as a dynamic finder]]> 6284 </doc> 6285 </method> 6286 <method name="metadata" return="com.google.inject.persist.finder.Finder" 6287 abstract="false" native="false" synchronized="false" 6288 static="false" final="false" visibility="public" 6289 deprecated="not deprecated"> 6290 </method> 6291 <doc> 6292 <![CDATA[Utility that helps you introspect dynamic finder methods. 6293 6294 @author dhanji (a] gmail.com (Dhanji R. Prasanna)]]> 6295 </doc> 6296 </class> 6297 <!-- end class com.google.inject.persist.finder.DynamicFinder --> 6298 <!-- start class com.google.inject.persist.finder.Finder --> 6299 <class name="Finder" abstract="true" 6300 static="false" final="false" visibility="public" 6301 deprecated="not deprecated"> 6302 <implements name="java.lang.annotation.Annotation"/> 6303 <doc> 6304 <![CDATA[Marks a method stub as a dynamic finder. The method is intercepted and replaced with the 6305 specified JPAQL query. Provides result auto-boxing and automatic parameter binding. 6306 6307 @author Dhanji R. Prasanna (dhanji (a] gmail.com)]]> 6308 </doc> 6309 </class> 6310 <!-- end class com.google.inject.persist.finder.Finder --> 6311 <!-- start class com.google.inject.persist.finder.FirstResult --> 6312 <class name="FirstResult" abstract="true" 6313 static="false" final="false" visibility="public" 6314 deprecated="not deprecated"> 6315 <implements name="java.lang.annotation.Annotation"/> 6316 <doc> 6317 <![CDATA[Annotate any dynamic finder method's integer argument with this to pass in 6318 the index of the first result in the result set you are interested in. 6319 Useful for paging result sets. Complemented by {@link MaxResults}. 6320 6321 @author Dhanji R. Prasanna (dhanji (a] gmail.com)]]> 6322 </doc> 6323 </class> 6324 <!-- end class com.google.inject.persist.finder.FirstResult --> 6325 <!-- start class com.google.inject.persist.finder.MaxResults --> 6326 <class name="MaxResults" abstract="true" 6327 static="false" final="false" visibility="public" 6328 deprecated="not deprecated"> 6329 <implements name="java.lang.annotation.Annotation"/> 6330 <doc> 6331 <![CDATA[Annotate any dynamic finder method's integer argument with this to pass in 6332 the maximum size of returned result window. Usefule for paging result sets. 6333 Complement of {@link FirstResult}. 6334 6335 @author Dhanji R. Prasanna (dhanji (a] gmail.com)]]> 6336 </doc> 6337 </class> 6338 <!-- end class com.google.inject.persist.finder.MaxResults --> 6339 </package> 6340 <package name="com.google.inject.persist.jpa"> 6341 <!-- start class com.google.inject.persist.jpa.JpaPersistModule --> 6342 <class name="JpaPersistModule" extends="com.google.inject.persist.PersistModule" 6343 abstract="false" 6344 static="false" final="true" visibility="public" 6345 deprecated="not deprecated"> 6346 <constructor name="JpaPersistModule" type="java.lang.String" 6347 static="false" final="false" visibility="public" 6348 deprecated="not deprecated"> 6349 </constructor> 6350 <method name="configurePersistence" 6351 abstract="false" native="false" synchronized="false" 6352 static="false" final="false" visibility="protected" 6353 deprecated="not deprecated"> 6354 </method> 6355 <method name="getTransactionInterceptor" return="org.aopalliance.intercept.MethodInterceptor" 6356 abstract="false" native="false" synchronized="false" 6357 static="false" final="false" visibility="protected" 6358 deprecated="not deprecated"> 6359 </method> 6360 <method name="properties" return="com.google.inject.persist.jpa.JpaPersistModule" 6361 abstract="false" native="false" synchronized="false" 6362 static="false" final="false" visibility="public" 6363 deprecated="not deprecated"> 6364 <param name="properties" type="java.util.Properties"/> 6365 <doc> 6366 <![CDATA[Configures the JPA persistence provider with a set of properties. 6367 6368 @param properties A set of name value pairs that configure a JPA persistence 6369 provider as per the specification.]]> 6370 </doc> 6371 </method> 6372 <method name="addFinder" return="com.google.inject.persist.jpa.JpaPersistModule" 6373 abstract="false" native="false" synchronized="false" 6374 static="false" final="false" visibility="public" 6375 deprecated="not deprecated"> 6376 <param name="iface" type="java.lang.Class<T>"/> 6377 <doc> 6378 <![CDATA[Adds an interface to this module to use as a dynamic finder. 6379 6380 @param iface Any interface type whose methods are all dynamic finders.]]> 6381 </doc> 6382 </method> 6383 <doc> 6384 <![CDATA[JPA provider for guice persist. 6385 6386 @author dhanji (a] gmail.com (Dhanji R. Prasanna)]]> 6387 </doc> 6388 </class> 6389 <!-- end class com.google.inject.persist.jpa.JpaPersistModule --> 6390 </package> 6391 <package name="com.google.inject.servlet"> 6392 <!-- start class com.google.inject.servlet.GuiceFilter --> 6393 <class name="GuiceFilter" extends="java.lang.Object" 6394 abstract="false" 6395 static="false" final="false" visibility="public" 6396 deprecated="not deprecated"> 6397 <constructor name="GuiceFilter" 6398 static="false" final="false" visibility="public" 6399 deprecated="not deprecated"> 6400 </constructor> 6401 <method name="doFilter" 6402 abstract="false" native="false" synchronized="false" 6403 static="false" final="false" visibility="public" 6404 deprecated="not deprecated"> 6405 <param name="servletRequest" type="ServletRequest"/> 6406 <param name="servletResponse" type="ServletResponse"/> 6407 <param name="filterChain" type="FilterChain"/> 6408 <exception name="IOException" type="java.io.IOException"/> 6409 <exception name="ServletException" type="ServletException"/> 6410 </method> 6411 <method name="init" 6412 abstract="false" native="false" synchronized="false" 6413 static="false" final="false" visibility="public" 6414 deprecated="not deprecated"> 6415 <param name="filterConfig" type="FilterConfig"/> 6416 <exception name="ServletException" type="ServletException"/> 6417 </method> 6418 <method name="destroy" 6419 abstract="false" native="false" synchronized="false" 6420 static="false" final="false" visibility="public" 6421 deprecated="not deprecated"> 6422 </method> 6423 <doc> 6424 <![CDATA[<p> 6425 Apply this filter in web.xml above all other filters (typically), to all requests where you plan 6426 to use servlet scopes. This is also needed in order to dispatch requests to injectable filters 6427 and servlets: 6428 <pre> 6429 <filter> 6430 <filter-name>guiceFilter</filter-name> 6431 <filter-class><b>com.google.inject.servlet.GuiceFilter</b></filter-class> 6432 </filter> 6433 6434 <filter-mapping> 6435 <filter-name>guiceFilter</filter-name> 6436 <url-pattern>/*</url-pattern> 6437 </filter-mapping> 6438 </pre> 6439 6440 This filter must appear before every filter that makes use of Guice injection or servlet 6441 scopes functionality. Typically, you will only register this filter in web.xml and register 6442 any other filters (and servlets) using a {@link ServletModule}. 6443 6444 @author crazybob (a] google.com (Bob Lee) 6445 @author dhanji (a] gmail.com (Dhanji R. Prasanna)]]> 6446 </doc> 6447 </class> 6448 <!-- end class com.google.inject.servlet.GuiceFilter --> 6449 <!-- start class com.google.inject.servlet.GuiceServletContextListener --> 6450 <class name="GuiceServletContextListener" extends="java.lang.Object" 6451 abstract="true" 6452 static="false" final="false" visibility="public" 6453 deprecated="not deprecated"> 6454 <constructor name="GuiceServletContextListener" 6455 static="false" final="false" visibility="public" 6456 deprecated="not deprecated"> 6457 </constructor> 6458 <method name="contextInitialized" 6459 abstract="false" native="false" synchronized="false" 6460 static="false" final="false" visibility="public" 6461 deprecated="not deprecated"> 6462 <param name="servletContextEvent" type="ServletContextEvent"/> 6463 </method> 6464 <method name="contextDestroyed" 6465 abstract="false" native="false" synchronized="false" 6466 static="false" final="false" visibility="public" 6467 deprecated="not deprecated"> 6468 <param name="servletContextEvent" type="ServletContextEvent"/> 6469 </method> 6470 <method name="getInjector" return="com.google.inject.Injector" 6471 abstract="true" native="false" synchronized="false" 6472 static="false" final="false" visibility="protected" 6473 deprecated="not deprecated"> 6474 <doc> 6475 <![CDATA[Override this method to create (or otherwise obtain a reference to) your 6476 injector.]]> 6477 </doc> 6478 </method> 6479 <doc> 6480 <![CDATA[As of Guice 2.0 you can still use (your subclasses of) {@code GuiceServletContextListener} 6481 class as a logical place to create and configure your injector. This will ensure the injector 6482 is created when the web application is deployed. 6483 6484 @author Kevin Bourrillion (kevinb (a] google.com) 6485 @since 2.0]]> 6486 </doc> 6487 </class> 6488 <!-- end class com.google.inject.servlet.GuiceServletContextListener --> 6489 <!-- start interface com.google.inject.servlet.InstanceFilterBinding --> 6490 <interface name="InstanceFilterBinding" abstract="true" 6491 static="false" final="false" visibility="public" 6492 deprecated="not deprecated"> 6493 <implements name="com.google.inject.servlet.ServletModuleBinding"/> 6494 <method name="getFilterInstance" return="Filter" 6495 abstract="true" native="false" synchronized="false" 6496 static="false" final="false" visibility="public" 6497 deprecated="not deprecated"> 6498 <doc> 6499 <![CDATA[Returns the filter instance that will be used.]]> 6500 </doc> 6501 </method> 6502 <doc> 6503 <![CDATA[A binding to a single instance of a filter. 6504 6505 @author sameb (a] google.com 6506 @since 3.0]]> 6507 </doc> 6508 </interface> 6509 <!-- end interface com.google.inject.servlet.InstanceFilterBinding --> 6510 <!-- start interface com.google.inject.servlet.InstanceServletBinding --> 6511 <interface name="InstanceServletBinding" abstract="true" 6512 static="false" final="false" visibility="public" 6513 deprecated="not deprecated"> 6514 <implements name="com.google.inject.servlet.ServletModuleBinding"/> 6515 <method name="getServletInstance" return="HttpServlet" 6516 abstract="true" native="false" synchronized="false" 6517 static="false" final="false" visibility="public" 6518 deprecated="not deprecated"> 6519 <doc> 6520 <![CDATA[Returns the servlet instance that will be used.]]> 6521 </doc> 6522 </method> 6523 <doc> 6524 <![CDATA[A binding to a single instance of a servlet. 6525 6526 @author sameb (a] google.com 6527 @since 3.0]]> 6528 </doc> 6529 </interface> 6530 <!-- end interface com.google.inject.servlet.InstanceServletBinding --> 6531 <!-- start interface com.google.inject.servlet.LinkedFilterBinding --> 6532 <interface name="LinkedFilterBinding" abstract="true" 6533 static="false" final="false" visibility="public" 6534 deprecated="not deprecated"> 6535 <implements name="com.google.inject.servlet.ServletModuleBinding"/> 6536 <method name="getLinkedKey" return="com.google.inject.Key<? extends Filter>" 6537 abstract="true" native="false" synchronized="false" 6538 static="false" final="false" visibility="public" 6539 deprecated="not deprecated"> 6540 <doc> 6541 <![CDATA[Returns the key used to lookup the filter instance.]]> 6542 </doc> 6543 </method> 6544 <doc> 6545 <![CDATA[A linked binding to a filter. 6546 6547 @author sameb (a] google.com 6548 @since 3.0]]> 6549 </doc> 6550 </interface> 6551 <!-- end interface com.google.inject.servlet.LinkedFilterBinding --> 6552 <!-- start interface com.google.inject.servlet.LinkedServletBinding --> 6553 <interface name="LinkedServletBinding" abstract="true" 6554 static="false" final="false" visibility="public" 6555 deprecated="not deprecated"> 6556 <implements name="com.google.inject.servlet.ServletModuleBinding"/> 6557 <method name="getLinkedKey" return="com.google.inject.Key<? extends HttpServlet>" 6558 abstract="true" native="false" synchronized="false" 6559 static="false" final="false" visibility="public" 6560 deprecated="not deprecated"> 6561 <doc> 6562 <![CDATA[Returns the key used to lookup the servlet instance.]]> 6563 </doc> 6564 </method> 6565 <doc> 6566 <![CDATA[A linked binding to a servlet. 6567 6568 @author sameb (a] google.com 6569 @since 3.0]]> 6570 </doc> 6571 </interface> 6572 <!-- end interface com.google.inject.servlet.LinkedServletBinding --> 6573 <!-- start class com.google.inject.servlet.RequestParameters --> 6574 <class name="RequestParameters" abstract="true" 6575 static="false" final="false" visibility="public" 6576 deprecated="not deprecated"> 6577 <implements name="java.lang.annotation.Annotation"/> 6578 <doc> 6579 <![CDATA[Apply this to field or parameters of type {@code Map<String, String[]>} 6580 when you want the HTTP request parameter map to be injected. 6581 6582 @author crazybob (a] google.com (Bob Lee)]]> 6583 </doc> 6584 </class> 6585 <!-- end class com.google.inject.servlet.RequestParameters --> 6586 <!-- start class com.google.inject.servlet.RequestScoped --> 6587 <class name="RequestScoped" abstract="true" 6588 static="false" final="false" visibility="public" 6589 deprecated="not deprecated"> 6590 <implements name="java.lang.annotation.Annotation"/> 6591 <doc> 6592 <![CDATA[Apply this to implementation classes when you want one instance per request. 6593 6594 @author crazybob (a] google.com (Bob Lee)]]> 6595 </doc> 6596 </class> 6597 <!-- end class com.google.inject.servlet.RequestScoped --> 6598 <!-- start class com.google.inject.servlet.ScopingException --> 6599 <class name="ScopingException" extends="java.lang.IllegalStateException" 6600 abstract="false" 6601 static="false" final="true" visibility="public" 6602 deprecated="not deprecated"> 6603 <constructor name="ScopingException" type="java.lang.String" 6604 static="false" final="false" visibility="public" 6605 deprecated="not deprecated"> 6606 </constructor> 6607 <doc> 6608 <![CDATA[Exception thrown when there was a failure entering request scope. 6609 6610 @author Chris Nokleberg]]> 6611 </doc> 6612 </class> 6613 <!-- end class com.google.inject.servlet.ScopingException --> 6614 <!-- start class com.google.inject.servlet.ScopingOnly --> 6615 <class name="ScopingOnly" abstract="true" 6616 static="false" final="false" visibility="public" 6617 deprecated="not deprecated"> 6618 <implements name="java.lang.annotation.Annotation"/> 6619 <doc> 6620 <![CDATA[Annotates a {@link GuiceFilter} that provides scope functionality, but 6621 doesn't dispatch to {@link ServletModule} bound servlets or filters. 6622 6623 @author iqshum (a] google.com (Isaac Shum)]]> 6624 </doc> 6625 </class> 6626 <!-- end class com.google.inject.servlet.ScopingOnly --> 6627 <!-- start class com.google.inject.servlet.ServletModule --> 6628 <class name="ServletModule" extends="com.google.inject.AbstractModule" 6629 abstract="false" 6630 static="false" final="false" visibility="public" 6631 deprecated="not deprecated"> 6632 <constructor name="ServletModule" 6633 static="false" final="false" visibility="public" 6634 deprecated="not deprecated"> 6635 </constructor> 6636 <method name="configure" 6637 abstract="false" native="false" synchronized="false" 6638 static="false" final="true" visibility="protected" 6639 deprecated="not deprecated"> 6640 </method> 6641 <method name="configureServlets" 6642 abstract="false" native="false" synchronized="false" 6643 static="false" final="false" visibility="protected" 6644 deprecated="not deprecated"> 6645 <doc> 6646 <![CDATA[<h3>Servlet Mapping EDSL</h3> 6647 6648 <p> Part of the EDSL builder language for configuring servlets 6649 and filters with guice-servlet. Think of this as an in-code replacement for web.xml. 6650 Filters and servlets are configured here using simple java method calls. Here is a typical 6651 example of registering a filter when creating your Guice injector: 6652 6653 <pre> 6654 Guice.createInjector(..., new ServletModule() { 6655 6656 {@literal @}Override 6657 protected void configureServlets() { 6658 <b>serve("*.html").with(MyServlet.class)</b> 6659 } 6660 } 6661 </pre> 6662 6663 This registers a servlet (subclass of {@code HttpServlet}) called {@code MyServlet} to service 6664 any web pages ending in {@code .html}. You can also use a path-style syntax to register 6665 servlets: 6666 6667 <pre> 6668 <b>serve("/my/*").with(MyServlet.class)</b> 6669 </pre> 6670 6671 Every servlet (or filter) is required to be a singleton. If you cannot annotate the class 6672 directly, you should add a separate {@code bind(..).in(Singleton.class)} rule elsewhere in 6673 your module. Mapping a servlet that is bound under any other scope is an error. 6674 6675 <p> 6676 <h4>Dispatch Order</h4> 6677 You are free to register as many servlets and filters as you like this way. They will 6678 be compared and dispatched in the order in which the filter methods are called: 6679 6680 <pre> 6681 6682 Guice.createInjector(..., new ServletModule() { 6683 6684 {@literal @}Override 6685 protected void configureServlets() { 6686 filter("/*").through(MyFilter.class); 6687 filter("*.css").through(MyCssFilter.class); 6688 filter("*.jpg").through(new MyJpgFilter()); 6689 // etc.. 6690 6691 serve("*.html").with(MyServlet.class); 6692 serve("/my/*").with(MyServlet.class); 6693 serve("*.jpg").with(new MyServlet()); 6694 // etc.. 6695 } 6696 } 6697 </pre> 6698 This will traverse down the list of rules in lexical order. For example, a url 6699 "{@code /my/file.js}" (after it runs through the matching filters) will first 6700 be compared against the servlet mapping: 6701 6702 <pre> 6703 serve("*.html").with(MyServlet.class); 6704 </pre> 6705 And failing that, it will descend to the next servlet mapping: 6706 6707 <pre> 6708 serve("/my/*").with(MyServlet.class); 6709 </pre> 6710 6711 Since this rule matches, Guice Servlet will dispatch to {@code MyServlet}. These 6712 two mapping rules can also be written in more compact form using varargs syntax: 6713 6714 <pre> 6715 serve(<b>"*.html", "/my/*"</b>).with(MyServlet.class); 6716 </pre> 6717 6718 This way you can map several URI patterns to the same servlet. A similar syntax is 6719 also available for filter mappings. 6720 6721 <p> 6722 <h4>Regular Expressions</h4> 6723 You can also map servlets (or filters) to URIs using regular expressions: 6724 <pre> 6725 <b>serveRegex("(.)*ajax(.)*").with(MyAjaxServlet.class)</b> 6726 </pre> 6727 6728 This will map any URI containing the text "ajax" in it to {@code MyAjaxServlet}. Such as: 6729 <ul> 6730 <li>http://www.google.com/ajax.html</li> 6731 <li>http://www.google.com/content/ajax/index</li> 6732 <li>http://www.google.com/it/is_totally_ajaxian</li> 6733 </ul> 6734 6735 6736 <h3>Initialization Parameters</h3> 6737 6738 Servlets (and filters) allow you to pass in init params 6739 using the {@code <init-param>} tag in web.xml. You can similarly pass in parameters to 6740 Servlets and filters registered in Guice-servlet using a {@link java.util.Map} of parameter 6741 name/value pairs. For example, to initialize {@code MyServlet} with two parameters 6742 ({@code name="Dhanji", site="google.com"}) you could write: 6743 6744 <pre> 6745 Map<String, String> params = new HashMap<String, String>(); 6746 params.put("name", "Dhanji"); 6747 params.put("site", "google.com"); 6748 6749 ... 6750 serve("/*").with(MyServlet.class, <b>params</b>) 6751 </pre> 6752 6753 <p> 6754 <h3>Binding Keys</h3> 6755 6756 You can also bind keys rather than classes. This lets you hide 6757 implementations with package-local visbility and expose them using 6758 only a Guice module and an annotation: 6759 6760 <pre> 6761 ... 6762 filter("/*").through(<b>Key.get(Filter.class, Fave.class)</b>); 6763 </pre> 6764 6765 Where {@code Filter.class} refers to the Servlet API interface and {@code Fave.class} is a 6766 custom binding annotation. Elsewhere (in one of your own modules) you can bind this 6767 filter's implementation: 6768 6769 <pre> 6770 bind(Filter.class)<b>.annotatedWith(Fave.class)</b>.to(MyFilterImpl.class); 6771 </pre> 6772 6773 See {@link com.google.inject.Binder} for more information on binding syntax. 6774 6775 <p> 6776 <h3>Multiple Modules</h3> 6777 6778 It is sometimes useful to capture servlet and filter mappings from multiple different 6779 modules. This is essential if you want to package and offer drop-in Guice plugins that 6780 provide servlet functionality. 6781 6782 <p> 6783 Guice Servlet allows you to register several instances of {@code ServletModule} to your 6784 injector. The order in which these modules are installed determines the dispatch order 6785 of filters and the precedence order of servlets. For example, if you had two servlet modules, 6786 {@code RpcModule} and {@code WebServiceModule} and they each contained a filter that mapped 6787 to the same URI pattern, {@code "/*"}: 6788 6789 <p> 6790 In {@code RpcModule}: 6791 <pre> 6792 filter("/*").through(RpcFilter.class); 6793 </pre> 6794 6795 In {@code WebServiceModule}: 6796 <pre> 6797 filter("/*").through(WebServiceFilter.class); 6798 </pre> 6799 6800 Then the order in which these filters are dispatched is determined by the order in which 6801 the modules are installed: 6802 6803 <pre> 6804 <b>install(new WebServiceModule());</b> 6805 install(new RpcModule()); 6806 </pre> 6807 6808 In the case shown above {@code WebServiceFilter} will run first. 6809 6810 @since 2.0]]> 6811 </doc> 6812 </method> 6813 <method name="filter" return="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder" 6814 abstract="false" native="false" synchronized="false" 6815 static="false" final="true" visibility="protected" 6816 deprecated="not deprecated"> 6817 <param name="urlPattern" type="java.lang.String"/> 6818 <param name="morePatterns" type="java.lang.String[]"/> 6819 <doc> 6820 <![CDATA[@param urlPattern Any Servlet-style pattern. examples: /*, /html/*, *.html, etc. 6821 @since 2.0]]> 6822 </doc> 6823 </method> 6824 <method name="filterRegex" return="com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder" 6825 abstract="false" native="false" synchronized="false" 6826 static="false" final="true" visibility="protected" 6827 deprecated="not deprecated"> 6828 <param name="regex" type="java.lang.String"/> 6829 <param name="regexes" type="java.lang.String[]"/> 6830 <doc> 6831 <![CDATA[@param regex Any Java-style regular expression. 6832 @since 2.0]]> 6833 </doc> 6834 </method> 6835 <method name="serve" return="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder" 6836 abstract="false" native="false" synchronized="false" 6837 static="false" final="true" visibility="protected" 6838 deprecated="not deprecated"> 6839 <param name="urlPattern" type="java.lang.String"/> 6840 <param name="morePatterns" type="java.lang.String[]"/> 6841 <doc> 6842 <![CDATA[@param urlPattern Any Servlet-style pattern. examples: /*, /html/*, *.html, etc. 6843 @since 2.0]]> 6844 </doc> 6845 </method> 6846 <method name="serveRegex" return="com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder" 6847 abstract="false" native="false" synchronized="false" 6848 static="false" final="true" visibility="protected" 6849 deprecated="not deprecated"> 6850 <param name="regex" type="java.lang.String"/> 6851 <param name="regexes" type="java.lang.String[]"/> 6852 <doc> 6853 <![CDATA[@param regex Any Java-style regular expression. 6854 @since 2.0]]> 6855 </doc> 6856 </method> 6857 <method name="getServletContext" return="ServletContext" 6858 abstract="false" native="false" synchronized="false" 6859 static="false" final="true" visibility="protected" 6860 deprecated="not deprecated"> 6861 <doc> 6862 <![CDATA[This method only works if you are using the {@linkplain GuiceServletContextListener} to 6863 create your injector. Otherwise, it returns null. 6864 @return The current servlet context. 6865 @since 3.0]]> 6866 </doc> 6867 </method> 6868 <doc> 6869 <![CDATA[Configures the servlet scopes and creates bindings for the servlet API 6870 objects so you can inject the request, response, session, etc. 6871 6872 <p> 6873 You should subclass this module to register servlets and 6874 filters in the {@link #configureServlets()} method. 6875 6876 @author crazybob (a] google.com (Bob Lee) 6877 @author dhanji (a] gmail.com (Dhanji R. Prasanna)]]> 6878 </doc> 6879 </class> 6880 <!-- end class com.google.inject.servlet.ServletModule --> 6881 <!-- start interface com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder --> 6882 <interface name="ServletModule.FilterKeyBindingBuilder" abstract="true" 6883 static="true" final="false" visibility="public" 6884 deprecated="not deprecated"> 6885 <method name="through" 6886 abstract="true" native="false" synchronized="false" 6887 static="false" final="false" visibility="public" 6888 deprecated="not deprecated"> 6889 <param name="filterKey" type="java.lang.Class<? extends Filter>"/> 6890 </method> 6891 <method name="through" 6892 abstract="true" native="false" synchronized="false" 6893 static="false" final="false" visibility="public" 6894 deprecated="not deprecated"> 6895 <param name="filterKey" type="com.google.inject.Key<? extends Filter>"/> 6896 </method> 6897 <method name="through" 6898 abstract="true" native="false" synchronized="false" 6899 static="false" final="false" visibility="public" 6900 deprecated="not deprecated"> 6901 <param name="filter" type="Filter"/> 6902 <doc> 6903 <![CDATA[@since 3.0]]> 6904 </doc> 6905 </method> 6906 <method name="through" 6907 abstract="true" native="false" synchronized="false" 6908 static="false" final="false" visibility="public" 6909 deprecated="not deprecated"> 6910 <param name="filterKey" type="java.lang.Class<? extends Filter>"/> 6911 <param name="initParams" type="java.util.Map<java.lang.String, java.lang.String>"/> 6912 </method> 6913 <method name="through" 6914 abstract="true" native="false" synchronized="false" 6915 static="false" final="false" visibility="public" 6916 deprecated="not deprecated"> 6917 <param name="filterKey" type="com.google.inject.Key<? extends Filter>"/> 6918 <param name="initParams" type="java.util.Map<java.lang.String, java.lang.String>"/> 6919 </method> 6920 <method name="through" 6921 abstract="true" native="false" synchronized="false" 6922 static="false" final="false" visibility="public" 6923 deprecated="not deprecated"> 6924 <param name="filter" type="Filter"/> 6925 <param name="initParams" type="java.util.Map<java.lang.String, java.lang.String>"/> 6926 <doc> 6927 <![CDATA[@since 3.0]]> 6928 </doc> 6929 </method> 6930 <doc> 6931 <![CDATA[See the EDSL examples at {@link ServletModule#configureServlets()} 6932 6933 @since 2.0]]> 6934 </doc> 6935 </interface> 6936 <!-- end interface com.google.inject.servlet.ServletModule.FilterKeyBindingBuilder --> 6937 <!-- start interface com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder --> 6938 <interface name="ServletModule.ServletKeyBindingBuilder" abstract="true" 6939 static="true" final="false" visibility="public" 6940 deprecated="not deprecated"> 6941 <method name="with" 6942 abstract="true" native="false" synchronized="false" 6943 static="false" final="false" visibility="public" 6944 deprecated="not deprecated"> 6945 <param name="servletKey" type="java.lang.Class<? extends HttpServlet>"/> 6946 </method> 6947 <method name="with" 6948 abstract="true" native="false" synchronized="false" 6949 static="false" final="false" visibility="public" 6950 deprecated="not deprecated"> 6951 <param name="servletKey" type="com.google.inject.Key<? extends HttpServlet>"/> 6952 </method> 6953 <method name="with" 6954 abstract="true" native="false" synchronized="false" 6955 static="false" final="false" visibility="public" 6956 deprecated="not deprecated"> 6957 <param name="servlet" type="HttpServlet"/> 6958 <doc> 6959 <![CDATA[@since 3.0]]> 6960 </doc> 6961 </method> 6962 <method name="with" 6963 abstract="true" native="false" synchronized="false" 6964 static="false" final="false" visibility="public" 6965 deprecated="not deprecated"> 6966 <param name="servletKey" type="java.lang.Class<? extends HttpServlet>"/> 6967 <param name="initParams" type="java.util.Map<java.lang.String, java.lang.String>"/> 6968 </method> 6969 <method name="with" 6970 abstract="true" native="false" synchronized="false" 6971 static="false" final="false" visibility="public" 6972 deprecated="not deprecated"> 6973 <param name="servletKey" type="com.google.inject.Key<? extends HttpServlet>"/> 6974 <param name="initParams" type="java.util.Map<java.lang.String, java.lang.String>"/> 6975 </method> 6976 <method name="with" 6977 abstract="true" native="false" synchronized="false" 6978 static="false" final="false" visibility="public" 6979 deprecated="not deprecated"> 6980 <param name="servlet" type="HttpServlet"/> 6981 <param name="initParams" type="java.util.Map<java.lang.String, java.lang.String>"/> 6982 <doc> 6983 <![CDATA[@since 3.0]]> 6984 </doc> 6985 </method> 6986 <doc> 6987 <![CDATA[See the EDSL examples at {@link ServletModule#configureServlets()} 6988 6989 @since 2.0]]> 6990 </doc> 6991 </interface> 6992 <!-- end interface com.google.inject.servlet.ServletModule.ServletKeyBindingBuilder --> 6993 <!-- start interface com.google.inject.servlet.ServletModuleBinding --> 6994 <interface name="ServletModuleBinding" abstract="true" 6995 static="false" final="false" visibility="public" 6996 deprecated="not deprecated"> 6997 <method name="getUriPatternType" return="com.google.inject.servlet.UriPatternType" 6998 abstract="true" native="false" synchronized="false" 6999 static="false" final="false" visibility="public" 7000 deprecated="not deprecated"> 7001 <doc> 7002 <![CDATA[Returns the pattern type that this binding was created with.]]> 7003 </doc> 7004 </method> 7005 <method name="getPattern" return="java.lang.String" 7006 abstract="true" native="false" synchronized="false" 7007 static="false" final="false" visibility="public" 7008 deprecated="not deprecated"> 7009 <doc> 7010 <![CDATA[Returns the pattern used to match against the binding.]]> 7011 </doc> 7012 </method> 7013 <method name="getInitParams" return="java.util.Map<java.lang.String, java.lang.String>" 7014 abstract="true" native="false" synchronized="false" 7015 static="false" final="false" visibility="public" 7016 deprecated="not deprecated"> 7017 <doc> 7018 <![CDATA[Returns any context params supplied when creating the binding.]]> 7019 </doc> 7020 </method> 7021 <method name="matchesUri" return="boolean" 7022 abstract="true" native="false" synchronized="false" 7023 static="false" final="false" visibility="public" 7024 deprecated="not deprecated"> 7025 <param name="uri" type="java.lang.String"/> 7026 <doc> 7027 <![CDATA[Returns true if the given URI will match this binding.]]> 7028 </doc> 7029 </method> 7030 <doc> 7031 <![CDATA[A binding created by {@link ServletModule}. 7032 7033 @author sameb (a] google.com (Sam Berlin) 7034 @since 3.0]]> 7035 </doc> 7036 </interface> 7037 <!-- end interface com.google.inject.servlet.ServletModuleBinding --> 7038 <!-- start interface com.google.inject.servlet.ServletModuleTargetVisitor --> 7039 <interface name="ServletModuleTargetVisitor" abstract="true" 7040 static="false" final="false" visibility="public" 7041 deprecated="not deprecated"> 7042 <implements name="com.google.inject.spi.BindingTargetVisitor<T, V>"/> 7043 <method name="visit" return="V" 7044 abstract="true" native="false" synchronized="false" 7045 static="false" final="false" visibility="public" 7046 deprecated="not deprecated"> 7047 <param name="binding" type="com.google.inject.servlet.LinkedFilterBinding"/> 7048 <doc> 7049 <![CDATA[Visits a filter binding created by {@link ServletModule#filter}, where 7050 {@link FilterKeyBindingBuilder#through} is called with a Class or Key. 7051 7052 If multiple patterns were specified, this will be called multiple times.]]> 7053 </doc> 7054 </method> 7055 <method name="visit" return="V" 7056 abstract="true" native="false" synchronized="false" 7057 static="false" final="false" visibility="public" 7058 deprecated="not deprecated"> 7059 <param name="binding" type="com.google.inject.servlet.InstanceFilterBinding"/> 7060 <doc> 7061 <![CDATA[Visits a filter binding created by {@link ServletModule#filter} where 7062 {@link FilterKeyBindingBuilder#through} is called with a {@link Filter}. 7063 7064 If multiple patterns were specified, this will be called multiple times.]]> 7065 </doc> 7066 </method> 7067 <method name="visit" return="V" 7068 abstract="true" native="false" synchronized="false" 7069 static="false" final="false" visibility="public" 7070 deprecated="not deprecated"> 7071 <param name="binding" type="com.google.inject.servlet.LinkedServletBinding"/> 7072 <doc> 7073 <![CDATA[Visits a servlet binding created by {@link ServletModule#serve} where 7074 {@link ServletKeyBindingBuilder#with}, is called with a Class or Key. 7075 7076 If multiple patterns were specified, this will be called multiple times.]]> 7077 </doc> 7078 </method> 7079 <method name="visit" return="V" 7080 abstract="true" native="false" synchronized="false" 7081 static="false" final="false" visibility="public" 7082 deprecated="not deprecated"> 7083 <param name="binding" type="com.google.inject.servlet.InstanceServletBinding"/> 7084 <doc> 7085 <![CDATA[Visits a servlet binding created by {@link ServletModule#serve} where 7086 {@link ServletKeyBindingBuilder#with}, is called with an {@link HttpServlet}. 7087 7088 If multiple patterns were specified, this will be called multiple times.]]> 7089 </doc> 7090 </method> 7091 <doc> 7092 <![CDATA[A visitor for the servlet extension. 7093 7094 If your {@link BindingTargetVisitor} implements this interface, bindings created by using 7095 {@link ServletModule} will be visited through this interface. 7096 7097 @since 3.0 7098 @author sameb (a] google.com (Sam Berlin)]]> 7099 </doc> 7100 </interface> 7101 <!-- end interface com.google.inject.servlet.ServletModuleTargetVisitor --> 7102 <!-- start class com.google.inject.servlet.ServletScopes --> 7103 <class name="ServletScopes" extends="java.lang.Object" 7104 abstract="false" 7105 static="false" final="false" visibility="public" 7106 deprecated="not deprecated"> 7107 <method name="continueRequest" return="java.util.concurrent.Callable<T>" 7108 abstract="false" native="false" synchronized="false" 7109 static="true" final="false" visibility="public" 7110 deprecated="not deprecated"> 7111 <param name="callable" type="java.util.concurrent.Callable<T>"/> 7112 <param name="seedMap" type="java.util.Map<com.google.inject.Key<?>, java.lang.Object>"/> 7113 <doc> 7114 <![CDATA[Wraps the given callable in a contextual callable that "continues" the 7115 HTTP request in another thread. This acts as a way of transporting 7116 request context data from the request processing thread to to worker 7117 threads. 7118 <p> 7119 There are some limitations: 7120 <ul> 7121 <li>Derived objects (i.e. anything marked @RequestScoped will not be 7122 transported.</li> 7123 <li>State changes to the HttpServletRequest after this method is called 7124 will not be seen in the continued thread.</li> 7125 <li>Only the HttpServletRequest, ServletContext and request parameter 7126 map are available in the continued thread. The response and session 7127 are not available.</li> 7128 </ul> 7129 7130 <p>The returned callable will throw a {@link ScopingException} when called 7131 if the HTTP request scope is still active on the current thread. 7132 7133 @param callable code to be executed in another thread, which depends on 7134 the request scope. 7135 @param seedMap the initial set of scoped instances for Guice to seed the 7136 request scope with. To seed a key with null, use {@code null} as 7137 the value. 7138 @return a callable that will invoke the given callable, making the request 7139 context available to it. 7140 @throws OutOfScopeException if this method is called from a non-request 7141 thread, or if the request has completed. 7142 7143 @since 3.0]]> 7144 </doc> 7145 </method> 7146 <method name="transferRequest" return="java.util.concurrent.Callable<T>" 7147 abstract="false" native="false" synchronized="false" 7148 static="true" final="false" visibility="public" 7149 deprecated="not deprecated"> 7150 <param name="callable" type="java.util.concurrent.Callable<T>"/> 7151 <doc> 7152 <![CDATA[Wraps the given callable in a contextual callable that "transfers" the 7153 request to another thread. This acts as a way of transporting 7154 request context data from the current thread to a future thread. 7155 7156 <p>As opposed to {@link #continueRequest}, this method propagates all 7157 existing scoped objects. The primary use case is in server implementations 7158 where you can detach the request processing thread while waiting for data, 7159 and reattach to a different thread to finish processing at a later time. 7160 7161 <p>Because {@code HttpServletRequest} objects are not typically 7162 thread-safe, the callable returned by this method must not be run on a 7163 different thread until the current request scope has terminated. In other 7164 words, do not use this method to propagate the current request scope to 7165 worker threads that may run concurrently with the current thread. 7166 7167 <p>The returned callable will throw a {@link ScopingException} when called 7168 if the request scope being transferred is still active on a different 7169 thread. 7170 7171 @param callable code to be executed in another thread, which depends on 7172 the request scope. 7173 @return a callable that will invoke the given callable, making the request 7174 context available to it. 7175 @throws OutOfScopeException if this method is called from a non-request 7176 thread, or if the request has completed.]]> 7177 </doc> 7178 </method> 7179 <method name="isRequestScoped" return="boolean" 7180 abstract="false" native="false" synchronized="false" 7181 static="true" final="false" visibility="public" 7182 deprecated="not deprecated"> 7183 <param name="binding" type="com.google.inject.Binding<?>"/> 7184 <doc> 7185 <![CDATA[Returns true if {@code binding} is request-scoped. If the binding is a 7186 {@link com.google.inject.spi.LinkedKeyBinding linked key binding} and 7187 belongs to an injector (i. e. it was retrieved via 7188 {@link Injector#getBinding Injector.getBinding()}), then this method will 7189 also return true if the target binding is request-scoped.]]> 7190 </doc> 7191 </method> 7192 <method name="scopeRequest" return="java.util.concurrent.Callable<T>" 7193 abstract="false" native="false" synchronized="false" 7194 static="true" final="false" visibility="public" 7195 deprecated="not deprecated"> 7196 <param name="callable" type="java.util.concurrent.Callable<T>"/> 7197 <param name="seedMap" type="java.util.Map<com.google.inject.Key<?>, java.lang.Object>"/> 7198 <doc> 7199 <![CDATA[Scopes the given callable inside a request scope. This is not the same 7200 as the HTTP request scope, but is used if no HTTP request scope is in 7201 progress. In this way, keys can be scoped as @RequestScoped and exist 7202 in non-HTTP requests (for example: RPC requests) as well as in HTTP 7203 request threads. 7204 7205 <p>The returned callable will throw a {@link ScopingException} when called 7206 if there is a request scope already active on the current thread. 7207 7208 @param callable code to be executed which depends on the request scope. 7209 Typically in another thread, but not necessarily so. 7210 @param seedMap the initial set of scoped instances for Guice to seed the 7211 request scope with. To seed a key with null, use {@code null} as 7212 the value. 7213 @return a callable that when called will run inside the a request scope 7214 that exposes the instances in the {@code seedMap} as scoped keys. 7215 @since 3.0]]> 7216 </doc> 7217 </method> 7218 <field name="REQUEST" type="com.google.inject.Scope" 7219 transient="false" volatile="false" 7220 static="true" final="true" visibility="public" 7221 deprecated="not deprecated"> 7222 <doc> 7223 <![CDATA[HTTP servlet request scope.]]> 7224 </doc> 7225 </field> 7226 <field name="SESSION" type="com.google.inject.Scope" 7227 transient="false" volatile="false" 7228 static="true" final="true" visibility="public" 7229 deprecated="not deprecated"> 7230 <doc> 7231 <![CDATA[HTTP session scope.]]> 7232 </doc> 7233 </field> 7234 <doc> 7235 <![CDATA[Servlet scopes. 7236 7237 @author crazybob (a] google.com (Bob Lee)]]> 7238 </doc> 7239 </class> 7240 <!-- end class com.google.inject.servlet.ServletScopes --> 7241 <!-- start class com.google.inject.servlet.SessionScoped --> 7242 <class name="SessionScoped" abstract="true" 7243 static="false" final="false" visibility="public" 7244 deprecated="not deprecated"> 7245 <implements name="java.lang.annotation.Annotation"/> 7246 <doc> 7247 <![CDATA[Apply this to implementation classes when you want one instance per session. 7248 7249 @see com.google.inject.Scopes#SINGLETON 7250 @author crazybob (a] google.com (Bob Lee)]]> 7251 </doc> 7252 </class> 7253 <!-- end class com.google.inject.servlet.SessionScoped --> 7254 <!-- start class com.google.inject.servlet.UriPatternType --> 7255 <class name="UriPatternType" extends="java.lang.Enum<com.google.inject.servlet.UriPatternType>" 7256 abstract="false" 7257 static="false" final="true" visibility="public" 7258 deprecated="not deprecated"> 7259 <method name="values" return="com.google.inject.servlet.UriPatternType[]" 7260 abstract="false" native="false" synchronized="false" 7261 static="true" final="false" visibility="public" 7262 deprecated="not deprecated"> 7263 </method> 7264 <method name="valueOf" return="com.google.inject.servlet.UriPatternType" 7265 abstract="false" native="false" synchronized="false" 7266 static="true" final="false" visibility="public" 7267 deprecated="not deprecated"> 7268 <param name="name" type="java.lang.String"/> 7269 </method> 7270 <doc> 7271 <![CDATA[An enumeration of the available URI-pattern matching styles 7272 7273 @since 3.0]]> 7274 </doc> 7275 </class> 7276 <!-- end class com.google.inject.servlet.UriPatternType --> 7277 </package> 7278 <package name="com.google.inject.spi"> 7279 <!-- start interface com.google.inject.spi.BindingScopingVisitor --> 7280 <interface name="BindingScopingVisitor" abstract="true" 7281 static="false" final="false" visibility="public" 7282 deprecated="not deprecated"> 7283 <method name="visitEagerSingleton" return="V" 7284 abstract="true" native="false" synchronized="false" 7285 static="false" final="false" visibility="public" 7286 deprecated="not deprecated"> 7287 <doc> 7288 <![CDATA[Visit an eager singleton or single instance. This scope strategy is found on both module and 7289 injector bindings.]]> 7290 </doc> 7291 </method> 7292 <method name="visitScope" return="V" 7293 abstract="true" native="false" synchronized="false" 7294 static="false" final="false" visibility="public" 7295 deprecated="not deprecated"> 7296 <param name="scope" type="com.google.inject.Scope"/> 7297 <doc> 7298 <![CDATA[Visit a scope instance. This scope strategy is found on both module and injector bindings.]]> 7299 </doc> 7300 </method> 7301 <method name="visitScopeAnnotation" return="V" 7302 abstract="true" native="false" synchronized="false" 7303 static="false" final="false" visibility="public" 7304 deprecated="not deprecated"> 7305 <param name="scopeAnnotation" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 7306 <doc> 7307 <![CDATA[Visit a scope annotation. This scope strategy is found only on module bindings. The instance 7308 that implements this scope is registered by {@link com.google.inject.Binder#bindScope(Class, 7309 Scope) Binder.bindScope()}.]]> 7310 </doc> 7311 </method> 7312 <method name="visitNoScoping" return="V" 7313 abstract="true" native="false" synchronized="false" 7314 static="false" final="false" visibility="public" 7315 deprecated="not deprecated"> 7316 <doc> 7317 <![CDATA[Visit an unspecified or unscoped strategy. On a module, this strategy indicates that the 7318 injector should use scoping annotations to find a scope. On an injector, it indicates that 7319 no scope is applied to the binding. An unscoped binding will behave like a scoped one when it 7320 is linked to a scoped binding.]]> 7321 </doc> 7322 </method> 7323 <doc> 7324 <![CDATA[Visits each of the strategies used to scope an injection. 7325 7326 @param <V> any type to be returned by the visit method. Use {@link Void} with 7327 {@code return null} if no return type is needed. 7328 @since 2.0]]> 7329 </doc> 7330 </interface> 7331 <!-- end interface com.google.inject.spi.BindingScopingVisitor --> 7332 <!-- start interface com.google.inject.spi.BindingTargetVisitor --> 7333 <interface name="BindingTargetVisitor" abstract="true" 7334 static="false" final="false" visibility="public" 7335 deprecated="not deprecated"> 7336 <method name="visit" return="V" 7337 abstract="true" native="false" synchronized="false" 7338 static="false" final="false" visibility="public" 7339 deprecated="not deprecated"> 7340 <param name="binding" type="com.google.inject.spi.InstanceBinding<? extends T>"/> 7341 <doc> 7342 <![CDATA[Visit a instance binding. The same instance is returned for every injection. This target is 7343 found in both module and injector bindings.]]> 7344 </doc> 7345 </method> 7346 <method name="visit" return="V" 7347 abstract="true" native="false" synchronized="false" 7348 static="false" final="false" visibility="public" 7349 deprecated="not deprecated"> 7350 <param name="binding" type="com.google.inject.spi.ProviderInstanceBinding<? extends T>"/> 7351 <doc> 7352 <![CDATA[Visit a provider instance binding. The provider's {@code get} method is invoked to resolve 7353 injections. This target is found in both module and injector bindings.]]> 7354 </doc> 7355 </method> 7356 <method name="visit" return="V" 7357 abstract="true" native="false" synchronized="false" 7358 static="false" final="false" visibility="public" 7359 deprecated="not deprecated"> 7360 <param name="binding" type="com.google.inject.spi.ProviderKeyBinding<? extends T>"/> 7361 <doc> 7362 <![CDATA[Visit a provider key binding. To resolve injections, the provider key is first resolved, then 7363 that provider's {@code get} method is invoked. This target is found in both module and injector 7364 bindings.]]> 7365 </doc> 7366 </method> 7367 <method name="visit" return="V" 7368 abstract="true" native="false" synchronized="false" 7369 static="false" final="false" visibility="public" 7370 deprecated="not deprecated"> 7371 <param name="binding" type="com.google.inject.spi.LinkedKeyBinding<? extends T>"/> 7372 <doc> 7373 <![CDATA[Visit a linked key binding. The other key's binding is used to resolve injections. This 7374 target is found in both module and injector bindings.]]> 7375 </doc> 7376 </method> 7377 <method name="visit" return="V" 7378 abstract="true" native="false" synchronized="false" 7379 static="false" final="false" visibility="public" 7380 deprecated="not deprecated"> 7381 <param name="binding" type="com.google.inject.spi.ExposedBinding<? extends T>"/> 7382 <doc> 7383 <![CDATA[Visit a binding to a key exposed from an enclosed private environment. This target is only 7384 found in injector bindings.]]> 7385 </doc> 7386 </method> 7387 <method name="visit" return="V" 7388 abstract="true" native="false" synchronized="false" 7389 static="false" final="false" visibility="public" 7390 deprecated="not deprecated"> 7391 <param name="binding" type="com.google.inject.spi.UntargettedBinding<? extends T>"/> 7392 <doc> 7393 <![CDATA[Visit an untargetted binding. This target is found only on module bindings. It indicates 7394 that the injector should use its implicit binding strategies to resolve injections.]]> 7395 </doc> 7396 </method> 7397 <method name="visit" return="V" 7398 abstract="true" native="false" synchronized="false" 7399 static="false" final="false" visibility="public" 7400 deprecated="not deprecated"> 7401 <param name="binding" type="com.google.inject.spi.ConstructorBinding<? extends T>"/> 7402 <doc> 7403 <![CDATA[Visit a constructor binding. To resolve injections, an instance is instantiated by invoking 7404 {@code constructor}. This target is found only on injector bindings.]]> 7405 </doc> 7406 </method> 7407 <method name="visit" return="V" 7408 abstract="true" native="false" synchronized="false" 7409 static="false" final="false" visibility="public" 7410 deprecated="not deprecated"> 7411 <param name="binding" type="com.google.inject.spi.ConvertedConstantBinding<? extends T>"/> 7412 <doc> 7413 <![CDATA[Visit a binding created from converting a bound instance to a new type. The source binding 7414 has the same binding annotation but a different type. This target is found only on injector 7415 bindings.]]> 7416 </doc> 7417 </method> 7418 <method name="visit" return="V" 7419 abstract="true" native="false" synchronized="false" 7420 static="false" final="false" visibility="public" 7421 deprecated="not deprecated"> 7422 <param name="binding" type="com.google.inject.spi.ProviderBinding<? extends T>"/> 7423 <doc> 7424 <![CDATA[Visit a binding to a {@link com.google.inject.Provider} that delegates to the binding for the 7425 provided type. This target is found only on injector bindings.]]> 7426 </doc> 7427 </method> 7428 <doc> 7429 <![CDATA[Visits each of the strategies used to find an instance to satisfy an injection. 7430 7431 @param <V> any type to be returned by the visit method. Use {@link Void} with 7432 {@code return null} if no return type is needed. 7433 @since 2.0]]> 7434 </doc> 7435 </interface> 7436 <!-- end interface com.google.inject.spi.BindingTargetVisitor --> 7437 <!-- start interface com.google.inject.spi.ConstructorBinding --> 7438 <interface name="ConstructorBinding" abstract="true" 7439 static="false" final="false" visibility="public" 7440 deprecated="not deprecated"> 7441 <implements name="com.google.inject.Binding<T>"/> 7442 <implements name="com.google.inject.spi.HasDependencies"/> 7443 <method name="getConstructor" return="com.google.inject.spi.InjectionPoint" 7444 abstract="true" native="false" synchronized="false" 7445 static="false" final="false" visibility="public" 7446 deprecated="not deprecated"> 7447 <doc> 7448 <![CDATA[Gets the constructor this binding injects.]]> 7449 </doc> 7450 </method> 7451 <method name="getInjectableMembers" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 7452 abstract="true" native="false" synchronized="false" 7453 static="false" final="false" visibility="public" 7454 deprecated="not deprecated"> 7455 <doc> 7456 <![CDATA[Returns all instance method and field injection points on {@code type}. 7457 7458 @return a possibly empty set of injection points. The set has a specified iteration order. All 7459 fields are returned and then all methods. Within the fields, supertype fields are returned 7460 before subtype fields. Similarly, supertype methods are returned before subtype methods.]]> 7461 </doc> 7462 </method> 7463 <method name="getMethodInterceptors" return="java.util.Map<java.lang.reflect.Method, java.util.List<org.aopalliance.intercept.MethodInterceptor>>" 7464 abstract="true" native="false" synchronized="false" 7465 static="false" final="false" visibility="public" 7466 deprecated="not deprecated"> 7467 <doc> 7468 <![CDATA[Returns the interceptors applied to each method, in the order that they will be applied. 7469 7470 @return a possibly empty map]]> 7471 </doc> 7472 </method> 7473 <doc> 7474 <![CDATA[A binding to the constructor of a concrete clss. To resolve injections, an instance is 7475 instantiated by invoking the constructor. 7476 7477 @author jessewilson (a] google.com (Jesse Wilson) 7478 @since 2.0]]> 7479 </doc> 7480 </interface> 7481 <!-- end interface com.google.inject.spi.ConstructorBinding --> 7482 <!-- start interface com.google.inject.spi.ConvertedConstantBinding --> 7483 <interface name="ConvertedConstantBinding" abstract="true" 7484 static="false" final="false" visibility="public" 7485 deprecated="not deprecated"> 7486 <implements name="com.google.inject.Binding<T>"/> 7487 <implements name="com.google.inject.spi.HasDependencies"/> 7488 <method name="getValue" return="T" 7489 abstract="true" native="false" synchronized="false" 7490 static="false" final="false" visibility="public" 7491 deprecated="not deprecated"> 7492 <doc> 7493 <![CDATA[Returns the converted value.]]> 7494 </doc> 7495 </method> 7496 <method name="getTypeConverterBinding" return="com.google.inject.spi.TypeConverterBinding" 7497 abstract="true" native="false" synchronized="false" 7498 static="false" final="false" visibility="public" 7499 deprecated="not deprecated"> 7500 <doc> 7501 <![CDATA[Returns the type converter binding used to convert the constant. 7502 7503 @since 3.0]]> 7504 </doc> 7505 </method> 7506 <method name="getSourceKey" return="com.google.inject.Key<java.lang.String>" 7507 abstract="true" native="false" synchronized="false" 7508 static="false" final="false" visibility="public" 7509 deprecated="not deprecated"> 7510 <doc> 7511 <![CDATA[Returns the key for the source binding. That binding can be retrieved from an injector using 7512 {@link com.google.inject.Injector#getBinding(Key) Injector.getBinding(key)}.]]> 7513 </doc> 7514 </method> 7515 <method name="getDependencies" return="java.util.Set<com.google.inject.spi.Dependency<?>>" 7516 abstract="true" native="false" synchronized="false" 7517 static="false" final="false" visibility="public" 7518 deprecated="not deprecated"> 7519 <doc> 7520 <![CDATA[Returns a singleton set containing only the converted key.]]> 7521 </doc> 7522 </method> 7523 <doc> 7524 <![CDATA[A binding created from converting a bound instance to a new type. The source binding has the same 7525 binding annotation but a different type. 7526 7527 @author jessewilson (a] google.com (Jesse Wilson) 7528 @since 2.0]]> 7529 </doc> 7530 </interface> 7531 <!-- end interface com.google.inject.spi.ConvertedConstantBinding --> 7532 <!-- start class com.google.inject.spi.DefaultBindingScopingVisitor --> 7533 <class name="DefaultBindingScopingVisitor" extends="java.lang.Object" 7534 abstract="false" 7535 static="false" final="false" visibility="public" 7536 deprecated="not deprecated"> 7537 <implements name="com.google.inject.spi.BindingScopingVisitor<V>"/> 7538 <constructor name="DefaultBindingScopingVisitor" 7539 static="false" final="false" visibility="public" 7540 deprecated="not deprecated"> 7541 </constructor> 7542 <method name="visitOther" return="V" 7543 abstract="false" native="false" synchronized="false" 7544 static="false" final="false" visibility="protected" 7545 deprecated="not deprecated"> 7546 <doc> 7547 <![CDATA[Default visit implementation. Returns {@code null}.]]> 7548 </doc> 7549 </method> 7550 <method name="visitEagerSingleton" return="V" 7551 abstract="false" native="false" synchronized="false" 7552 static="false" final="false" visibility="public" 7553 deprecated="not deprecated"> 7554 </method> 7555 <method name="visitScope" return="V" 7556 abstract="false" native="false" synchronized="false" 7557 static="false" final="false" visibility="public" 7558 deprecated="not deprecated"> 7559 <param name="scope" type="com.google.inject.Scope"/> 7560 </method> 7561 <method name="visitScopeAnnotation" return="V" 7562 abstract="false" native="false" synchronized="false" 7563 static="false" final="false" visibility="public" 7564 deprecated="not deprecated"> 7565 <param name="scopeAnnotation" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 7566 </method> 7567 <method name="visitNoScoping" return="V" 7568 abstract="false" native="false" synchronized="false" 7569 static="false" final="false" visibility="public" 7570 deprecated="not deprecated"> 7571 </method> 7572 <doc> 7573 <![CDATA[No-op visitor for subclassing. All interface methods simply delegate to 7574 {@link #visitOther()}, returning its result. 7575 7576 @param <V> any type to be returned by the visit method. Use {@link Void} with 7577 {@code return null} if no return type is needed. 7578 7579 @author jessewilson (a] google.com (Jesse Wilson) 7580 @since 2.0]]> 7581 </doc> 7582 </class> 7583 <!-- end class com.google.inject.spi.DefaultBindingScopingVisitor --> 7584 <!-- start class com.google.inject.spi.DefaultBindingTargetVisitor --> 7585 <class name="DefaultBindingTargetVisitor" extends="java.lang.Object" 7586 abstract="true" 7587 static="false" final="false" visibility="public" 7588 deprecated="not deprecated"> 7589 <implements name="com.google.inject.spi.BindingTargetVisitor<T, V>"/> 7590 <constructor name="DefaultBindingTargetVisitor" 7591 static="false" final="false" visibility="public" 7592 deprecated="not deprecated"> 7593 </constructor> 7594 <method name="visitOther" return="V" 7595 abstract="false" native="false" synchronized="false" 7596 static="false" final="false" visibility="protected" 7597 deprecated="not deprecated"> 7598 <param name="binding" type="com.google.inject.Binding<? extends T>"/> 7599 <doc> 7600 <![CDATA[Default visit implementation. Returns {@code null}.]]> 7601 </doc> 7602 </method> 7603 <method name="visit" return="V" 7604 abstract="false" native="false" synchronized="false" 7605 static="false" final="false" visibility="public" 7606 deprecated="not deprecated"> 7607 <param name="instanceBinding" type="com.google.inject.spi.InstanceBinding<? extends T>"/> 7608 </method> 7609 <method name="visit" return="V" 7610 abstract="false" native="false" synchronized="false" 7611 static="false" final="false" visibility="public" 7612 deprecated="not deprecated"> 7613 <param name="providerInstanceBinding" type="com.google.inject.spi.ProviderInstanceBinding<? extends T>"/> 7614 </method> 7615 <method name="visit" return="V" 7616 abstract="false" native="false" synchronized="false" 7617 static="false" final="false" visibility="public" 7618 deprecated="not deprecated"> 7619 <param name="providerKeyBinding" type="com.google.inject.spi.ProviderKeyBinding<? extends T>"/> 7620 </method> 7621 <method name="visit" return="V" 7622 abstract="false" native="false" synchronized="false" 7623 static="false" final="false" visibility="public" 7624 deprecated="not deprecated"> 7625 <param name="linkedKeyBinding" type="com.google.inject.spi.LinkedKeyBinding<? extends T>"/> 7626 </method> 7627 <method name="visit" return="V" 7628 abstract="false" native="false" synchronized="false" 7629 static="false" final="false" visibility="public" 7630 deprecated="not deprecated"> 7631 <param name="exposedBinding" type="com.google.inject.spi.ExposedBinding<? extends T>"/> 7632 </method> 7633 <method name="visit" return="V" 7634 abstract="false" native="false" synchronized="false" 7635 static="false" final="false" visibility="public" 7636 deprecated="not deprecated"> 7637 <param name="untargettedBinding" type="com.google.inject.spi.UntargettedBinding<? extends T>"/> 7638 </method> 7639 <method name="visit" return="V" 7640 abstract="false" native="false" synchronized="false" 7641 static="false" final="false" visibility="public" 7642 deprecated="not deprecated"> 7643 <param name="constructorBinding" type="com.google.inject.spi.ConstructorBinding<? extends T>"/> 7644 </method> 7645 <method name="visit" return="V" 7646 abstract="false" native="false" synchronized="false" 7647 static="false" final="false" visibility="public" 7648 deprecated="not deprecated"> 7649 <param name="convertedConstantBinding" type="com.google.inject.spi.ConvertedConstantBinding<? extends T>"/> 7650 </method> 7651 <method name="visit" return="V" 7652 abstract="false" native="false" synchronized="false" 7653 static="false" final="false" visibility="public" 7654 deprecated="not deprecated"> 7655 <param name="providerBinding" type="com.google.inject.spi.ProviderBinding<? extends T>"/> 7656 </method> 7657 <doc> 7658 <![CDATA[No-op visitor for subclassing. All interface methods simply delegate to {@link 7659 #visitOther(Binding)}, returning its result. 7660 7661 @param <V> any type to be returned by the visit method. Use {@link Void} with 7662 {@code return null} if no return type is needed. 7663 7664 @author jessewilson (a] google.com (Jesse Wilson) 7665 @since 2.0]]> 7666 </doc> 7667 </class> 7668 <!-- end class com.google.inject.spi.DefaultBindingTargetVisitor --> 7669 <!-- start class com.google.inject.spi.DefaultElementVisitor --> 7670 <class name="DefaultElementVisitor" extends="java.lang.Object" 7671 abstract="true" 7672 static="false" final="false" visibility="public" 7673 deprecated="not deprecated"> 7674 <implements name="com.google.inject.spi.ElementVisitor<V>"/> 7675 <constructor name="DefaultElementVisitor" 7676 static="false" final="false" visibility="public" 7677 deprecated="not deprecated"> 7678 </constructor> 7679 <method name="visitOther" return="V" 7680 abstract="false" native="false" synchronized="false" 7681 static="false" final="false" visibility="protected" 7682 deprecated="not deprecated"> 7683 <param name="element" type="com.google.inject.spi.Element"/> 7684 <doc> 7685 <![CDATA[Default visit implementation. Returns {@code null}.]]> 7686 </doc> 7687 </method> 7688 <method name="visit" return="V" 7689 abstract="false" native="false" synchronized="false" 7690 static="false" final="false" visibility="public" 7691 deprecated="not deprecated"> 7692 <param name="message" type="com.google.inject.spi.Message"/> 7693 </method> 7694 <method name="visit" return="V" 7695 abstract="false" native="false" synchronized="false" 7696 static="false" final="false" visibility="public" 7697 deprecated="not deprecated"> 7698 <param name="binding" type="com.google.inject.Binding<T>"/> 7699 </method> 7700 <method name="visit" return="V" 7701 abstract="false" native="false" synchronized="false" 7702 static="false" final="false" visibility="public" 7703 deprecated="not deprecated"> 7704 <param name="interceptorBinding" type="com.google.inject.spi.InterceptorBinding"/> 7705 </method> 7706 <method name="visit" return="V" 7707 abstract="false" native="false" synchronized="false" 7708 static="false" final="false" visibility="public" 7709 deprecated="not deprecated"> 7710 <param name="scopeBinding" type="com.google.inject.spi.ScopeBinding"/> 7711 </method> 7712 <method name="visit" return="V" 7713 abstract="false" native="false" synchronized="false" 7714 static="false" final="false" visibility="public" 7715 deprecated="not deprecated"> 7716 <param name="typeConverterBinding" type="com.google.inject.spi.TypeConverterBinding"/> 7717 </method> 7718 <method name="visit" return="V" 7719 abstract="false" native="false" synchronized="false" 7720 static="false" final="false" visibility="public" 7721 deprecated="not deprecated"> 7722 <param name="providerLookup" type="com.google.inject.spi.ProviderLookup<T>"/> 7723 </method> 7724 <method name="visit" return="V" 7725 abstract="false" native="false" synchronized="false" 7726 static="false" final="false" visibility="public" 7727 deprecated="not deprecated"> 7728 <param name="injectionRequest" type="com.google.inject.spi.InjectionRequest<?>"/> 7729 </method> 7730 <method name="visit" return="V" 7731 abstract="false" native="false" synchronized="false" 7732 static="false" final="false" visibility="public" 7733 deprecated="not deprecated"> 7734 <param name="staticInjectionRequest" type="com.google.inject.spi.StaticInjectionRequest"/> 7735 </method> 7736 <method name="visit" return="V" 7737 abstract="false" native="false" synchronized="false" 7738 static="false" final="false" visibility="public" 7739 deprecated="not deprecated"> 7740 <param name="privateElements" type="com.google.inject.spi.PrivateElements"/> 7741 </method> 7742 <method name="visit" return="V" 7743 abstract="false" native="false" synchronized="false" 7744 static="false" final="false" visibility="public" 7745 deprecated="not deprecated"> 7746 <param name="lookup" type="com.google.inject.spi.MembersInjectorLookup<T>"/> 7747 </method> 7748 <method name="visit" return="V" 7749 abstract="false" native="false" synchronized="false" 7750 static="false" final="false" visibility="public" 7751 deprecated="not deprecated"> 7752 <param name="binding" type="com.google.inject.spi.TypeListenerBinding"/> 7753 </method> 7754 <method name="visit" return="V" 7755 abstract="false" native="false" synchronized="false" 7756 static="false" final="false" visibility="public" 7757 deprecated="not deprecated"> 7758 <param name="binding" type="com.google.inject.spi.ProvisionListenerBinding"/> 7759 </method> 7760 <method name="visit" return="V" 7761 abstract="false" native="false" synchronized="false" 7762 static="false" final="false" visibility="public" 7763 deprecated="not deprecated"> 7764 <param name="option" type="com.google.inject.spi.DisableCircularProxiesOption"/> 7765 </method> 7766 <method name="visit" return="V" 7767 abstract="false" native="false" synchronized="false" 7768 static="false" final="false" visibility="public" 7769 deprecated="not deprecated"> 7770 <param name="option" type="com.google.inject.spi.RequireExplicitBindingsOption"/> 7771 </method> 7772 <method name="visit" return="V" 7773 abstract="false" native="false" synchronized="false" 7774 static="false" final="false" visibility="public" 7775 deprecated="not deprecated"> 7776 <param name="option" type="com.google.inject.spi.RequireAtInjectOnConstructorsOption"/> 7777 </method> 7778 <method name="visit" return="V" 7779 abstract="false" native="false" synchronized="false" 7780 static="false" final="false" visibility="public" 7781 deprecated="not deprecated"> 7782 <param name="option" type="com.google.inject.spi.RequireExactBindingAnnotationsOption"/> 7783 </method> 7784 <doc> 7785 <![CDATA[No-op visitor for subclassing. All interface methods simply delegate to 7786 {@link #visitOther(Element)}, returning its result. 7787 7788 @param <V> any type to be returned by the visit method. Use {@link Void} with 7789 {@code return null} if no return type is needed. 7790 7791 @author sberlin (a] gmail.com (Sam Berlin) 7792 @since 2.0]]> 7793 </doc> 7794 </class> 7795 <!-- end class com.google.inject.spi.DefaultElementVisitor --> 7796 <!-- start class com.google.inject.spi.Dependency --> 7797 <class name="Dependency" extends="java.lang.Object" 7798 abstract="false" 7799 static="false" final="true" visibility="public" 7800 deprecated="not deprecated"> 7801 <method name="get" return="com.google.inject.spi.Dependency<T>" 7802 abstract="false" native="false" synchronized="false" 7803 static="true" final="false" visibility="public" 7804 deprecated="not deprecated"> 7805 <param name="key" type="com.google.inject.Key<T>"/> 7806 <doc> 7807 <![CDATA[Returns a new dependency that is not attached to an injection point. The returned dependency is 7808 nullable.]]> 7809 </doc> 7810 </method> 7811 <method name="forInjectionPoints" return="java.util.Set<com.google.inject.spi.Dependency<?>>" 7812 abstract="false" native="false" synchronized="false" 7813 static="true" final="false" visibility="public" 7814 deprecated="not deprecated"> 7815 <param name="injectionPoints" type="java.util.Set<com.google.inject.spi.InjectionPoint>"/> 7816 <doc> 7817 <![CDATA[Returns the dependencies from the given injection points.]]> 7818 </doc> 7819 </method> 7820 <method name="getKey" return="com.google.inject.Key<T>" 7821 abstract="false" native="false" synchronized="false" 7822 static="false" final="false" visibility="public" 7823 deprecated="not deprecated"> 7824 <doc> 7825 <![CDATA[Returns the key to the binding that satisfies this dependency.]]> 7826 </doc> 7827 </method> 7828 <method name="isNullable" return="boolean" 7829 abstract="false" native="false" synchronized="false" 7830 static="false" final="false" visibility="public" 7831 deprecated="not deprecated"> 7832 <doc> 7833 <![CDATA[Returns true if null is a legal value for this dependency.]]> 7834 </doc> 7835 </method> 7836 <method name="getInjectionPoint" return="com.google.inject.spi.InjectionPoint" 7837 abstract="false" native="false" synchronized="false" 7838 static="false" final="false" visibility="public" 7839 deprecated="not deprecated"> 7840 <doc> 7841 <![CDATA[Returns the injection point to which this dependency belongs, or null if this dependency isn't 7842 attached to a particular injection point.]]> 7843 </doc> 7844 </method> 7845 <method name="getParameterIndex" return="int" 7846 abstract="false" native="false" synchronized="false" 7847 static="false" final="false" visibility="public" 7848 deprecated="not deprecated"> 7849 <doc> 7850 <![CDATA[Returns the index of this dependency in the injection point's parameter list, or {@code -1} if 7851 this dependency does not belong to a parameter list. Only method and constuctor dependencies 7852 are elements in a parameter list.]]> 7853 </doc> 7854 </method> 7855 <method name="hashCode" return="int" 7856 abstract="false" native="false" synchronized="false" 7857 static="false" final="false" visibility="public" 7858 deprecated="not deprecated"> 7859 </method> 7860 <method name="equals" return="boolean" 7861 abstract="false" native="false" synchronized="false" 7862 static="false" final="false" visibility="public" 7863 deprecated="not deprecated"> 7864 <param name="o" type="java.lang.Object"/> 7865 </method> 7866 <method name="toString" return="java.lang.String" 7867 abstract="false" native="false" synchronized="false" 7868 static="false" final="false" visibility="public" 7869 deprecated="not deprecated"> 7870 </method> 7871 <doc> 7872 <![CDATA[A variable that can be resolved by an injector. 7873 7874 <p>Use {@link #get} to build a freestanding dependency, or {@link InjectionPoint} to build one 7875 that's attached to a constructor, method or field. 7876 7877 @author crazybob (a] google.com (Bob Lee) 7878 @author jessewilson (a] google.com (Jesse Wilson) 7879 @since 2.0]]> 7880 </doc> 7881 </class> 7882 <!-- end class com.google.inject.spi.Dependency --> 7883 <!-- start class com.google.inject.spi.DependencyAndSource --> 7884 <class name="DependencyAndSource" extends="java.lang.Object" 7885 abstract="false" 7886 static="false" final="true" visibility="public" 7887 deprecated="not deprecated"> 7888 <constructor name="DependencyAndSource" type="com.google.inject.spi.Dependency<?>, java.lang.Object" 7889 static="false" final="false" visibility="public" 7890 deprecated="not deprecated"> 7891 </constructor> 7892 <method name="getDependency" return="com.google.inject.spi.Dependency<?>" 7893 abstract="false" native="false" synchronized="false" 7894 static="false" final="false" visibility="public" 7895 deprecated="not deprecated"> 7896 <doc> 7897 <![CDATA[Returns the Dependency, if one exists. For anything that can be referenced 7898 by {@link Injector#getBinding}, a dependency exists. A dependency will not 7899 exist (and this will return null) for types initialized with 7900 {@link Binder#requestInjection} or {@link Injector#injectMembers(Object)}, 7901 nor will it exist for objects injected into Providers bound with 7902 LinkedBindingBuilder#toProvider(Provider).]]> 7903 </doc> 7904 </method> 7905 <method name="getBindingSource" return="java.lang.String" 7906 abstract="false" native="false" synchronized="false" 7907 static="false" final="false" visibility="public" 7908 deprecated="not deprecated"> 7909 <doc> 7910 <![CDATA[Returns a string describing where this dependency was bound. If the binding 7911 was just-in-time, there is no valid binding source, so this describes the 7912 class in question.]]> 7913 </doc> 7914 </method> 7915 <method name="toString" return="java.lang.String" 7916 abstract="false" native="false" synchronized="false" 7917 static="false" final="false" visibility="public" 7918 deprecated="not deprecated"> 7919 </method> 7920 <doc> 7921 <![CDATA[A combination of a {@link Dependency} and the {@link Binding#getSource() 7922 source} where the dependency was bound. 7923 7924 @author sameb (a] google.com (Sam Berlin)]]> 7925 </doc> 7926 </class> 7927 <!-- end class com.google.inject.spi.DependencyAndSource --> 7928 <!-- start class com.google.inject.spi.DisableCircularProxiesOption --> 7929 <class name="DisableCircularProxiesOption" extends="java.lang.Object" 7930 abstract="false" 7931 static="false" final="true" visibility="public" 7932 deprecated="not deprecated"> 7933 <implements name="com.google.inject.spi.Element"/> 7934 <method name="getSource" return="java.lang.Object" 7935 abstract="false" native="false" synchronized="false" 7936 static="false" final="false" visibility="public" 7937 deprecated="not deprecated"> 7938 </method> 7939 <method name="applyTo" 7940 abstract="false" native="false" synchronized="false" 7941 static="false" final="false" visibility="public" 7942 deprecated="not deprecated"> 7943 <param name="binder" type="com.google.inject.Binder"/> 7944 </method> 7945 <method name="acceptVisitor" return="T" 7946 abstract="false" native="false" synchronized="false" 7947 static="false" final="false" visibility="public" 7948 deprecated="not deprecated"> 7949 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 7950 </method> 7951 <doc> 7952 <![CDATA[A request to disable circular proxies. 7953 7954 @author sameb (a] google.com (Sam Berlin) 7955 @since 3.0]]> 7956 </doc> 7957 </class> 7958 <!-- end class com.google.inject.spi.DisableCircularProxiesOption --> 7959 <!-- start interface com.google.inject.spi.Element --> 7960 <interface name="Element" abstract="true" 7961 static="false" final="false" visibility="public" 7962 deprecated="not deprecated"> 7963 <method name="getSource" return="java.lang.Object" 7964 abstract="true" native="false" synchronized="false" 7965 static="false" final="false" visibility="public" 7966 deprecated="not deprecated"> 7967 <doc> 7968 <![CDATA[Returns an arbitrary object containing information about the "place" where this element was 7969 configured. Used by Guice in the production of descriptive error messages. 7970 7971 <p>Tools might specially handle types they know about; {@code StackTraceElement} is a good 7972 example. Tools should simply call {@code toString()} on the source object if the type is 7973 unfamiliar.]]> 7974 </doc> 7975 </method> 7976 <method name="acceptVisitor" return="T" 7977 abstract="true" native="false" synchronized="false" 7978 static="false" final="false" visibility="public" 7979 deprecated="not deprecated"> 7980 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 7981 <doc> 7982 <![CDATA[Accepts an element visitor. Invokes the visitor method specific to this element's type. 7983 7984 @param visitor to call back on]]> 7985 </doc> 7986 </method> 7987 <method name="applyTo" 7988 abstract="true" native="false" synchronized="false" 7989 static="false" final="false" visibility="public" 7990 deprecated="not deprecated"> 7991 <param name="binder" type="com.google.inject.Binder"/> 7992 <doc> 7993 <![CDATA[Writes this module element to the given binder (optional operation). 7994 7995 @param binder to apply configuration element to 7996 @throws UnsupportedOperationException if the {@code applyTo} method is not supported by this 7997 element.]]> 7998 </doc> 7999 </method> 8000 <doc> 8001 <![CDATA[A core component of a module or injector. 8002 8003 <p>The elements of a module can be inspected, validated and rewritten. Use {@link 8004 Elements#getElements(com.google.inject.Module[]) Elements.getElements()} to read the elements 8005 from a module, and {@link Elements#getModule(Iterable) Elements.getModule()} to rewrite them. 8006 This can be used for static analysis and generation of Guice modules. 8007 8008 <p>The elements of an injector can be inspected and exercised. Use {@link 8009 com.google.inject.Injector#getBindings Injector.getBindings()} to reflect on Guice injectors. 8010 8011 @author jessewilson (a] google.com (Jesse Wilson) 8012 @author crazybob (a] google.com (Bob Lee) 8013 @since 2.0]]> 8014 </doc> 8015 </interface> 8016 <!-- end interface com.google.inject.spi.Element --> 8017 <!-- start class com.google.inject.spi.Elements --> 8018 <class name="Elements" extends="java.lang.Object" 8019 abstract="false" 8020 static="false" final="true" visibility="public" 8021 deprecated="not deprecated"> 8022 <constructor name="Elements" 8023 static="false" final="false" visibility="public" 8024 deprecated="not deprecated"> 8025 </constructor> 8026 <method name="getElements" return="java.util.List<com.google.inject.spi.Element>" 8027 abstract="false" native="false" synchronized="false" 8028 static="true" final="false" visibility="public" 8029 deprecated="not deprecated"> 8030 <param name="modules" type="com.google.inject.Module[]"/> 8031 <doc> 8032 <![CDATA[Records the elements executed by {@code modules}.]]> 8033 </doc> 8034 </method> 8035 <method name="getElements" return="java.util.List<com.google.inject.spi.Element>" 8036 abstract="false" native="false" synchronized="false" 8037 static="true" final="false" visibility="public" 8038 deprecated="not deprecated"> 8039 <param name="stage" type="com.google.inject.Stage"/> 8040 <param name="modules" type="com.google.inject.Module[]"/> 8041 <doc> 8042 <![CDATA[Records the elements executed by {@code modules}.]]> 8043 </doc> 8044 </method> 8045 <method name="getElements" return="java.util.List<com.google.inject.spi.Element>" 8046 abstract="false" native="false" synchronized="false" 8047 static="true" final="false" visibility="public" 8048 deprecated="not deprecated"> 8049 <param name="modules" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 8050 <doc> 8051 <![CDATA[Records the elements executed by {@code modules}.]]> 8052 </doc> 8053 </method> 8054 <method name="getElements" return="java.util.List<com.google.inject.spi.Element>" 8055 abstract="false" native="false" synchronized="false" 8056 static="true" final="false" visibility="public" 8057 deprecated="not deprecated"> 8058 <param name="stage" type="com.google.inject.Stage"/> 8059 <param name="modules" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 8060 <doc> 8061 <![CDATA[Records the elements executed by {@code modules}.]]> 8062 </doc> 8063 </method> 8064 <method name="getModule" return="com.google.inject.Module" 8065 abstract="false" native="false" synchronized="false" 8066 static="true" final="false" visibility="public" 8067 deprecated="not deprecated"> 8068 <param name="elements" type="java.lang.Iterable<? extends com.google.inject.spi.Element>"/> 8069 <doc> 8070 <![CDATA[Returns the module composed of {@code elements}.]]> 8071 </doc> 8072 </method> 8073 <doc> 8074 <![CDATA[Exposes elements of a module so they can be inspected, validated or {@link 8075 Element#applyTo(Binder) rewritten}. 8076 8077 @author jessewilson (a] google.com (Jesse Wilson) 8078 @since 2.0]]> 8079 </doc> 8080 </class> 8081 <!-- end class com.google.inject.spi.Elements --> 8082 <!-- start class com.google.inject.spi.ElementSource --> 8083 <class name="ElementSource" extends="java.lang.Object" 8084 abstract="false" 8085 static="false" final="true" visibility="public" 8086 deprecated="not deprecated"> 8087 <method name="getOriginalElementSource" return="com.google.inject.spi.ElementSource" 8088 abstract="false" native="false" synchronized="false" 8089 static="false" final="false" visibility="public" 8090 deprecated="not deprecated"> 8091 <doc> 8092 <![CDATA[Returns the {@link ElementSource} of the element this was created or copied from. If this was 8093 not created or copied from another element, returns {@code null}.]]> 8094 </doc> 8095 </method> 8096 <method name="getDeclaringSource" return="java.lang.Object" 8097 abstract="false" native="false" synchronized="false" 8098 static="false" final="false" visibility="public" 8099 deprecated="not deprecated"> 8100 <doc> 8101 <![CDATA[Returns a single location in source code that defines the element. It can be any object 8102 such as {@link Constructor}, {@link Method}, {@link Field}, {@link StackTraceElement}, etc. For 8103 example, if the element is created from a method annotated by {@literal @Provides}, the 8104 declaring source of element would be the method itself.]]> 8105 </doc> 8106 </method> 8107 <method name="getModuleClassNames" return="java.util.List<java.lang.String>" 8108 abstract="false" native="false" synchronized="false" 8109 static="false" final="false" visibility="public" 8110 deprecated="not deprecated"> 8111 <doc> 8112 <![CDATA[Returns the class names of modules involved in creating this {@link Element}. The first 8113 element (index 0) is the class name of module that defined the element, and the last element 8114 is the class name of root module.]]> 8115 </doc> 8116 </method> 8117 <method name="getModuleConfigurePositionsInStackTrace" return="java.util.List<java.lang.Integer>" 8118 abstract="false" native="false" synchronized="false" 8119 static="false" final="false" visibility="public" 8120 deprecated="not deprecated"> 8121 <doc> 8122 <![CDATA[Returns the position of {@link Module#configure(Binder) configure(Binder)} method call in the 8123 {@link #getStackTrace() stack trace} for modules that their classes returned by 8124 {@link #getModuleClassNames()}. For example, if the stack trace looks like the following: 8125 <p> 8126 {@code 8127 0 - Binder.bind(), 8128 1 - ModuleTwo.configure(), 8129 2 - Binder.install(), 8130 3 - ModuleOne.configure(), 8131 4 - theRest(). 8132 } 8133 <p> 8134 1 and 3 are returned. 8135 <p> 8136 In the cases where stack trace is not available (i.e., the stack trace was not collected), 8137 it returns -1 for all module positions.]]> 8138 </doc> 8139 </method> 8140 <method name="getStackTrace" return="java.lang.StackTraceElement[]" 8141 abstract="false" native="false" synchronized="false" 8142 static="false" final="false" visibility="public" 8143 deprecated="not deprecated"> 8144 <doc> 8145 <![CDATA[Returns the sequence of method calls that ends at one of {@link Binder} {@code bindXXX()} 8146 methods and eventually defines the element. Note that {@link #getStackTrace()} lists {@link 8147 StackTraceElement StackTraceElements} in reverse chronological order. The first element (index 8148 zero) is the last method call and the last element is the first method invocation. In the cases 8149 where stack trace is not available (i.e.,the stack trace was not collected), it returns an 8150 empty array.]]> 8151 </doc> 8152 </method> 8153 <method name="toString" return="java.lang.String" 8154 abstract="false" native="false" synchronized="false" 8155 static="false" final="false" visibility="public" 8156 deprecated="not deprecated"> 8157 <doc> 8158 <![CDATA[Returns {@code getDeclaringSource().toString()} value.]]> 8159 </doc> 8160 </method> 8161 <doc> 8162 <![CDATA[Contains information about where and how an {@link Element element} was bound. 8163 <p> 8164 The {@link #getDeclaringSource() declaring source} refers to a location in source code that 8165 defines the Guice {@link Element element}. For example, if the element is created from a method 8166 annotated by {@literal @Provides}, the declaring source of element would be the method itself. 8167 <p> 8168 The {@link #getStackTrace()} refers to the sequence of calls ends at one of {@link Binder} 8169 {@code bindXXX()} methods and eventually defines the element. Note that {@link #getStackTrace()} 8170 lists {@link StackTraceElement StackTraceElements} in reverse chronological order. The first 8171 element (index zero) is the last method call and the last element is the first method invocation. 8172 By default, the stack trace is not collected. The default behavior can be changed by setting the 8173 {@code guice_include_stack_traces} flag value. The value can be either {@code OFF}, {@code 8174 ONLY_FOR_DECLARING_SOURCE} or {@code COMPLETE}. Note that collecting stack traces for every 8175 binding can cause a performance hit when the injector is created. 8176 <p> 8177 The sequence of class names of {@link Module modules} involved in the element creation can be 8178 retrieved by {@link #getModuleClassNames()}. Similar to {@link #getStackTrace()}, the order is 8179 reverse chronological. The first module (index 0) is the module that installs the {@link Element 8180 element}. The last module is the root module. 8181 <p> 8182 In order to support the cases where a Guice {@link Element element} is created from another 8183 Guice {@link Element element} (original) (e.g., by {@link Element#applyTo()}), it also 8184 provides a reference to the original element source ({@link #getOriginalElementSource()}).]]> 8185 </doc> 8186 </class> 8187 <!-- end class com.google.inject.spi.ElementSource --> 8188 <!-- start interface com.google.inject.spi.ElementVisitor --> 8189 <interface name="ElementVisitor" abstract="true" 8190 static="false" final="false" visibility="public" 8191 deprecated="not deprecated"> 8192 <method name="visit" return="V" 8193 abstract="true" native="false" synchronized="false" 8194 static="false" final="false" visibility="public" 8195 deprecated="not deprecated"> 8196 <param name="binding" type="com.google.inject.Binding<T>"/> 8197 <doc> 8198 <![CDATA[Visit a mapping from a key (type and optional annotation) to the strategy for getting 8199 instances of the type.]]> 8200 </doc> 8201 </method> 8202 <method name="visit" return="V" 8203 abstract="true" native="false" synchronized="false" 8204 static="false" final="false" visibility="public" 8205 deprecated="not deprecated"> 8206 <param name="binding" type="com.google.inject.spi.InterceptorBinding"/> 8207 <doc> 8208 <![CDATA[Visit a registration of interceptors for matching methods of matching classes.]]> 8209 </doc> 8210 </method> 8211 <method name="visit" return="V" 8212 abstract="true" native="false" synchronized="false" 8213 static="false" final="false" visibility="public" 8214 deprecated="not deprecated"> 8215 <param name="binding" type="com.google.inject.spi.ScopeBinding"/> 8216 <doc> 8217 <![CDATA[Visit a registration of a scope annotation with the scope that implements it.]]> 8218 </doc> 8219 </method> 8220 <method name="visit" return="V" 8221 abstract="true" native="false" synchronized="false" 8222 static="false" final="false" visibility="public" 8223 deprecated="not deprecated"> 8224 <param name="binding" type="com.google.inject.spi.TypeConverterBinding"/> 8225 <doc> 8226 <![CDATA[Visit a registration of type converters for matching target types.]]> 8227 </doc> 8228 </method> 8229 <method name="visit" return="V" 8230 abstract="true" native="false" synchronized="false" 8231 static="false" final="false" visibility="public" 8232 deprecated="not deprecated"> 8233 <param name="request" type="com.google.inject.spi.InjectionRequest<?>"/> 8234 <doc> 8235 <![CDATA[Visit a request to inject the instance fields and methods of an instance.]]> 8236 </doc> 8237 </method> 8238 <method name="visit" return="V" 8239 abstract="true" native="false" synchronized="false" 8240 static="false" final="false" visibility="public" 8241 deprecated="not deprecated"> 8242 <param name="request" type="com.google.inject.spi.StaticInjectionRequest"/> 8243 <doc> 8244 <![CDATA[Visit a request to inject the static fields and methods of type.]]> 8245 </doc> 8246 </method> 8247 <method name="visit" return="V" 8248 abstract="true" native="false" synchronized="false" 8249 static="false" final="false" visibility="public" 8250 deprecated="not deprecated"> 8251 <param name="lookup" type="com.google.inject.spi.ProviderLookup<T>"/> 8252 <doc> 8253 <![CDATA[Visit a lookup of the provider for a type.]]> 8254 </doc> 8255 </method> 8256 <method name="visit" return="V" 8257 abstract="true" native="false" synchronized="false" 8258 static="false" final="false" visibility="public" 8259 deprecated="not deprecated"> 8260 <param name="lookup" type="com.google.inject.spi.MembersInjectorLookup<T>"/> 8261 <doc> 8262 <![CDATA[Visit a lookup of the members injector.]]> 8263 </doc> 8264 </method> 8265 <method name="visit" return="V" 8266 abstract="true" native="false" synchronized="false" 8267 static="false" final="false" visibility="public" 8268 deprecated="not deprecated"> 8269 <param name="message" type="com.google.inject.spi.Message"/> 8270 <doc> 8271 <![CDATA[Visit an error message and the context in which it occured.]]> 8272 </doc> 8273 </method> 8274 <method name="visit" return="V" 8275 abstract="true" native="false" synchronized="false" 8276 static="false" final="false" visibility="public" 8277 deprecated="not deprecated"> 8278 <param name="elements" type="com.google.inject.spi.PrivateElements"/> 8279 <doc> 8280 <![CDATA[Visit a collection of configuration elements for a {@linkplain com.google.inject.PrivateBinder 8281 private binder}.]]> 8282 </doc> 8283 </method> 8284 <method name="visit" return="V" 8285 abstract="true" native="false" synchronized="false" 8286 static="false" final="false" visibility="public" 8287 deprecated="not deprecated"> 8288 <param name="binding" type="com.google.inject.spi.TypeListenerBinding"/> 8289 <doc> 8290 <![CDATA[Visit an injectable type listener binding.]]> 8291 </doc> 8292 </method> 8293 <method name="visit" return="V" 8294 abstract="true" native="false" synchronized="false" 8295 static="false" final="false" visibility="public" 8296 deprecated="not deprecated"> 8297 <param name="binding" type="com.google.inject.spi.ProvisionListenerBinding"/> 8298 <doc> 8299 <![CDATA[Visit a provision listener binding.]]> 8300 </doc> 8301 </method> 8302 <method name="visit" return="V" 8303 abstract="true" native="false" synchronized="false" 8304 static="false" final="false" visibility="public" 8305 deprecated="not deprecated"> 8306 <param name="option" type="com.google.inject.spi.RequireExplicitBindingsOption"/> 8307 <doc> 8308 <![CDATA[Visit a require explicit bindings command. 8309 8310 @since 3.0]]> 8311 </doc> 8312 </method> 8313 <method name="visit" return="V" 8314 abstract="true" native="false" synchronized="false" 8315 static="false" final="false" visibility="public" 8316 deprecated="not deprecated"> 8317 <param name="option" type="com.google.inject.spi.DisableCircularProxiesOption"/> 8318 <doc> 8319 <![CDATA[Visit a disable circular proxies command. 8320 8321 @since 3.0]]> 8322 </doc> 8323 </method> 8324 <method name="visit" return="V" 8325 abstract="true" native="false" synchronized="false" 8326 static="false" final="false" visibility="public" 8327 deprecated="not deprecated"> 8328 <param name="option" type="com.google.inject.spi.RequireAtInjectOnConstructorsOption"/> 8329 <doc> 8330 <![CDATA[Visit a require explicit {@literal @}{@link Inject} command. 8331 8332 @since 4.0]]> 8333 </doc> 8334 </method> 8335 <method name="visit" return="V" 8336 abstract="true" native="false" synchronized="false" 8337 static="false" final="false" visibility="public" 8338 deprecated="not deprecated"> 8339 <param name="option" type="com.google.inject.spi.RequireExactBindingAnnotationsOption"/> 8340 <doc> 8341 <![CDATA[Visit a require exact binding annotations command. 8342 8343 @since 4.0]]> 8344 </doc> 8345 </method> 8346 <doc> 8347 <![CDATA[Visit elements. 8348 8349 @param <V> any type to be returned by the visit method. Use {@link Void} with 8350 {@code return null} if no return type is needed. 8351 8352 @since 2.0]]> 8353 </doc> 8354 </interface> 8355 <!-- end interface com.google.inject.spi.ElementVisitor --> 8356 <!-- start interface com.google.inject.spi.ExposedBinding --> 8357 <interface name="ExposedBinding" abstract="true" 8358 static="false" final="false" visibility="public" 8359 deprecated="not deprecated"> 8360 <implements name="com.google.inject.Binding<T>"/> 8361 <implements name="com.google.inject.spi.HasDependencies"/> 8362 <method name="getPrivateElements" return="com.google.inject.spi.PrivateElements" 8363 abstract="true" native="false" synchronized="false" 8364 static="false" final="false" visibility="public" 8365 deprecated="not deprecated"> 8366 <doc> 8367 <![CDATA[Returns the enclosed environment that holds the original binding.]]> 8368 </doc> 8369 </method> 8370 <method name="applyTo" 8371 abstract="true" native="false" synchronized="false" 8372 static="false" final="false" visibility="public" 8373 deprecated="not deprecated"> 8374 <param name="binder" type="com.google.inject.Binder"/> 8375 <doc> 8376 <![CDATA[Unsupported. Always throws {@link UnsupportedOperationException}.]]> 8377 </doc> 8378 </method> 8379 <doc> 8380 <![CDATA[A binding to a key exposed from an enclosed private environment. 8381 8382 @author jessewilson (a] google.com (Jesse Wilson) 8383 @since 2.0]]> 8384 </doc> 8385 </interface> 8386 <!-- end interface com.google.inject.spi.ExposedBinding --> 8387 <!-- start interface com.google.inject.spi.HasDependencies --> 8388 <interface name="HasDependencies" abstract="true" 8389 static="false" final="false" visibility="public" 8390 deprecated="not deprecated"> 8391 <method name="getDependencies" return="java.util.Set<com.google.inject.spi.Dependency<?>>" 8392 abstract="true" native="false" synchronized="false" 8393 static="false" final="false" visibility="public" 8394 deprecated="not deprecated"> 8395 <doc> 8396 <![CDATA[Returns the known dependencies for this type. If this has dependencies whose values are not 8397 known statically, a dependency for the {@link com.google.inject.Injector Injector} will be 8398 included in the returned set. 8399 8400 @return a possibly empty set]]> 8401 </doc> 8402 </method> 8403 <doc> 8404 <![CDATA[Implemented by {@link com.google.inject.Binding bindings}, {@link com.google.inject.Provider 8405 providers} and instances that expose their dependencies explicitly. 8406 8407 @author jessewilson (a] google.com (Jesse Wilson) 8408 @since 2.0]]> 8409 </doc> 8410 </interface> 8411 <!-- end interface com.google.inject.spi.HasDependencies --> 8412 <!-- start interface com.google.inject.spi.InjectionListener --> 8413 <interface name="InjectionListener" abstract="true" 8414 static="false" final="false" visibility="public" 8415 deprecated="not deprecated"> 8416 <method name="afterInjection" 8417 abstract="true" native="false" synchronized="false" 8418 static="false" final="false" visibility="public" 8419 deprecated="not deprecated"> 8420 <param name="injectee" type="I"/> 8421 <doc> 8422 <![CDATA[Invoked by Guice after it injects the fields and methods of instance. 8423 8424 @param injectee instance that Guice injected dependencies into]]> 8425 </doc> 8426 </method> 8427 <doc> 8428 <![CDATA[Listens for injections into instances of type {@code I}. Useful for performing further 8429 injections, post-injection initialization, and more. 8430 8431 @author crazybob (a] google.com (Bob Lee) 8432 @author jessewilson (a] google.com (Jesse Wilson) 8433 @since 2.0]]> 8434 </doc> 8435 </interface> 8436 <!-- end interface com.google.inject.spi.InjectionListener --> 8437 <!-- start class com.google.inject.spi.InjectionPoint --> 8438 <class name="InjectionPoint" extends="java.lang.Object" 8439 abstract="false" 8440 static="false" final="true" visibility="public" 8441 deprecated="not deprecated"> 8442 <method name="getMember" return="java.lang.reflect.Member" 8443 abstract="false" native="false" synchronized="false" 8444 static="false" final="false" visibility="public" 8445 deprecated="not deprecated"> 8446 <doc> 8447 <![CDATA[Returns the injected constructor, field, or method.]]> 8448 </doc> 8449 </method> 8450 <method name="getDependencies" return="java.util.List<com.google.inject.spi.Dependency<?>>" 8451 abstract="false" native="false" synchronized="false" 8452 static="false" final="false" visibility="public" 8453 deprecated="not deprecated"> 8454 <doc> 8455 <![CDATA[Returns the dependencies for this injection point. If the injection point is for a method or 8456 constructor, the dependencies will correspond to that member's parameters. Field injection 8457 points always have a single dependency for the field itself. 8458 8459 @return a possibly-empty list]]> 8460 </doc> 8461 </method> 8462 <method name="isOptional" return="boolean" 8463 abstract="false" native="false" synchronized="false" 8464 static="false" final="false" visibility="public" 8465 deprecated="not deprecated"> 8466 <doc> 8467 <![CDATA[Returns true if this injection point shall be skipped if the injector cannot resolve bindings 8468 for all required dependencies. Both explicit bindings (as specified in a module), and implicit 8469 bindings ({@literal @}{@link com.google.inject.ImplementedBy ImplementedBy}, default 8470 constructors etc.) may be used to satisfy optional injection points.]]> 8471 </doc> 8472 </method> 8473 <method name="isToolable" return="boolean" 8474 abstract="false" native="false" synchronized="false" 8475 static="false" final="false" visibility="public" 8476 deprecated="not deprecated"> 8477 <doc> 8478 <![CDATA[Returns true if the element is annotated with {@literal @}{@link Toolable}. 8479 8480 @since 3.0]]> 8481 </doc> 8482 </method> 8483 <method name="getDeclaringType" return="com.google.inject.TypeLiteral<?>" 8484 abstract="false" native="false" synchronized="false" 8485 static="false" final="false" visibility="public" 8486 deprecated="not deprecated"> 8487 <doc> 8488 <![CDATA[Returns the generic type that defines this injection point. If the member exists on a 8489 parameterized type, the result will include more type information than the member's {@link 8490 Member#getDeclaringClass() raw declaring class}. 8491 8492 @since 3.0]]> 8493 </doc> 8494 </method> 8495 <method name="equals" return="boolean" 8496 abstract="false" native="false" synchronized="false" 8497 static="false" final="false" visibility="public" 8498 deprecated="not deprecated"> 8499 <param name="o" type="java.lang.Object"/> 8500 </method> 8501 <method name="hashCode" return="int" 8502 abstract="false" native="false" synchronized="false" 8503 static="false" final="false" visibility="public" 8504 deprecated="not deprecated"> 8505 </method> 8506 <method name="toString" return="java.lang.String" 8507 abstract="false" native="false" synchronized="false" 8508 static="false" final="false" visibility="public" 8509 deprecated="not deprecated"> 8510 </method> 8511 <method name="forConstructor" return="com.google.inject.spi.InjectionPoint" 8512 abstract="false" native="false" synchronized="false" 8513 static="true" final="false" visibility="public" 8514 deprecated="not deprecated"> 8515 <param name="constructor" type="java.lang.reflect.Constructor<T>"/> 8516 <doc> 8517 <![CDATA[Returns a new injection point for the specified constructor. If the declaring type of {@code 8518 constructor} is parameterized (such as {@code List<T>}), prefer the overload that includes a 8519 type literal. 8520 8521 @param constructor any single constructor present on {@code type}. 8522 8523 @since 3.0]]> 8524 </doc> 8525 </method> 8526 <method name="forConstructor" return="com.google.inject.spi.InjectionPoint" 8527 abstract="false" native="false" synchronized="false" 8528 static="true" final="false" visibility="public" 8529 deprecated="not deprecated"> 8530 <param name="constructor" type="java.lang.reflect.Constructor<T>"/> 8531 <param name="type" type="com.google.inject.TypeLiteral<? extends T>"/> 8532 <doc> 8533 <![CDATA[Returns a new injection point for the specified constructor of {@code type}. 8534 8535 @param constructor any single constructor present on {@code type}. 8536 @param type the concrete type that defines {@code constructor}. 8537 8538 @since 3.0]]> 8539 </doc> 8540 </method> 8541 <method name="forConstructorOf" return="com.google.inject.spi.InjectionPoint" 8542 abstract="false" native="false" synchronized="false" 8543 static="true" final="false" visibility="public" 8544 deprecated="not deprecated"> 8545 <param name="type" type="com.google.inject.TypeLiteral<?>"/> 8546 <doc> 8547 <![CDATA[Returns a new injection point for the injectable constructor of {@code type}. 8548 8549 @param type a concrete type with exactly one constructor annotated {@literal @}{@link Inject}, 8550 or a no-arguments constructor that is not private. 8551 @throws ConfigurationException if there is no injectable constructor, more than one injectable 8552 constructor, or if parameters of the injectable constructor are malformed, such as a 8553 parameter with multiple binding annotations.]]> 8554 </doc> 8555 </method> 8556 <method name="forConstructorOf" return="com.google.inject.spi.InjectionPoint" 8557 abstract="false" native="false" synchronized="false" 8558 static="true" final="false" visibility="public" 8559 deprecated="not deprecated"> 8560 <param name="type" type="java.lang.Class<?>"/> 8561 <doc> 8562 <![CDATA[Returns a new injection point for the injectable constructor of {@code type}. 8563 8564 @param type a concrete type with exactly one constructor annotated {@literal @}{@link Inject}, 8565 or a no-arguments constructor that is not private. 8566 @throws ConfigurationException if there is no injectable constructor, more than one injectable 8567 constructor, or if parameters of the injectable constructor are malformed, such as a 8568 parameter with multiple binding annotations.]]> 8569 </doc> 8570 </method> 8571 <method name="forStaticMethodsAndFields" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 8572 abstract="false" native="false" synchronized="false" 8573 static="true" final="false" visibility="public" 8574 deprecated="not deprecated"> 8575 <param name="type" type="com.google.inject.TypeLiteral<?>"/> 8576 <doc> 8577 <![CDATA[Returns all static method and field injection points on {@code type}. 8578 8579 @return a possibly empty set of injection points. The set has a specified iteration order. All 8580 fields are returned and then all methods. Within the fields, supertype fields are returned 8581 before subtype fields. Similarly, supertype methods are returned before subtype methods. 8582 @throws ConfigurationException if there is a malformed injection point on {@code type}, such as 8583 a field with multiple binding annotations. The exception's {@link 8584 ConfigurationException#getPartialValue() partial value} is a {@code Set<InjectionPoint>} 8585 of the valid injection points.]]> 8586 </doc> 8587 </method> 8588 <method name="forStaticMethodsAndFields" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 8589 abstract="false" native="false" synchronized="false" 8590 static="true" final="false" visibility="public" 8591 deprecated="not deprecated"> 8592 <param name="type" type="java.lang.Class<?>"/> 8593 <doc> 8594 <![CDATA[Returns all static method and field injection points on {@code type}. 8595 8596 @return a possibly empty set of injection points. The set has a specified iteration order. All 8597 fields are returned and then all methods. Within the fields, supertype fields are returned 8598 before subtype fields. Similarly, supertype methods are returned before subtype methods. 8599 @throws ConfigurationException if there is a malformed injection point on {@code type}, such as 8600 a field with multiple binding annotations. The exception's {@link 8601 ConfigurationException#getPartialValue() partial value} is a {@code Set<InjectionPoint>} 8602 of the valid injection points.]]> 8603 </doc> 8604 </method> 8605 <method name="forInstanceMethodsAndFields" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 8606 abstract="false" native="false" synchronized="false" 8607 static="true" final="false" visibility="public" 8608 deprecated="not deprecated"> 8609 <param name="type" type="com.google.inject.TypeLiteral<?>"/> 8610 <doc> 8611 <![CDATA[Returns all instance method and field injection points on {@code type}. 8612 8613 @return a possibly empty set of injection points. The set has a specified iteration order. All 8614 fields are returned and then all methods. Within the fields, supertype fields are returned 8615 before subtype fields. Similarly, supertype methods are returned before subtype methods. 8616 @throws ConfigurationException if there is a malformed injection point on {@code type}, such as 8617 a field with multiple binding annotations. The exception's {@link 8618 ConfigurationException#getPartialValue() partial value} is a {@code Set<InjectionPoint>} 8619 of the valid injection points.]]> 8620 </doc> 8621 </method> 8622 <method name="forInstanceMethodsAndFields" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 8623 abstract="false" native="false" synchronized="false" 8624 static="true" final="false" visibility="public" 8625 deprecated="not deprecated"> 8626 <param name="type" type="java.lang.Class<?>"/> 8627 <doc> 8628 <![CDATA[Returns all instance method and field injection points on {@code type}. 8629 8630 @return a possibly empty set of injection points. The set has a specified iteration order. All 8631 fields are returned and then all methods. Within the fields, supertype fields are returned 8632 before subtype fields. Similarly, supertype methods are returned before subtype methods. 8633 @throws ConfigurationException if there is a malformed injection point on {@code type}, such as 8634 a field with multiple binding annotations. The exception's {@link 8635 ConfigurationException#getPartialValue() partial value} is a {@code Set<InjectionPoint>} 8636 of the valid injection points.]]> 8637 </doc> 8638 </method> 8639 <doc> 8640 <![CDATA[A constructor, field or method that can receive injections. Typically this is a member with the 8641 {@literal @}{@link Inject} annotation. For non-private, no argument constructors, the member may 8642 omit the annotation. 8643 8644 @author crazybob (a] google.com (Bob Lee) 8645 @since 2.0]]> 8646 </doc> 8647 </class> 8648 <!-- end class com.google.inject.spi.InjectionPoint --> 8649 <!-- start class com.google.inject.spi.InjectionRequest --> 8650 <class name="InjectionRequest" extends="java.lang.Object" 8651 abstract="false" 8652 static="false" final="true" visibility="public" 8653 deprecated="not deprecated"> 8654 <implements name="com.google.inject.spi.Element"/> 8655 <constructor name="InjectionRequest" type="java.lang.Object, com.google.inject.TypeLiteral<T>, T" 8656 static="false" final="false" visibility="public" 8657 deprecated="not deprecated"> 8658 </constructor> 8659 <method name="getSource" return="java.lang.Object" 8660 abstract="false" native="false" synchronized="false" 8661 static="false" final="false" visibility="public" 8662 deprecated="not deprecated"> 8663 </method> 8664 <method name="getInstance" return="T" 8665 abstract="false" native="false" synchronized="false" 8666 static="false" final="false" visibility="public" 8667 deprecated="not deprecated"> 8668 </method> 8669 <method name="getType" return="com.google.inject.TypeLiteral<T>" 8670 abstract="false" native="false" synchronized="false" 8671 static="false" final="false" visibility="public" 8672 deprecated="not deprecated"> 8673 </method> 8674 <method name="getInjectionPoints" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 8675 abstract="false" native="false" synchronized="false" 8676 static="false" final="false" visibility="public" 8677 deprecated="not deprecated"> 8678 <exception name="ConfigurationException" type="com.google.inject.ConfigurationException"/> 8679 <doc> 8680 <![CDATA[Returns the instance methods and fields of {@code instance} that will be injected to fulfill 8681 this request. 8682 8683 @return a possibly empty set of injection points. The set has a specified iteration order. All 8684 fields are returned and then all methods. Within the fields, supertype fields are returned 8685 before subtype fields. Similarly, supertype methods are returned before subtype methods. 8686 @throws ConfigurationException if there is a malformed injection point on the class of {@code 8687 instance}, such as a field with multiple binding annotations. The exception's {@link 8688 ConfigurationException#getPartialValue() partial value} is a {@code Set<InjectionPoint>} 8689 of the valid injection points.]]> 8690 </doc> 8691 </method> 8692 <method name="acceptVisitor" return="R" 8693 abstract="false" native="false" synchronized="false" 8694 static="false" final="false" visibility="public" 8695 deprecated="not deprecated"> 8696 <param name="visitor" type="com.google.inject.spi.ElementVisitor<R>"/> 8697 </method> 8698 <method name="applyTo" 8699 abstract="false" native="false" synchronized="false" 8700 static="false" final="false" visibility="public" 8701 deprecated="not deprecated"> 8702 <param name="binder" type="com.google.inject.Binder"/> 8703 </method> 8704 <doc> 8705 <![CDATA[A request to inject the instance fields and methods of an instance. Requests are created 8706 explicitly in a module using {@link com.google.inject.Binder#requestInjection(Object) 8707 requestInjection()} statements: 8708 <pre> 8709 requestInjection(serviceInstance);</pre> 8710 8711 @author mikeward (a] google.com (Mike Ward) 8712 @since 2.0]]> 8713 </doc> 8714 </class> 8715 <!-- end class com.google.inject.spi.InjectionRequest --> 8716 <!-- start interface com.google.inject.spi.InstanceBinding --> 8717 <interface name="InstanceBinding" abstract="true" 8718 static="false" final="false" visibility="public" 8719 deprecated="not deprecated"> 8720 <implements name="com.google.inject.Binding<T>"/> 8721 <implements name="com.google.inject.spi.HasDependencies"/> 8722 <method name="getInstance" return="T" 8723 abstract="true" native="false" synchronized="false" 8724 static="false" final="false" visibility="public" 8725 deprecated="not deprecated"> 8726 <doc> 8727 <![CDATA[Returns the user-supplied instance.]]> 8728 </doc> 8729 </method> 8730 <method name="getInjectionPoints" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 8731 abstract="true" native="false" synchronized="false" 8732 static="false" final="false" visibility="public" 8733 deprecated="not deprecated"> 8734 <doc> 8735 <![CDATA[Returns the field and method injection points of the instance, injected at injector-creation 8736 time only. 8737 8738 @return a possibly empty set]]> 8739 </doc> 8740 </method> 8741 <doc> 8742 <![CDATA[A binding to a single instance. The same instance is returned for every injection. 8743 8744 @author jessewilson (a] google.com (Jesse Wilson) 8745 @since 2.0]]> 8746 </doc> 8747 </interface> 8748 <!-- end interface com.google.inject.spi.InstanceBinding --> 8749 <!-- start class com.google.inject.spi.InterceptorBinding --> 8750 <class name="InterceptorBinding" extends="java.lang.Object" 8751 abstract="false" 8752 static="false" final="true" visibility="public" 8753 deprecated="not deprecated"> 8754 <implements name="com.google.inject.spi.Element"/> 8755 <method name="getSource" return="java.lang.Object" 8756 abstract="false" native="false" synchronized="false" 8757 static="false" final="false" visibility="public" 8758 deprecated="not deprecated"> 8759 </method> 8760 <method name="getClassMatcher" return="com.google.inject.matcher.Matcher<? super java.lang.Class<?>>" 8761 abstract="false" native="false" synchronized="false" 8762 static="false" final="false" visibility="public" 8763 deprecated="not deprecated"> 8764 </method> 8765 <method name="getMethodMatcher" return="com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>" 8766 abstract="false" native="false" synchronized="false" 8767 static="false" final="false" visibility="public" 8768 deprecated="not deprecated"> 8769 </method> 8770 <method name="getInterceptors" return="java.util.List<org.aopalliance.intercept.MethodInterceptor>" 8771 abstract="false" native="false" synchronized="false" 8772 static="false" final="false" visibility="public" 8773 deprecated="not deprecated"> 8774 </method> 8775 <method name="acceptVisitor" return="T" 8776 abstract="false" native="false" synchronized="false" 8777 static="false" final="false" visibility="public" 8778 deprecated="not deprecated"> 8779 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 8780 </method> 8781 <method name="applyTo" 8782 abstract="false" native="false" synchronized="false" 8783 static="false" final="false" visibility="public" 8784 deprecated="not deprecated"> 8785 <param name="binder" type="com.google.inject.Binder"/> 8786 </method> 8787 <doc> 8788 <![CDATA[Registration of interceptors for matching methods of matching classes. Instances are created 8789 explicitly in a module using {@link com.google.inject.Binder#bindInterceptor( 8790 Matcher, Matcher, MethodInterceptor[]) bindInterceptor()} statements: 8791 <pre> 8792 bindInterceptor(Matchers.subclassesOf(MyAction.class), 8793 Matchers.annotatedWith(Transactional.class), 8794 new MyTransactionInterceptor());</pre> 8795 8796 or from an injectable type listener using {@link TypeEncounter#bindInterceptor(Matcher, 8797 org.aopalliance.intercept.MethodInterceptor[]) TypeEncounter.bindInterceptor()}. 8798 8799 @author jessewilson (a] google.com (Jesse Wilson) 8800 @since 2.0]]> 8801 </doc> 8802 </class> 8803 <!-- end class com.google.inject.spi.InterceptorBinding --> 8804 <!-- start interface com.google.inject.spi.LinkedKeyBinding --> 8805 <interface name="LinkedKeyBinding" abstract="true" 8806 static="false" final="false" visibility="public" 8807 deprecated="not deprecated"> 8808 <implements name="com.google.inject.Binding<T>"/> 8809 <method name="getLinkedKey" return="com.google.inject.Key<? extends T>" 8810 abstract="true" native="false" synchronized="false" 8811 static="false" final="false" visibility="public" 8812 deprecated="not deprecated"> 8813 <doc> 8814 <![CDATA[Returns the linked key used to resolve injections. That binding can be retrieved from an 8815 injector using {@link com.google.inject.Injector#getBinding(Key) Injector.getBinding(key)}.]]> 8816 </doc> 8817 </method> 8818 <doc> 8819 <![CDATA[A binding to a linked key. The other key's binding is used to resolve injections. 8820 8821 @author jessewilson (a] google.com (Jesse Wilson) 8822 @since 2.0]]> 8823 </doc> 8824 </interface> 8825 <!-- end interface com.google.inject.spi.LinkedKeyBinding --> 8826 <!-- start class com.google.inject.spi.MembersInjectorLookup --> 8827 <class name="MembersInjectorLookup" extends="java.lang.Object" 8828 abstract="false" 8829 static="false" final="true" visibility="public" 8830 deprecated="not deprecated"> 8831 <implements name="com.google.inject.spi.Element"/> 8832 <constructor name="MembersInjectorLookup" type="java.lang.Object, com.google.inject.TypeLiteral<T>" 8833 static="false" final="false" visibility="public" 8834 deprecated="not deprecated"> 8835 </constructor> 8836 <method name="getSource" return="java.lang.Object" 8837 abstract="false" native="false" synchronized="false" 8838 static="false" final="false" visibility="public" 8839 deprecated="not deprecated"> 8840 </method> 8841 <method name="getType" return="com.google.inject.TypeLiteral<T>" 8842 abstract="false" native="false" synchronized="false" 8843 static="false" final="false" visibility="public" 8844 deprecated="not deprecated"> 8845 <doc> 8846 <![CDATA[Gets the type containing the members to be injected.]]> 8847 </doc> 8848 </method> 8849 <method name="acceptVisitor" return="T" 8850 abstract="false" native="false" synchronized="false" 8851 static="false" final="false" visibility="public" 8852 deprecated="not deprecated"> 8853 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 8854 </method> 8855 <method name="initializeDelegate" 8856 abstract="false" native="false" synchronized="false" 8857 static="false" final="false" visibility="public" 8858 deprecated="not deprecated"> 8859 <param name="delegate" type="com.google.inject.MembersInjector<T>"/> 8860 <doc> 8861 <![CDATA[Sets the actual members injector. 8862 8863 @throws IllegalStateException if the delegate is already set]]> 8864 </doc> 8865 </method> 8866 <method name="applyTo" 8867 abstract="false" native="false" synchronized="false" 8868 static="false" final="false" visibility="public" 8869 deprecated="not deprecated"> 8870 <param name="binder" type="com.google.inject.Binder"/> 8871 </method> 8872 <method name="getDelegate" return="com.google.inject.MembersInjector<T>" 8873 abstract="false" native="false" synchronized="false" 8874 static="false" final="false" visibility="public" 8875 deprecated="not deprecated"> 8876 <doc> 8877 <![CDATA[Returns the delegate members injector, or {@code null} if it has not yet been initialized. 8878 The delegate will be initialized when this element is processed, or otherwise used to create 8879 an injector.]]> 8880 </doc> 8881 </method> 8882 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 8883 abstract="false" native="false" synchronized="false" 8884 static="false" final="false" visibility="public" 8885 deprecated="not deprecated"> 8886 <doc> 8887 <![CDATA[Returns the looked up members injector. The result is not valid until this lookup has been 8888 initialized, which usually happens when the injector is created. The members injector will 8889 throw an {@code IllegalStateException} if you try to use it beforehand.]]> 8890 </doc> 8891 </method> 8892 <doc> 8893 <![CDATA[A lookup of the members injector for a type. Lookups are created explicitly in a module using 8894 {@link com.google.inject.Binder#getMembersInjector(Class) getMembersInjector()} statements: 8895 <pre> 8896 MembersInjector<PaymentService> membersInjector 8897 = getMembersInjector(PaymentService.class);</pre> 8898 8899 @author crazybob (a] google.com (Bob Lee) 8900 @since 2.0]]> 8901 </doc> 8902 </class> 8903 <!-- end class com.google.inject.spi.MembersInjectorLookup --> 8904 <!-- start class com.google.inject.spi.Message --> 8905 <class name="Message" extends="java.lang.Object" 8906 abstract="false" 8907 static="false" final="true" visibility="public" 8908 deprecated="not deprecated"> 8909 <implements name="java.io.Serializable"/> 8910 <implements name="com.google.inject.spi.Element"/> 8911 <constructor name="Message" type="java.util.List<java.lang.Object>, java.lang.String, java.lang.Throwable" 8912 static="false" final="false" visibility="public" 8913 deprecated="not deprecated"> 8914 <doc> 8915 <![CDATA[@since 2.0]]> 8916 </doc> 8917 </constructor> 8918 <constructor name="Message" type="java.lang.String, java.lang.Throwable" 8919 static="false" final="false" visibility="public" 8920 deprecated="not deprecated"> 8921 <doc> 8922 <![CDATA[@since 4.0]]> 8923 </doc> 8924 </constructor> 8925 <constructor name="Message" type="java.lang.Object, java.lang.String" 8926 static="false" final="false" visibility="public" 8927 deprecated="not deprecated"> 8928 </constructor> 8929 <constructor name="Message" type="java.lang.String" 8930 static="false" final="false" visibility="public" 8931 deprecated="not deprecated"> 8932 </constructor> 8933 <method name="getSource" return="java.lang.String" 8934 abstract="false" native="false" synchronized="false" 8935 static="false" final="false" visibility="public" 8936 deprecated="not deprecated"> 8937 </method> 8938 <method name="getSources" return="java.util.List<java.lang.Object>" 8939 abstract="false" native="false" synchronized="false" 8940 static="false" final="false" visibility="public" 8941 deprecated="not deprecated"> 8942 <doc> 8943 <![CDATA[@since 2.0]]> 8944 </doc> 8945 </method> 8946 <method name="getMessage" return="java.lang.String" 8947 abstract="false" native="false" synchronized="false" 8948 static="false" final="false" visibility="public" 8949 deprecated="not deprecated"> 8950 <doc> 8951 <![CDATA[Gets the error message text.]]> 8952 </doc> 8953 </method> 8954 <method name="acceptVisitor" return="T" 8955 abstract="false" native="false" synchronized="false" 8956 static="false" final="false" visibility="public" 8957 deprecated="not deprecated"> 8958 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 8959 <doc> 8960 <![CDATA[@since 2.0]]> 8961 </doc> 8962 </method> 8963 <method name="getCause" return="java.lang.Throwable" 8964 abstract="false" native="false" synchronized="false" 8965 static="false" final="false" visibility="public" 8966 deprecated="not deprecated"> 8967 <doc> 8968 <![CDATA[Returns the throwable that caused this message, or {@code null} if this 8969 message was not caused by a throwable. 8970 8971 @since 2.0]]> 8972 </doc> 8973 </method> 8974 <method name="toString" return="java.lang.String" 8975 abstract="false" native="false" synchronized="false" 8976 static="false" final="false" visibility="public" 8977 deprecated="not deprecated"> 8978 </method> 8979 <method name="hashCode" return="int" 8980 abstract="false" native="false" synchronized="false" 8981 static="false" final="false" visibility="public" 8982 deprecated="not deprecated"> 8983 </method> 8984 <method name="equals" return="boolean" 8985 abstract="false" native="false" synchronized="false" 8986 static="false" final="false" visibility="public" 8987 deprecated="not deprecated"> 8988 <param name="o" type="java.lang.Object"/> 8989 </method> 8990 <method name="applyTo" 8991 abstract="false" native="false" synchronized="false" 8992 static="false" final="false" visibility="public" 8993 deprecated="not deprecated"> 8994 <param name="binder" type="com.google.inject.Binder"/> 8995 <doc> 8996 <![CDATA[@since 2.0]]> 8997 </doc> 8998 </method> 8999 <doc> 9000 <![CDATA[An error message and the context in which it occured. Messages are usually created internally by 9001 Guice and its extensions. Messages can be created explicitly in a module using {@link 9002 com.google.inject.Binder#addError(Throwable) addError()} statements: 9003 <pre> 9004 try { 9005 bindPropertiesFromFile(); 9006 } catch (IOException e) { 9007 addError(e); 9008 }</pre> 9009 9010 @author crazybob (a] google.com (Bob Lee)]]> 9011 </doc> 9012 </class> 9013 <!-- end class com.google.inject.spi.Message --> 9014 <!-- start interface com.google.inject.spi.PrivateElements --> 9015 <interface name="PrivateElements" abstract="true" 9016 static="false" final="false" visibility="public" 9017 deprecated="not deprecated"> 9018 <implements name="com.google.inject.spi.Element"/> 9019 <method name="getElements" return="java.util.List<com.google.inject.spi.Element>" 9020 abstract="true" native="false" synchronized="false" 9021 static="false" final="false" visibility="public" 9022 deprecated="not deprecated"> 9023 <doc> 9024 <![CDATA[Returns the configuration information in this private environment.]]> 9025 </doc> 9026 </method> 9027 <method name="getInjector" return="com.google.inject.Injector" 9028 abstract="true" native="false" synchronized="false" 9029 static="false" final="false" visibility="public" 9030 deprecated="not deprecated"> 9031 <doc> 9032 <![CDATA[Returns the child injector that hosts these private elements, or null if the elements haven't 9033 been used to create an injector.]]> 9034 </doc> 9035 </method> 9036 <method name="getExposedKeys" return="java.util.Set<com.google.inject.Key<?>>" 9037 abstract="true" native="false" synchronized="false" 9038 static="false" final="false" visibility="public" 9039 deprecated="not deprecated"> 9040 <doc> 9041 <![CDATA[Returns the unique exposed keys for these private elements.]]> 9042 </doc> 9043 </method> 9044 <method name="getExposedSource" return="java.lang.Object" 9045 abstract="true" native="false" synchronized="false" 9046 static="false" final="false" visibility="public" 9047 deprecated="not deprecated"> 9048 <param name="key" type="com.google.inject.Key<?>"/> 9049 <doc> 9050 <![CDATA[Returns an arbitrary object containing information about the "place" where this key was 9051 exposed. Used by Guice in the production of descriptive error messages. 9052 9053 <p>Tools might specially handle types they know about; {@code StackTraceElement} is a good 9054 example. Tools should simply call {@code toString()} on the source object if the type is 9055 unfamiliar. 9056 9057 @param key one of the keys exposed by this module.]]> 9058 </doc> 9059 </method> 9060 <doc> 9061 <![CDATA[A private collection of elements that are hidden from the enclosing injector or module by 9062 default. See {@link com.google.inject.PrivateModule PrivateModule} for details. 9063 9064 @author jessewilson (a] google.com (Jesse Wilson) 9065 @since 2.0]]> 9066 </doc> 9067 </interface> 9068 <!-- end interface com.google.inject.spi.PrivateElements --> 9069 <!-- start interface com.google.inject.spi.ProviderBinding --> 9070 <interface name="ProviderBinding" abstract="true" 9071 static="false" final="false" visibility="public" 9072 deprecated="not deprecated"> 9073 <implements name="com.google.inject.Binding<T>"/> 9074 <method name="getProvidedKey" return="com.google.inject.Key<?>" 9075 abstract="true" native="false" synchronized="false" 9076 static="false" final="false" visibility="public" 9077 deprecated="not deprecated"> 9078 <doc> 9079 <![CDATA[Returns the key whose binding is used to {@link Provider#get provide instances}. That binding 9080 can be retrieved from an injector using {@link com.google.inject.Injector#getBinding(Key) 9081 Injector.getBinding(providedKey)}]]> 9082 </doc> 9083 </method> 9084 <doc> 9085 <![CDATA[A binding to a {@link Provider} that delegates to the binding for the provided type. This binding 9086 is used whenever a {@code Provider<T>} is injected (as opposed to injecting {@code T} directly). 9087 9088 @author jessewilson (a] google.com (Jesse Wilson) 9089 @since 2.0]]> 9090 </doc> 9091 </interface> 9092 <!-- end interface com.google.inject.spi.ProviderBinding --> 9093 <!-- start interface com.google.inject.spi.ProviderInstanceBinding --> 9094 <interface name="ProviderInstanceBinding" abstract="true" 9095 static="false" final="false" visibility="public" 9096 deprecated="not deprecated"> 9097 <implements name="com.google.inject.Binding<T>"/> 9098 <implements name="com.google.inject.spi.HasDependencies"/> 9099 <method name="getProviderInstance" return="com.google.inject.Provider<? extends T>" 9100 abstract="true" native="false" synchronized="false" 9101 static="false" final="false" visibility="public" 9102 deprecated="Use {@link #getUserSuppliedProvider} instead."> 9103 <doc> 9104 <![CDATA[If the user supplied a JSR330 binding, then this will wrap that one. To always return the 9105 user-supplied provider, use {@link #getUserSuppliedProvider}. 9106 9107 @deprecated Use {@link #getUserSuppliedProvider} instead.]]> 9108 </doc> 9109 </method> 9110 <method name="getUserSuppliedProvider" return="javax.inject.Provider<? extends T>" 9111 abstract="true" native="false" synchronized="false" 9112 static="false" final="false" visibility="public" 9113 deprecated="not deprecated"> 9114 <doc> 9115 <![CDATA[Returns the user-supplied, unscoped provider.]]> 9116 </doc> 9117 </method> 9118 <method name="getInjectionPoints" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 9119 abstract="true" native="false" synchronized="false" 9120 static="false" final="false" visibility="public" 9121 deprecated="not deprecated"> 9122 <doc> 9123 <![CDATA[Returns the field and method injection points of the provider, injected at injector-creation 9124 time only. 9125 9126 @return a possibly empty set]]> 9127 </doc> 9128 </method> 9129 <doc> 9130 <![CDATA[A binding to a provider instance. The provider's {@code get} method is invoked to resolve 9131 injections. 9132 9133 @author jessewilson (a] google.com (Jesse Wilson) 9134 @since 2.0]]> 9135 </doc> 9136 </interface> 9137 <!-- end interface com.google.inject.spi.ProviderInstanceBinding --> 9138 <!-- start interface com.google.inject.spi.ProviderKeyBinding --> 9139 <interface name="ProviderKeyBinding" abstract="true" 9140 static="false" final="false" visibility="public" 9141 deprecated="not deprecated"> 9142 <implements name="com.google.inject.Binding<T>"/> 9143 <method name="getProviderKey" return="com.google.inject.Key<? extends javax.inject.Provider<? extends T>>" 9144 abstract="true" native="false" synchronized="false" 9145 static="false" final="false" visibility="public" 9146 deprecated="not deprecated"> 9147 <doc> 9148 <![CDATA[Returns the key used to resolve the provider's binding. That binding can be retrieved from an 9149 injector using {@link com.google.inject.Injector#getBinding(Key) 9150 Injector.getBinding(providerKey)}]]> 9151 </doc> 9152 </method> 9153 <doc> 9154 <![CDATA[A binding to a provider key. To resolve injections, the provider key is first resolved, then that 9155 provider's {@code get} method is invoked. 9156 9157 @author jessewilson (a] google.com (Jesse Wilson) 9158 @since 2.0]]> 9159 </doc> 9160 </interface> 9161 <!-- end interface com.google.inject.spi.ProviderKeyBinding --> 9162 <!-- start class com.google.inject.spi.ProviderLookup --> 9163 <class name="ProviderLookup" extends="java.lang.Object" 9164 abstract="false" 9165 static="false" final="true" visibility="public" 9166 deprecated="not deprecated"> 9167 <implements name="com.google.inject.spi.Element"/> 9168 <constructor name="ProviderLookup" type="java.lang.Object, com.google.inject.Key<T>" 9169 static="false" final="false" visibility="public" 9170 deprecated="not deprecated"> 9171 </constructor> 9172 <method name="getSource" return="java.lang.Object" 9173 abstract="false" native="false" synchronized="false" 9174 static="false" final="false" visibility="public" 9175 deprecated="not deprecated"> 9176 </method> 9177 <method name="getKey" return="com.google.inject.Key<T>" 9178 abstract="false" native="false" synchronized="false" 9179 static="false" final="false" visibility="public" 9180 deprecated="not deprecated"> 9181 </method> 9182 <method name="acceptVisitor" return="T" 9183 abstract="false" native="false" synchronized="false" 9184 static="false" final="false" visibility="public" 9185 deprecated="not deprecated"> 9186 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9187 </method> 9188 <method name="initializeDelegate" 9189 abstract="false" native="false" synchronized="false" 9190 static="false" final="false" visibility="public" 9191 deprecated="not deprecated"> 9192 <param name="delegate" type="com.google.inject.Provider<T>"/> 9193 <doc> 9194 <![CDATA[Sets the actual provider. 9195 9196 @throws IllegalStateException if the delegate is already set]]> 9197 </doc> 9198 </method> 9199 <method name="applyTo" 9200 abstract="false" native="false" synchronized="false" 9201 static="false" final="false" visibility="public" 9202 deprecated="not deprecated"> 9203 <param name="binder" type="com.google.inject.Binder"/> 9204 </method> 9205 <method name="getDelegate" return="com.google.inject.Provider<T>" 9206 abstract="false" native="false" synchronized="false" 9207 static="false" final="false" visibility="public" 9208 deprecated="not deprecated"> 9209 <doc> 9210 <![CDATA[Returns the delegate provider, or {@code null} if it has not yet been initialized. The delegate 9211 will be initialized when this element is processed, or otherwise used to create an injector.]]> 9212 </doc> 9213 </method> 9214 <method name="getProvider" return="com.google.inject.Provider<T>" 9215 abstract="false" native="false" synchronized="false" 9216 static="false" final="false" visibility="public" 9217 deprecated="not deprecated"> 9218 <doc> 9219 <![CDATA[Returns the looked up provider. The result is not valid until this lookup has been initialized, 9220 which usually happens when the injector is created. The provider will throw an {@code 9221 IllegalStateException} if you try to use it beforehand.]]> 9222 </doc> 9223 </method> 9224 <doc> 9225 <![CDATA[A lookup of the provider for a type. Lookups are created explicitly in a module using 9226 {@link com.google.inject.Binder#getProvider(Class) getProvider()} statements: 9227 <pre> 9228 Provider<PaymentService> paymentServiceProvider 9229 = getProvider(PaymentService.class);</pre> 9230 9231 @author jessewilson (a] google.com (Jesse Wilson) 9232 @since 2.0]]> 9233 </doc> 9234 </class> 9235 <!-- end class com.google.inject.spi.ProviderLookup --> 9236 <!-- start interface com.google.inject.spi.ProviderWithDependencies --> 9237 <interface name="ProviderWithDependencies" abstract="true" 9238 static="false" final="false" visibility="public" 9239 deprecated="not deprecated"> 9240 <implements name="com.google.inject.Provider<T>"/> 9241 <implements name="com.google.inject.spi.HasDependencies"/> 9242 <doc> 9243 <![CDATA[A provider with dependencies on other injected types. If a {@link Provider} has dependencies that 9244 aren't specified in injections, this interface should be used to expose all dependencies. 9245 9246 @since 2.0]]> 9247 </doc> 9248 </interface> 9249 <!-- end interface com.google.inject.spi.ProviderWithDependencies --> 9250 <!-- start interface com.google.inject.spi.ProviderWithExtensionVisitor --> 9251 <interface name="ProviderWithExtensionVisitor" abstract="true" 9252 static="false" final="false" visibility="public" 9253 deprecated="not deprecated"> 9254 <implements name="com.google.inject.Provider<T>"/> 9255 <method name="acceptExtensionVisitor" return="V" 9256 abstract="true" native="false" synchronized="false" 9257 static="false" final="false" visibility="public" 9258 deprecated="not deprecated"> 9259 <param name="visitor" type="com.google.inject.spi.BindingTargetVisitor<B, V>"/> 9260 <param name="binding" type="com.google.inject.spi.ProviderInstanceBinding<? extends B>"/> 9261 <doc> 9262 <![CDATA[Instructs the extension determine if the visitor is an instance of a custom 9263 extension visitor, and if so, visit it using that method. If the visitor is 9264 not an instance of the custom extension visitor, this method <b>MUST</b> 9265 call visitor.visit(binding). 9266 <p> 9267 Due to issues with generics, the type parameters of this method do not 9268 relate to the type of the provider. In practice, the 'B' type will always 9269 be a supertype of 'T'.]]> 9270 </doc> 9271 </method> 9272 <doc> 9273 <![CDATA[A Provider that is part of an extension which supports a custom 9274 BindingTargetVisitor. 9275 <p> 9276 When an extension binds a provider instance, the provider can implement this 9277 interface to allow users using the 9278 {@link Binding#acceptTargetVisitor(BindingTargetVisitor)} method to visit a 9279 custom visitor designed for that extension. A typical implementation within 9280 the extension would look like 9281 <pre> 9282 <V, B> V acceptExtensionVisitor(BindingTargetVisitor<B, V> visitor, ProviderInstanceBinding<? extends B> binding) { 9283 if(visitor instanceof MyCustomExtensionVisitor) { 9284 return ((MyCustomExtensionVisitor<B, V>)visitor).visitCustomExtension(customProperties, binding); 9285 } else { 9286 return visitor.visit(binding); 9287 } 9288 }</pre> 9289 'MyCustomExtensionVisitor' in the example above would be an interface the 9290 extension provides that users can implement in order to be notified of custom 9291 extension information. These visitor interfaces must extend from 9292 BindingTargetVisitor. 9293 9294 @since 3.0 9295 @author sameb (a] google.com (Sam Berlin)]]> 9296 </doc> 9297 </interface> 9298 <!-- end interface com.google.inject.spi.ProviderWithExtensionVisitor --> 9299 <!-- start interface com.google.inject.spi.ProvidesMethodBinding --> 9300 <interface name="ProvidesMethodBinding" abstract="true" 9301 static="false" final="false" visibility="public" 9302 deprecated="not deprecated"> 9303 <implements name="com.google.inject.spi.HasDependencies"/> 9304 <method name="getMethod" return="java.lang.reflect.Method" 9305 abstract="true" native="false" synchronized="false" 9306 static="false" final="false" visibility="public" 9307 deprecated="not deprecated"> 9308 <doc> 9309 <![CDATA[Returns the method this binding uses.]]> 9310 </doc> 9311 </method> 9312 <method name="getEnclosingInstance" return="java.lang.Object" 9313 abstract="true" native="false" synchronized="false" 9314 static="false" final="false" visibility="public" 9315 deprecated="not deprecated"> 9316 <doc> 9317 <![CDATA[Returns the instance of the object the method is defined in.]]> 9318 </doc> 9319 </method> 9320 <method name="getKey" return="com.google.inject.Key<T>" 9321 abstract="true" native="false" synchronized="false" 9322 static="false" final="false" visibility="public" 9323 deprecated="not deprecated"> 9324 <doc> 9325 <![CDATA[Returns the key of the binding.]]> 9326 </doc> 9327 </method> 9328 <doc> 9329 <![CDATA[An {@literal @}{@link Provides} binding. 9330 9331 @since 4.0 9332 @author sameb (a] google.com (Sam Berlin)]]> 9333 </doc> 9334 </interface> 9335 <!-- end interface com.google.inject.spi.ProvidesMethodBinding --> 9336 <!-- start interface com.google.inject.spi.ProvidesMethodTargetVisitor --> 9337 <interface name="ProvidesMethodTargetVisitor" abstract="true" 9338 static="false" final="false" visibility="public" 9339 deprecated="not deprecated"> 9340 <implements name="com.google.inject.spi.BindingTargetVisitor<T, V>"/> 9341 <method name="visit" return="V" 9342 abstract="true" native="false" synchronized="false" 9343 static="false" final="false" visibility="public" 9344 deprecated="not deprecated"> 9345 <param name="providesMethodBinding" type="com.google.inject.spi.ProvidesMethodBinding<? extends T>"/> 9346 <doc> 9347 <![CDATA[Visits an {@link ProvidesMethodBinding} created with an {@literal @}{@link Provides} method.]]> 9348 </doc> 9349 </method> 9350 <doc> 9351 <![CDATA[A visitor for the {@literal @}{@link Provides} bindings. 9352 <p> 9353 If your {@link BindingTargetVisitor} implements this interface, bindings created by using 9354 {@code @Provides} will be visited through this interface. 9355 9356 @since 4.0 9357 @author sameb (a] google.com (Sam Berlin)]]> 9358 </doc> 9359 </interface> 9360 <!-- end interface com.google.inject.spi.ProvidesMethodTargetVisitor --> 9361 <!-- start interface com.google.inject.spi.ProvisionListener --> 9362 <interface name="ProvisionListener" abstract="true" 9363 static="false" final="false" visibility="public" 9364 deprecated="not deprecated"> 9365 <method name="onProvision" 9366 abstract="true" native="false" synchronized="false" 9367 static="false" final="false" visibility="public" 9368 deprecated="not deprecated"> 9369 <param name="provision" type="com.google.inject.spi.ProvisionListener.ProvisionInvocation<T>"/> 9370 <doc> 9371 <![CDATA[Invoked by Guice when an object requires provisioning. Provisioning occurs 9372 when Guice locates and injects the dependencies for a binding. For types 9373 bound to a Provider, provisioning encapsulates the {@link Provider#get} 9374 method. For toInstance or constant bindings, provisioning encapsulates 9375 the injecting of {@literal @}{@code Inject}ed fields or methods. 9376 For other types, provisioning encapsulates the construction of the 9377 object. If a type is bound within a {@link Scope}, provisioning depends on 9378 the scope. Types bound in Singleton scope will only be provisioned once. 9379 Types bound in no scope will be provisioned every time they are injected. 9380 Other scopes define their own behavior for provisioning. 9381 <p> 9382 To perform the provision, call {@link ProvisionInvocation#provision()}. 9383 If you do not explicitly call provision, it will be automatically done after 9384 this method returns. It is an error to call provision more than once.]]> 9385 </doc> 9386 </method> 9387 <doc> 9388 <![CDATA[Listens for provisioning of objects. Useful for gathering timing information 9389 about provisioning, post-provision initialization, and more. 9390 9391 @author sameb (a] google.com (Sam Berlin) 9392 @since 4.0]]> 9393 </doc> 9394 </interface> 9395 <!-- end interface com.google.inject.spi.ProvisionListener --> 9396 <!-- start class com.google.inject.spi.ProvisionListener.ProvisionInvocation --> 9397 <class name="ProvisionListener.ProvisionInvocation" extends="java.lang.Object" 9398 abstract="true" 9399 static="true" final="false" visibility="public" 9400 deprecated="not deprecated"> 9401 <constructor name="ProvisionInvocation" 9402 static="false" final="false" visibility="public" 9403 deprecated="not deprecated"> 9404 </constructor> 9405 <method name="getBinding" return="com.google.inject.Binding<T>" 9406 abstract="true" native="false" synchronized="false" 9407 static="false" final="false" visibility="public" 9408 deprecated="not deprecated"> 9409 <doc> 9410 <![CDATA[Returns the Binding this is provisioning. 9411 <p> 9412 You must not call {@link Provider#get()} on the provider returned by 9413 {@link Binding#getProvider}, otherwise you will get confusing error messages.]]> 9414 </doc> 9415 </method> 9416 <method name="provision" return="T" 9417 abstract="true" native="false" synchronized="false" 9418 static="false" final="false" visibility="public" 9419 deprecated="not deprecated"> 9420 <doc> 9421 <![CDATA[Performs the provision, returning the object provisioned.]]> 9422 </doc> 9423 </method> 9424 <method name="getDependencyChain" return="java.util.List<com.google.inject.spi.DependencyAndSource>" 9425 abstract="true" native="false" synchronized="false" 9426 static="false" final="false" visibility="public" 9427 deprecated="not deprecated"> 9428 <doc> 9429 <![CDATA[Returns the dependency chain that led to this object being provisioned.]]> 9430 </doc> 9431 </method> 9432 <doc> 9433 <![CDATA[Encapsulates a single act of provisioning.]]> 9434 </doc> 9435 </class> 9436 <!-- end class com.google.inject.spi.ProvisionListener.ProvisionInvocation --> 9437 <!-- start class com.google.inject.spi.ProvisionListenerBinding --> 9438 <class name="ProvisionListenerBinding" extends="java.lang.Object" 9439 abstract="false" 9440 static="false" final="true" visibility="public" 9441 deprecated="not deprecated"> 9442 <implements name="com.google.inject.spi.Element"/> 9443 <method name="getListeners" return="java.util.List<com.google.inject.spi.ProvisionListener>" 9444 abstract="false" native="false" synchronized="false" 9445 static="false" final="false" visibility="public" 9446 deprecated="not deprecated"> 9447 <doc> 9448 <![CDATA[Returns the registered listeners.]]> 9449 </doc> 9450 </method> 9451 <method name="getBindingMatcher" return="com.google.inject.matcher.Matcher<? super com.google.inject.Binding<?>>" 9452 abstract="false" native="false" synchronized="false" 9453 static="false" final="false" visibility="public" 9454 deprecated="not deprecated"> 9455 <doc> 9456 <![CDATA[Returns the binding matcher which chooses which bindings the listener should be notified of.]]> 9457 </doc> 9458 </method> 9459 <method name="getSource" return="java.lang.Object" 9460 abstract="false" native="false" synchronized="false" 9461 static="false" final="false" visibility="public" 9462 deprecated="not deprecated"> 9463 </method> 9464 <method name="acceptVisitor" return="R" 9465 abstract="false" native="false" synchronized="false" 9466 static="false" final="false" visibility="public" 9467 deprecated="not deprecated"> 9468 <param name="visitor" type="com.google.inject.spi.ElementVisitor<R>"/> 9469 </method> 9470 <method name="applyTo" 9471 abstract="false" native="false" synchronized="false" 9472 static="false" final="false" visibility="public" 9473 deprecated="not deprecated"> 9474 <param name="binder" type="com.google.inject.Binder"/> 9475 </method> 9476 <doc> 9477 <![CDATA[Binds keys (picked using a Matcher) to a provision listener. Listeners are created explicitly in 9478 a module using {@link Binder#bindListener(Matcher, ProvisionListener...)} statements: 9479 9480 @author sameb (a] google.com (Sam Berlin) 9481 @since 4.0]]> 9482 </doc> 9483 </class> 9484 <!-- end class com.google.inject.spi.ProvisionListenerBinding --> 9485 <!-- start class com.google.inject.spi.RequireAtInjectOnConstructorsOption --> 9486 <class name="RequireAtInjectOnConstructorsOption" extends="java.lang.Object" 9487 abstract="false" 9488 static="false" final="true" visibility="public" 9489 deprecated="not deprecated"> 9490 <implements name="com.google.inject.spi.Element"/> 9491 <method name="getSource" return="java.lang.Object" 9492 abstract="false" native="false" synchronized="false" 9493 static="false" final="false" visibility="public" 9494 deprecated="not deprecated"> 9495 </method> 9496 <method name="applyTo" 9497 abstract="false" native="false" synchronized="false" 9498 static="false" final="false" visibility="public" 9499 deprecated="not deprecated"> 9500 <param name="binder" type="com.google.inject.Binder"/> 9501 </method> 9502 <method name="acceptVisitor" return="T" 9503 abstract="false" native="false" synchronized="false" 9504 static="false" final="false" visibility="public" 9505 deprecated="not deprecated"> 9506 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9507 </method> 9508 <doc> 9509 <![CDATA[A request to require explicit {@literal @}{@link Inject} annotations on constructors. 9510 9511 @author sameb (a] google.com (Sam Berlin) 9512 @since 4.0]]> 9513 </doc> 9514 </class> 9515 <!-- end class com.google.inject.spi.RequireAtInjectOnConstructorsOption --> 9516 <!-- start class com.google.inject.spi.RequireExactBindingAnnotationsOption --> 9517 <class name="RequireExactBindingAnnotationsOption" extends="java.lang.Object" 9518 abstract="false" 9519 static="false" final="true" visibility="public" 9520 deprecated="not deprecated"> 9521 <implements name="com.google.inject.spi.Element"/> 9522 <method name="getSource" return="java.lang.Object" 9523 abstract="false" native="false" synchronized="false" 9524 static="false" final="false" visibility="public" 9525 deprecated="not deprecated"> 9526 </method> 9527 <method name="applyTo" 9528 abstract="false" native="false" synchronized="false" 9529 static="false" final="false" visibility="public" 9530 deprecated="not deprecated"> 9531 <param name="binder" type="com.google.inject.Binder"/> 9532 </method> 9533 <method name="acceptVisitor" return="T" 9534 abstract="false" native="false" synchronized="false" 9535 static="false" final="false" visibility="public" 9536 deprecated="not deprecated"> 9537 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9538 </method> 9539 <doc> 9540 <![CDATA[A request to require exact binding annotations. 9541 9542 @author sameb (a] google.com (Sam Berlin) 9543 @since 4.0]]> 9544 </doc> 9545 </class> 9546 <!-- end class com.google.inject.spi.RequireExactBindingAnnotationsOption --> 9547 <!-- start class com.google.inject.spi.RequireExplicitBindingsOption --> 9548 <class name="RequireExplicitBindingsOption" extends="java.lang.Object" 9549 abstract="false" 9550 static="false" final="true" visibility="public" 9551 deprecated="not deprecated"> 9552 <implements name="com.google.inject.spi.Element"/> 9553 <method name="getSource" return="java.lang.Object" 9554 abstract="false" native="false" synchronized="false" 9555 static="false" final="false" visibility="public" 9556 deprecated="not deprecated"> 9557 </method> 9558 <method name="applyTo" 9559 abstract="false" native="false" synchronized="false" 9560 static="false" final="false" visibility="public" 9561 deprecated="not deprecated"> 9562 <param name="binder" type="com.google.inject.Binder"/> 9563 </method> 9564 <method name="acceptVisitor" return="T" 9565 abstract="false" native="false" synchronized="false" 9566 static="false" final="false" visibility="public" 9567 deprecated="not deprecated"> 9568 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9569 </method> 9570 <doc> 9571 <![CDATA[A request to require explicit bindings. 9572 9573 @author sameb (a] google.com (Sam Berlin) 9574 @since 3.0]]> 9575 </doc> 9576 </class> 9577 <!-- end class com.google.inject.spi.RequireExplicitBindingsOption --> 9578 <!-- start class com.google.inject.spi.ScopeBinding --> 9579 <class name="ScopeBinding" extends="java.lang.Object" 9580 abstract="false" 9581 static="false" final="true" visibility="public" 9582 deprecated="not deprecated"> 9583 <implements name="com.google.inject.spi.Element"/> 9584 <method name="getSource" return="java.lang.Object" 9585 abstract="false" native="false" synchronized="false" 9586 static="false" final="false" visibility="public" 9587 deprecated="not deprecated"> 9588 </method> 9589 <method name="getAnnotationType" return="java.lang.Class<? extends java.lang.annotation.Annotation>" 9590 abstract="false" native="false" synchronized="false" 9591 static="false" final="false" visibility="public" 9592 deprecated="not deprecated"> 9593 </method> 9594 <method name="getScope" return="com.google.inject.Scope" 9595 abstract="false" native="false" synchronized="false" 9596 static="false" final="false" visibility="public" 9597 deprecated="not deprecated"> 9598 </method> 9599 <method name="acceptVisitor" return="T" 9600 abstract="false" native="false" synchronized="false" 9601 static="false" final="false" visibility="public" 9602 deprecated="not deprecated"> 9603 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9604 </method> 9605 <method name="applyTo" 9606 abstract="false" native="false" synchronized="false" 9607 static="false" final="false" visibility="public" 9608 deprecated="not deprecated"> 9609 <param name="binder" type="com.google.inject.Binder"/> 9610 </method> 9611 <doc> 9612 <![CDATA[Registration of a scope annotation with the scope that implements it. Instances are created 9613 explicitly in a module using {@link com.google.inject.Binder#bindScope(Class, Scope) bindScope()} 9614 statements: 9615 <pre> 9616 Scope recordScope = new RecordScope(); 9617 bindScope(RecordScoped.class, new RecordScope());</pre> 9618 9619 @author jessewilson (a] google.com (Jesse Wilson) 9620 @since 2.0]]> 9621 </doc> 9622 </class> 9623 <!-- end class com.google.inject.spi.ScopeBinding --> 9624 <!-- start class com.google.inject.spi.StaticInjectionRequest --> 9625 <class name="StaticInjectionRequest" extends="java.lang.Object" 9626 abstract="false" 9627 static="false" final="true" visibility="public" 9628 deprecated="not deprecated"> 9629 <implements name="com.google.inject.spi.Element"/> 9630 <method name="getSource" return="java.lang.Object" 9631 abstract="false" native="false" synchronized="false" 9632 static="false" final="false" visibility="public" 9633 deprecated="not deprecated"> 9634 </method> 9635 <method name="getType" return="java.lang.Class<?>" 9636 abstract="false" native="false" synchronized="false" 9637 static="false" final="false" visibility="public" 9638 deprecated="not deprecated"> 9639 </method> 9640 <method name="getInjectionPoints" return="java.util.Set<com.google.inject.spi.InjectionPoint>" 9641 abstract="false" native="false" synchronized="false" 9642 static="false" final="false" visibility="public" 9643 deprecated="not deprecated"> 9644 <exception name="ConfigurationException" type="com.google.inject.ConfigurationException"/> 9645 <doc> 9646 <![CDATA[Returns the static methods and fields of {@code type} that will be injected to fulfill this 9647 request. 9648 9649 @return a possibly empty set of injection points. The set has a specified iteration order. All 9650 fields are returned and then all methods. Within the fields, supertype fields are returned 9651 before subtype fields. Similarly, supertype methods are returned before subtype methods. 9652 @throws ConfigurationException if there is a malformed injection point on {@code type}, such as 9653 a field with multiple binding annotations. The exception's {@link 9654 ConfigurationException#getPartialValue() partial value} is a {@code Set<InjectionPoint>} 9655 of the valid injection points.]]> 9656 </doc> 9657 </method> 9658 <method name="applyTo" 9659 abstract="false" native="false" synchronized="false" 9660 static="false" final="false" visibility="public" 9661 deprecated="not deprecated"> 9662 <param name="binder" type="com.google.inject.Binder"/> 9663 </method> 9664 <method name="acceptVisitor" return="T" 9665 abstract="false" native="false" synchronized="false" 9666 static="false" final="false" visibility="public" 9667 deprecated="not deprecated"> 9668 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9669 </method> 9670 <doc> 9671 <![CDATA[A request to inject the static fields and methods of a type. Requests are created 9672 explicitly in a module using {@link com.google.inject.Binder#requestStaticInjection(Class[]) 9673 requestStaticInjection()} statements: 9674 <pre> 9675 requestStaticInjection(MyLegacyService.class);</pre> 9676 9677 @author jessewilson (a] google.com (Jesse Wilson) 9678 @since 2.0]]> 9679 </doc> 9680 </class> 9681 <!-- end class com.google.inject.spi.StaticInjectionRequest --> 9682 <!-- start class com.google.inject.spi.Toolable --> 9683 <class name="Toolable" abstract="true" 9684 static="false" final="false" visibility="public" 9685 deprecated="not deprecated"> 9686 <implements name="java.lang.annotation.Annotation"/> 9687 <doc> 9688 <![CDATA[Instructs an {@link Injector} running in {@link Stage#TOOL} that a method should be injected. 9689 This is typically useful for for extensions to Guice that perform additional validation in an 9690 injected method or field. This only applies to objects that are already constructed when 9691 bindings are created (ie., something bound using {@link 9692 com.google.inject.binder.LinkedBindingBuilder#toProvider toProvider}, {@link 9693 com.google.inject.binder.LinkedBindingBuilder#toInstance toInstance}, or {@link 9694 com.google.inject.Binder#requestInjection requestInjection}. 9695 9696 @author sberlin (a] gmail.com (Sam Berlin) 9697 @since 3.0]]> 9698 </doc> 9699 </class> 9700 <!-- end class com.google.inject.spi.Toolable --> 9701 <!-- start interface com.google.inject.spi.TypeConverter --> 9702 <interface name="TypeConverter" abstract="true" 9703 static="false" final="false" visibility="public" 9704 deprecated="not deprecated"> 9705 <method name="convert" return="java.lang.Object" 9706 abstract="true" native="false" synchronized="false" 9707 static="false" final="false" visibility="public" 9708 deprecated="not deprecated"> 9709 <param name="value" type="java.lang.String"/> 9710 <param name="toType" type="com.google.inject.TypeLiteral<?>"/> 9711 <doc> 9712 <![CDATA[Converts a string value. Throws an exception if a conversion error occurs.]]> 9713 </doc> 9714 </method> 9715 <doc> 9716 <![CDATA[Converts constant string values to a different type. 9717 9718 @author crazybob (a] google.com (Bob Lee) 9719 @since 2.0]]> 9720 </doc> 9721 </interface> 9722 <!-- end interface com.google.inject.spi.TypeConverter --> 9723 <!-- start class com.google.inject.spi.TypeConverterBinding --> 9724 <class name="TypeConverterBinding" extends="java.lang.Object" 9725 abstract="false" 9726 static="false" final="true" visibility="public" 9727 deprecated="not deprecated"> 9728 <implements name="com.google.inject.spi.Element"/> 9729 <constructor name="TypeConverterBinding" type="java.lang.Object, com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>, com.google.inject.spi.TypeConverter" 9730 static="false" final="false" visibility="public" 9731 deprecated="not deprecated"> 9732 <doc> 9733 <![CDATA[@since 3.0]]> 9734 </doc> 9735 </constructor> 9736 <method name="getSource" return="java.lang.Object" 9737 abstract="false" native="false" synchronized="false" 9738 static="false" final="false" visibility="public" 9739 deprecated="not deprecated"> 9740 </method> 9741 <method name="getTypeMatcher" return="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>" 9742 abstract="false" native="false" synchronized="false" 9743 static="false" final="false" visibility="public" 9744 deprecated="not deprecated"> 9745 </method> 9746 <method name="getTypeConverter" return="com.google.inject.spi.TypeConverter" 9747 abstract="false" native="false" synchronized="false" 9748 static="false" final="false" visibility="public" 9749 deprecated="not deprecated"> 9750 </method> 9751 <method name="acceptVisitor" return="T" 9752 abstract="false" native="false" synchronized="false" 9753 static="false" final="false" visibility="public" 9754 deprecated="not deprecated"> 9755 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9756 </method> 9757 <method name="applyTo" 9758 abstract="false" native="false" synchronized="false" 9759 static="false" final="false" visibility="public" 9760 deprecated="not deprecated"> 9761 <param name="binder" type="com.google.inject.Binder"/> 9762 </method> 9763 <method name="toString" return="java.lang.String" 9764 abstract="false" native="false" synchronized="false" 9765 static="false" final="false" visibility="public" 9766 deprecated="not deprecated"> 9767 </method> 9768 <doc> 9769 <![CDATA[Registration of type converters for matching target types. Instances are created 9770 explicitly in a module using {@link com.google.inject.Binder#convertToTypes(Matcher, 9771 TypeConverter) convertToTypes()} statements: 9772 <pre> 9773 convertToTypes(Matchers.only(TypeLiteral.get(DateTime.class)), new DateTimeConverter());</pre> 9774 9775 @author jessewilson (a] google.com (Jesse Wilson) 9776 @since 2.0]]> 9777 </doc> 9778 </class> 9779 <!-- end class com.google.inject.spi.TypeConverterBinding --> 9780 <!-- start interface com.google.inject.spi.TypeEncounter --> 9781 <interface name="TypeEncounter" abstract="true" 9782 static="false" final="false" visibility="public" 9783 deprecated="not deprecated"> 9784 <method name="addError" 9785 abstract="true" native="false" synchronized="false" 9786 static="false" final="false" visibility="public" 9787 deprecated="not deprecated"> 9788 <param name="message" type="java.lang.String"/> 9789 <param name="arguments" type="java.lang.Object[]"/> 9790 <doc> 9791 <![CDATA[Records an error message for type {@code I} which will be presented to the user at a later 9792 time. Unlike throwing an exception, this enable us to continue configuring the Injector and 9793 discover more errors. Uses {@link String#format(String, Object[])} to insert the arguments 9794 into the message.]]> 9795 </doc> 9796 </method> 9797 <method name="addError" 9798 abstract="true" native="false" synchronized="false" 9799 static="false" final="false" visibility="public" 9800 deprecated="not deprecated"> 9801 <param name="t" type="java.lang.Throwable"/> 9802 <doc> 9803 <![CDATA[Records an exception for type {@code I}, the full details of which will be logged, and the 9804 message of which will be presented to the user at a later time. If your type listener calls 9805 something that you worry may fail, you should catch the exception and pass it to this method.]]> 9806 </doc> 9807 </method> 9808 <method name="addError" 9809 abstract="true" native="false" synchronized="false" 9810 static="false" final="false" visibility="public" 9811 deprecated="not deprecated"> 9812 <param name="message" type="com.google.inject.spi.Message"/> 9813 <doc> 9814 <![CDATA[Records an error message to be presented to the user at a later time.]]> 9815 </doc> 9816 </method> 9817 <method name="getProvider" return="com.google.inject.Provider<T>" 9818 abstract="true" native="false" synchronized="false" 9819 static="false" final="false" visibility="public" 9820 deprecated="not deprecated"> 9821 <param name="key" type="com.google.inject.Key<T>"/> 9822 <doc> 9823 <![CDATA[Returns the provider used to obtain instances for the given injection key. The returned 9824 provider will not be valid until the injector has been created. The provider will throw an 9825 {@code IllegalStateException} if you try to use it beforehand.]]> 9826 </doc> 9827 </method> 9828 <method name="getProvider" return="com.google.inject.Provider<T>" 9829 abstract="true" native="false" synchronized="false" 9830 static="false" final="false" visibility="public" 9831 deprecated="not deprecated"> 9832 <param name="type" type="java.lang.Class<T>"/> 9833 <doc> 9834 <![CDATA[Returns the provider used to obtain instances for the given injection type. The returned 9835 provider will not be valid until the injetor has been created. The provider will throw an 9836 {@code IllegalStateException} if you try to use it beforehand.]]> 9837 </doc> 9838 </method> 9839 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 9840 abstract="true" native="false" synchronized="false" 9841 static="false" final="false" visibility="public" 9842 deprecated="not deprecated"> 9843 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 9844 <doc> 9845 <![CDATA[Returns the members injector used to inject dependencies into methods and fields on instances 9846 of the given type {@code T}. The returned members injector will not be valid until the main 9847 injector has been created. The members injector will throw an {@code IllegalStateException} 9848 if you try to use it beforehand. 9849 9850 @param typeLiteral type to get members injector for]]> 9851 </doc> 9852 </method> 9853 <method name="getMembersInjector" return="com.google.inject.MembersInjector<T>" 9854 abstract="true" native="false" synchronized="false" 9855 static="false" final="false" visibility="public" 9856 deprecated="not deprecated"> 9857 <param name="type" type="java.lang.Class<T>"/> 9858 <doc> 9859 <![CDATA[Returns the members injector used to inject dependencies into methods and fields on instances 9860 of the given type {@code T}. The returned members injector will not be valid until the main 9861 injector has been created. The members injector will throw an {@code IllegalStateException} 9862 if you try to use it beforehand. 9863 9864 @param type type to get members injector for]]> 9865 </doc> 9866 </method> 9867 <method name="register" 9868 abstract="true" native="false" synchronized="false" 9869 static="false" final="false" visibility="public" 9870 deprecated="not deprecated"> 9871 <param name="membersInjector" type="com.google.inject.MembersInjector<? super I>"/> 9872 <doc> 9873 <![CDATA[Registers a members injector for type {@code I}. Guice will use the members injector after its 9874 performed its own injections on an instance of {@code I}.]]> 9875 </doc> 9876 </method> 9877 <method name="register" 9878 abstract="true" native="false" synchronized="false" 9879 static="false" final="false" visibility="public" 9880 deprecated="not deprecated"> 9881 <param name="listener" type="com.google.inject.spi.InjectionListener<? super I>"/> 9882 <doc> 9883 <![CDATA[Registers an injection listener for type {@code I}. Guice will notify the listener after all 9884 injections have been performed on an instance of {@code I}.]]> 9885 </doc> 9886 </method> 9887 <method name="bindInterceptor" 9888 abstract="true" native="false" synchronized="false" 9889 static="false" final="false" visibility="public" 9890 deprecated="not deprecated"> 9891 <param name="methodMatcher" type="com.google.inject.matcher.Matcher<? super java.lang.reflect.Method>"/> 9892 <param name="interceptors" type="org.aopalliance.intercept.MethodInterceptor[]"/> 9893 <doc> 9894 <![CDATA[Binds method interceptor[s] to methods matched in type {@code I} and its supertypes. A 9895 method is eligible for interception if: 9896 9897 <ul> 9898 <li>Guice created the instance the method is on</li> 9899 <li>Neither the enclosing type nor the method is final</li> 9900 <li>And the method is package-private or more accessible</li> 9901 </ul> 9902 9903 @param methodMatcher matches methods the interceptor should apply to. For 9904 example: {@code annotatedWith(Transactional.class)}. 9905 @param interceptors to bind]]> 9906 </doc> 9907 </method> 9908 <doc> 9909 <![CDATA[Context of an injectable type encounter. Enables reporting errors, registering injection 9910 listeners and binding method interceptors for injectable type {@code I}. It is an error to use 9911 an encounter after the {@link TypeListener#hear(TypeLiteral, TypeEncounter) hear()} method has 9912 returned. 9913 9914 @param <I> the injectable type encountered 9915 @since 2.0]]> 9916 </doc> 9917 </interface> 9918 <!-- end interface com.google.inject.spi.TypeEncounter --> 9919 <!-- start interface com.google.inject.spi.TypeListener --> 9920 <interface name="TypeListener" abstract="true" 9921 static="false" final="false" visibility="public" 9922 deprecated="not deprecated"> 9923 <method name="hear" 9924 abstract="true" native="false" synchronized="false" 9925 static="false" final="false" visibility="public" 9926 deprecated="not deprecated"> 9927 <param name="type" type="com.google.inject.TypeLiteral<I>"/> 9928 <param name="encounter" type="com.google.inject.spi.TypeEncounter<I>"/> 9929 <doc> 9930 <![CDATA[Invoked when Guice encounters a new type eligible for constructor or members injection. 9931 Called during injector creation (or afterwords if Guice encounters a type at run time and 9932 creates a JIT binding). 9933 9934 @param type encountered by Guice 9935 @param encounter context of this encounter, enables reporting errors, registering injection 9936 listeners and binding method interceptors for {@code type}. 9937 9938 @param <I> the injectable type]]> 9939 </doc> 9940 </method> 9941 <doc> 9942 <![CDATA[Listens for Guice to encounter injectable types. If a given type has its constructor injected in 9943 one situation but only its methods and fields injected in another, Guice will notify this 9944 listener once. 9945 9946 <p>Useful for extra type checking, {@linkplain TypeEncounter#register(InjectionListener) 9947 registering injection listeners}, and {@linkplain TypeEncounter#bindInterceptor( 9948 com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor[]) 9949 binding method interceptors}. 9950 9951 @since 2.0]]> 9952 </doc> 9953 </interface> 9954 <!-- end interface com.google.inject.spi.TypeListener --> 9955 <!-- start class com.google.inject.spi.TypeListenerBinding --> 9956 <class name="TypeListenerBinding" extends="java.lang.Object" 9957 abstract="false" 9958 static="false" final="true" visibility="public" 9959 deprecated="not deprecated"> 9960 <implements name="com.google.inject.spi.Element"/> 9961 <method name="getListener" return="com.google.inject.spi.TypeListener" 9962 abstract="false" native="false" synchronized="false" 9963 static="false" final="false" visibility="public" 9964 deprecated="not deprecated"> 9965 <doc> 9966 <![CDATA[Returns the registered listener.]]> 9967 </doc> 9968 </method> 9969 <method name="getTypeMatcher" return="com.google.inject.matcher.Matcher<? super com.google.inject.TypeLiteral<?>>" 9970 abstract="false" native="false" synchronized="false" 9971 static="false" final="false" visibility="public" 9972 deprecated="not deprecated"> 9973 <doc> 9974 <![CDATA[Returns the type matcher which chooses which types the listener should be notified of.]]> 9975 </doc> 9976 </method> 9977 <method name="getSource" return="java.lang.Object" 9978 abstract="false" native="false" synchronized="false" 9979 static="false" final="false" visibility="public" 9980 deprecated="not deprecated"> 9981 </method> 9982 <method name="acceptVisitor" return="T" 9983 abstract="false" native="false" synchronized="false" 9984 static="false" final="false" visibility="public" 9985 deprecated="not deprecated"> 9986 <param name="visitor" type="com.google.inject.spi.ElementVisitor<T>"/> 9987 </method> 9988 <method name="applyTo" 9989 abstract="false" native="false" synchronized="false" 9990 static="false" final="false" visibility="public" 9991 deprecated="not deprecated"> 9992 <param name="binder" type="com.google.inject.Binder"/> 9993 </method> 9994 <doc> 9995 <![CDATA[Binds types (picked using a Matcher) to an type listener. Registrations are created explicitly in 9996 a module using {@link com.google.inject.Binder#bindListener(Matcher, TypeListener)} statements: 9997 9998 <pre> 9999 register(only(new TypeLiteral<PaymentService<CreditCard>>() {}), listener);</pre> 10000 10001 @author jessewilson (a] google.com (Jesse Wilson) 10002 @since 2.0]]> 10003 </doc> 10004 </class> 10005 <!-- end class com.google.inject.spi.TypeListenerBinding --> 10006 <!-- start interface com.google.inject.spi.UntargettedBinding --> 10007 <interface name="UntargettedBinding" abstract="true" 10008 static="false" final="false" visibility="public" 10009 deprecated="not deprecated"> 10010 <implements name="com.google.inject.Binding<T>"/> 10011 <doc> 10012 <![CDATA[An untargetted binding. This binding indicates that the injector should use its implicit binding 10013 strategies to resolve injections. 10014 10015 @author jessewilson (a] google.com (Jesse Wilson) 10016 @since 2.0]]> 10017 </doc> 10018 </interface> 10019 <!-- end interface com.google.inject.spi.UntargettedBinding --> 10020 </package> 10021 <package name="com.google.inject.spring"> 10022 <!-- start class com.google.inject.spring.SpringIntegration --> 10023 <class name="SpringIntegration" extends="java.lang.Object" 10024 abstract="false" 10025 static="false" final="false" visibility="public" 10026 deprecated="not deprecated"> 10027 <method name="fromSpring" return="com.google.inject.Provider<T>" 10028 abstract="false" native="false" synchronized="false" 10029 static="true" final="false" visibility="public" 10030 deprecated="not deprecated"> 10031 <param name="type" type="java.lang.Class<T>"/> 10032 <param name="name" type="java.lang.String"/> 10033 <doc> 10034 <![CDATA[Creates a provider which looks up objects from Spring using the given name. 10035 Expects a binding to {@link 10036 org.springframework.beans.factory.BeanFactory}. Example usage: 10037 10038 <pre> 10039 bind(DataSource.class) 10040 .toProvider(fromSpring(DataSource.class, "dataSource")); 10041 </pre>]]> 10042 </doc> 10043 </method> 10044 <method name="bindAll" 10045 abstract="false" native="false" synchronized="false" 10046 static="true" final="false" visibility="public" 10047 deprecated="not deprecated"> 10048 <param name="binder" type="com.google.inject.Binder"/> 10049 <param name="beanFactory" type="ListableBeanFactory"/> 10050 <doc> 10051 <![CDATA[Binds all Spring beans from the given factory by name. For a Spring bean 10052 named "foo", this method creates a binding to the bean's type and 10053 {@code @Named("foo")}. 10054 10055 @see com.google.inject.name.Named 10056 @see com.google.inject.name.Names#named(String)]]> 10057 </doc> 10058 </method> 10059 <doc> 10060 <![CDATA[Integrates Guice with Spring. 10061 10062 @author crazybob (a] google.com (Bob Lee)]]> 10063 </doc> 10064 </class> 10065 <!-- end class com.google.inject.spring.SpringIntegration --> 10066 </package> 10067 <package name="com.google.inject.struts2"> 10068 <!-- start class com.google.inject.struts2.GuiceObjectFactory --> 10069 <class name="GuiceObjectFactory" extends="ObjectFactory" 10070 abstract="false" 10071 static="false" final="false" visibility="public" 10072 deprecated="Use {@link com.google.inject.servlet.Struts2Factory} instead."> 10073 <constructor name="GuiceObjectFactory" 10074 static="false" final="false" visibility="public" 10075 deprecated="not deprecated"> 10076 </constructor> 10077 <method name="isNoArgConstructorRequired" return="boolean" 10078 abstract="false" native="false" synchronized="false" 10079 static="false" final="false" visibility="public" 10080 deprecated="not deprecated"> 10081 </method> 10082 <method name="getClassInstance" return="java.lang.Class" 10083 abstract="false" native="false" synchronized="false" 10084 static="false" final="false" visibility="public" 10085 deprecated="not deprecated"> 10086 <param name="name" type="java.lang.String"/> 10087 <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/> 10088 </method> 10089 <method name="buildBean" return="java.lang.Object" 10090 abstract="false" native="false" synchronized="false" 10091 static="false" final="false" visibility="public" 10092 deprecated="not deprecated"> 10093 <param name="clazz" type="java.lang.Class"/> 10094 <param name="extraContext" type="java.util.Map"/> 10095 </method> 10096 <method name="buildInterceptor" return="Interceptor" 10097 abstract="false" native="false" synchronized="false" 10098 static="false" final="false" visibility="public" 10099 deprecated="not deprecated"> 10100 <param name="interceptorConfig" type="InterceptorConfig"/> 10101 <param name="interceptorRefParams" type="java.util.Map"/> 10102 <exception name="ConfigurationException" type="ConfigurationException"/> 10103 </method> 10104 <doc> 10105 <![CDATA[@deprecated Use {@link com.google.inject.servlet.Struts2Factory} instead.]]> 10106 </doc> 10107 </class> 10108 <!-- end class com.google.inject.struts2.GuiceObjectFactory --> 10109 <!-- start class com.google.inject.struts2.Struts2Factory --> 10110 <class name="Struts2Factory" extends="ObjectFactory" 10111 abstract="false" 10112 static="false" final="false" visibility="public" 10113 deprecated="not deprecated"> 10114 <constructor name="Struts2Factory" 10115 static="false" final="false" visibility="public" 10116 deprecated="not deprecated"> 10117 </constructor> 10118 <method name="isNoArgConstructorRequired" return="boolean" 10119 abstract="false" native="false" synchronized="false" 10120 static="false" final="false" visibility="public" 10121 deprecated="not deprecated"> 10122 </method> 10123 <method name="getClassInstance" return="java.lang.Class<?>" 10124 abstract="false" native="false" synchronized="false" 10125 static="false" final="false" visibility="public" 10126 deprecated="not deprecated"> 10127 <param name="name" type="java.lang.String"/> 10128 <exception name="ClassNotFoundException" type="java.lang.ClassNotFoundException"/> 10129 </method> 10130 <method name="buildBean" return="java.lang.Object" 10131 abstract="false" native="false" synchronized="false" 10132 static="false" final="false" visibility="public" 10133 deprecated="not deprecated"> 10134 <param name="clazz" type="java.lang.Class"/> 10135 <param name="extraContext" type="java.util.Map<java.lang.String, java.lang.Object>"/> 10136 </method> 10137 <method name="buildInterceptor" return="Interceptor" 10138 abstract="false" native="false" synchronized="false" 10139 static="false" final="false" visibility="public" 10140 deprecated="not deprecated"> 10141 <param name="interceptorConfig" type="InterceptorConfig"/> 10142 <param name="interceptorRefParams" type="java.util.Map"/> 10143 <exception name="ConfigurationException" type="ConfigurationException"/> 10144 </method> 10145 <doc> 10146 <![CDATA[Cleanup up version from Bob's GuiceObjectFactory. Now works properly with 10147 GS2 and fixes several bugs. 10148 10149 @author dhanji (a] gmail.com 10150 @author benmccann.com]]> 10151 </doc> 10152 </class> 10153 <!-- end class com.google.inject.struts2.Struts2Factory --> 10154 <!-- start class com.google.inject.struts2.Struts2GuicePluginModule --> 10155 <class name="Struts2GuicePluginModule" extends="com.google.inject.AbstractModule" 10156 abstract="false" 10157 static="false" final="false" visibility="public" 10158 deprecated="not deprecated"> 10159 <constructor name="Struts2GuicePluginModule" 10160 static="false" final="false" visibility="public" 10161 deprecated="not deprecated"> 10162 </constructor> 10163 <method name="configure" 10164 abstract="false" native="false" synchronized="false" 10165 static="false" final="false" visibility="protected" 10166 deprecated="not deprecated"> 10167 </method> 10168 <doc> 10169 <![CDATA[Initializes the Struts 2 Guice Plugin. 10170 Must be added to the injector returned by 10171 {@link GuiceServletContextListener.getInjector()}. 10172 10173 @author benmccann.com]]> 10174 </doc> 10175 </class> 10176 <!-- end class com.google.inject.struts2.Struts2GuicePluginModule --> 10177 </package> 10178 <package name="com.google.inject.throwingproviders"> 10179 <!-- start interface com.google.inject.throwingproviders.CheckedProvider --> 10180 <interface name="CheckedProvider" abstract="true" 10181 static="false" final="false" visibility="public" 10182 deprecated="not deprecated"> 10183 <method name="get" return="T" 10184 abstract="true" native="false" synchronized="false" 10185 static="false" final="false" visibility="public" 10186 deprecated="not deprecated"> 10187 <exception name="Exception" type="java.lang.Exception"/> 10188 </method> 10189 <doc> 10190 <![CDATA[Alternative to the Guice {@link com.google.inject.Provider} that throws 10191 a checked Exception. Users may not inject {@code T} directly. 10192 10193 <p>This interface must be extended to use application-specific exception types. 10194 Such subinterfaces may not define new methods, but may narrow the exception type. 10195 <pre> 10196 public interface RemoteProvider<T> extends CheckedProvider<T> { 10197 T get() throws CustomExceptionOne, CustomExceptionTwo; 10198 } 10199 </pre> 10200 10201 <p>When this type is bound using {@link ThrowingProviderBinder}, the value returned 10202 or exception thrown by {@link #get} will be scoped. As a consequence, {@link #get} 10203 will invoked at most once within each scope. 10204 10205 @since 3.0]]> 10206 </doc> 10207 </interface> 10208 <!-- end interface com.google.inject.throwingproviders.CheckedProvider --> 10209 <!-- start class com.google.inject.throwingproviders.CheckedProvides --> 10210 <class name="CheckedProvides" abstract="true" 10211 static="false" final="false" visibility="public" 10212 deprecated="not deprecated"> 10213 <implements name="java.lang.annotation.Annotation"/> 10214 <doc> 10215 <![CDATA[Annotates methods of a {@link Module} to create a {@link CheckedProvider} 10216 method binding that can throw exceptions. The method's return type is bound 10217 to a {@link CheckedProvider} that can be injected. Guice will pass 10218 dependencies to the method as parameters. Install {@literal @}CheckedProvides 10219 methods by using 10220 {@link ThrowingProviderBinder#forModule(com.google.inject.Module)} on the 10221 module where the methods are declared. 10222 10223 @author sameb (a] google.com (Sam Berlin) 10224 @since 3.0]]> 10225 </doc> 10226 </class> 10227 <!-- end class com.google.inject.throwingproviders.CheckedProvides --> 10228 <!-- start class com.google.inject.throwingproviders.ThrowingInject --> 10229 <class name="ThrowingInject" abstract="true" 10230 static="false" final="false" visibility="public" 10231 deprecated="not deprecated"> 10232 <implements name="java.lang.annotation.Annotation"/> 10233 <doc> 10234 <![CDATA[A version of {@literal @}{@link Inject} designed for ThrowingProviders. Use by: 10235 <pre><code>ThrowingProviderBinder.create(binder()) 10236 .bind(RemoteProvider.class, Customer.class) 10237 .providing(CustomerImpl.class); 10238 </code></pre> 10239 where CustomerImpl has a constructor annotated with ThrowingInject. 10240 10241 @author sameb (a] google.com (Sam Berlin)]]> 10242 </doc> 10243 </class> 10244 <!-- end class com.google.inject.throwingproviders.ThrowingInject --> 10245 <!-- start interface com.google.inject.throwingproviders.ThrowingProvider --> 10246 <interface name="ThrowingProvider" abstract="true" 10247 static="false" final="false" visibility="public" 10248 deprecated="use {@link CheckedProvider} instead."> 10249 <implements name="com.google.inject.throwingproviders.CheckedProvider<T>"/> 10250 <method name="get" return="T" 10251 abstract="true" native="false" synchronized="false" 10252 static="false" final="false" visibility="public" 10253 deprecated="not deprecated"> 10254 <exception name="Exception" type="java.lang.Exception"/> 10255 </method> 10256 <doc> 10257 <![CDATA[Alternative to the Guice {@link com.google.inject.Provider} that throws 10258 a checked Exception. Users may not inject {@code T} directly. 10259 10260 <p>This interface must be extended to use application-specific exception types. 10261 Such subinterfaces may not define new methods: 10262 <pre> 10263 public interface RemoteProvider<T> extends ThrowingProvider<T, RemoteException> { } 10264 </pre> 10265 10266 <p>When this type is bound using {@link ThrowingProviderBinder}, the value returned 10267 or exception thrown by {@link #get} will be scoped. As a consequence, {@link #get} 10268 will invoked at most once within each scope. 10269 10270 @author jmourits (a] google.com (Jerome Mourits) 10271 @author jessewilson (a] google.com (Jesse Wilson) 10272 @deprecated use {@link CheckedProvider} instead.]]> 10273 </doc> 10274 </interface> 10275 <!-- end interface com.google.inject.throwingproviders.ThrowingProvider --> 10276 <!-- start class com.google.inject.throwingproviders.ThrowingProviderBinder --> 10277 <class name="ThrowingProviderBinder" extends="java.lang.Object" 10278 abstract="false" 10279 static="false" final="false" visibility="public" 10280 deprecated="not deprecated"> 10281 <method name="create" return="com.google.inject.throwingproviders.ThrowingProviderBinder" 10282 abstract="false" native="false" synchronized="false" 10283 static="true" final="false" visibility="public" 10284 deprecated="not deprecated"> 10285 <param name="binder" type="com.google.inject.Binder"/> 10286 </method> 10287 <method name="forModule" return="com.google.inject.Module" 10288 abstract="false" native="false" synchronized="false" 10289 static="true" final="false" visibility="public" 10290 deprecated="not deprecated"> 10291 <param name="module" type="com.google.inject.Module"/> 10292 <doc> 10293 <![CDATA[Returns a module that installs {@literal @}{@link CheckedProvides} methods. 10294 10295 @since 3.0]]> 10296 </doc> 10297 </method> 10298 <method name="bind" return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder<P, ?>" 10299 abstract="false" native="false" synchronized="false" 10300 static="false" final="false" visibility="public" 10301 deprecated="Use {@link #bind(Class, Class)} or {@link #bind(Class, TypeLiteral)} instead."> 10302 <param name="interfaceType" type="java.lang.Class<P>"/> 10303 <param name="clazz" type="java.lang.reflect.Type"/> 10304 <doc> 10305 <![CDATA[@deprecated Use {@link #bind(Class, Class)} or {@link #bind(Class, TypeLiteral)} instead.]]> 10306 </doc> 10307 </method> 10308 <method name="bind" return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder<P, T>" 10309 abstract="false" native="false" synchronized="false" 10310 static="false" final="false" visibility="public" 10311 deprecated="not deprecated"> 10312 <param name="interfaceType" type="java.lang.Class<P>"/> 10313 <param name="clazz" type="java.lang.Class<T>"/> 10314 </method> 10315 <method name="bind" return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder<P, T>" 10316 abstract="false" native="false" synchronized="false" 10317 static="false" final="false" visibility="public" 10318 deprecated="not deprecated"> 10319 <param name="interfaceType" type="java.lang.Class<P>"/> 10320 <param name="typeLiteral" type="com.google.inject.TypeLiteral<T>"/> 10321 </method> 10322 <doc> 10323 <![CDATA[<p>Builds a binding for a {@link CheckedProvider}. 10324 10325 <p>You can use a fluent API and custom providers: 10326 <pre><code>ThrowingProviderBinder.create(binder()) 10327 .bind(RemoteProvider.class, Customer.class) 10328 .to(RemoteCustomerProvider.class) 10329 .in(RequestScope.class); 10330 </code></pre> 10331 or, you can use throwing provider methods: 10332 <pre><code>class MyModule extends AbstractModule { 10333 configure() { 10334 ThrowingProviderBinder.install(this, binder()); 10335 } 10336 10337 {@literal @}CheckedProvides(RemoteProvider.class) 10338 {@literal @}RequestScope 10339 Customer provideCustomer(FlakyCustomerCreator creator) throws RemoteException { 10340 return creator.getCustomerOrThrow(); 10341 } 10342 } 10343 </code></pre> 10344 You also can declare that a CheckedProvider construct 10345 a particular class whose constructor throws an exception: 10346 <pre><code>ThrowingProviderBinder.create(binder()) 10347 .bind(RemoteProvider.class, Customer.class) 10348 .providing(CustomerImpl.class) 10349 .in(RequestScope.class); 10350 </code></pre> 10351 10352 @author jmourits (a] google.com (Jerome Mourits) 10353 @author jessewilson (a] google.com (Jesse Wilson) 10354 @author sameb (a] google.com (Sam Berlin)]]> 10355 </doc> 10356 </class> 10357 <!-- end class com.google.inject.throwingproviders.ThrowingProviderBinder --> 10358 <!-- start class com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder --> 10359 <class name="ThrowingProviderBinder.SecondaryBinder" extends="java.lang.Object" 10360 abstract="false" 10361 static="false" final="false" visibility="public" 10362 deprecated="not deprecated"> 10363 <constructor name="SecondaryBinder" type="java.lang.Class<P>, java.lang.reflect.Type" 10364 static="false" final="false" visibility="public" 10365 deprecated="not deprecated"> 10366 </constructor> 10367 <method name="annotatedWith" return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder<P, T>" 10368 abstract="false" native="false" synchronized="false" 10369 static="false" final="false" visibility="public" 10370 deprecated="not deprecated"> 10371 <param name="annotationType" type="java.lang.Class<? extends java.lang.annotation.Annotation>"/> 10372 </method> 10373 <method name="annotatedWith" return="com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder<P, T>" 10374 abstract="false" native="false" synchronized="false" 10375 static="false" final="false" visibility="public" 10376 deprecated="not deprecated"> 10377 <param name="annotation" type="java.lang.annotation.Annotation"/> 10378 </method> 10379 <method name="to" return="com.google.inject.binder.ScopedBindingBuilder" 10380 abstract="false" native="false" synchronized="false" 10381 static="false" final="false" visibility="public" 10382 deprecated="not deprecated"> 10383 <param name="target" type="P extends com.google.inject.throwingproviders.CheckedProvider"/> 10384 </method> 10385 <method name="to" return="com.google.inject.binder.ScopedBindingBuilder" 10386 abstract="false" native="false" synchronized="false" 10387 static="false" final="false" visibility="public" 10388 deprecated="not deprecated"> 10389 <param name="targetType" type="java.lang.Class<? extends P>"/> 10390 </method> 10391 <method name="providing" return="com.google.inject.binder.ScopedBindingBuilder" 10392 abstract="false" native="false" synchronized="false" 10393 static="false" final="false" visibility="public" 10394 deprecated="not deprecated"> 10395 <param name="cxtorClass" type="java.lang.Class<? extends T>"/> 10396 </method> 10397 <method name="providing" return="com.google.inject.binder.ScopedBindingBuilder" 10398 abstract="false" native="false" synchronized="false" 10399 static="false" final="false" visibility="public" 10400 deprecated="not deprecated"> 10401 <param name="cxtorLiteral" type="com.google.inject.TypeLiteral<? extends T>"/> 10402 </method> 10403 <method name="to" return="com.google.inject.binder.ScopedBindingBuilder" 10404 abstract="false" native="false" synchronized="false" 10405 static="false" final="false" visibility="public" 10406 deprecated="not deprecated"> 10407 <param name="targetKey" type="com.google.inject.Key<? extends P>"/> 10408 </method> 10409 </class> 10410 <!-- end class com.google.inject.throwingproviders.ThrowingProviderBinder.SecondaryBinder --> 10411 </package> 10412 <package name="com.google.inject.tools.jmx"> 10413 <!-- start interface com.google.inject.tools.jmx.ManagedBindingMBean --> 10414 <interface name="ManagedBindingMBean" abstract="true" 10415 static="false" final="false" visibility="public" 10416 deprecated="not deprecated"> 10417 <method name="getSource" return="java.lang.String" 10418 abstract="true" native="false" synchronized="false" 10419 static="false" final="false" visibility="public" 10420 deprecated="not deprecated"> 10421 <doc> 10422 <![CDATA[Gets the source of this binding.]]> 10423 </doc> 10424 </method> 10425 <method name="getProvider" return="java.lang.String" 10426 abstract="true" native="false" synchronized="false" 10427 static="false" final="false" visibility="public" 10428 deprecated="not deprecated"> 10429 <doc> 10430 <![CDATA[Gets the provider to which this binding is bound.]]> 10431 </doc> 10432 </method> 10433 <method name="getKey" return="java.lang.String" 10434 abstract="true" native="false" synchronized="false" 10435 static="false" final="false" visibility="public" 10436 deprecated="not deprecated"> 10437 <doc> 10438 <![CDATA[Gets the binding key.]]> 10439 </doc> 10440 </method> 10441 <doc> 10442 <![CDATA[JMX interface to bindings. 10443 10444 @author crazybob (a] google.com (Bob Lee)]]> 10445 </doc> 10446 </interface> 10447 <!-- end interface com.google.inject.tools.jmx.ManagedBindingMBean --> 10448 <!-- start class com.google.inject.tools.jmx.Manager --> 10449 <class name="Manager" extends="java.lang.Object" 10450 abstract="false" 10451 static="false" final="false" visibility="public" 10452 deprecated="not deprecated"> 10453 <constructor name="Manager" 10454 static="false" final="false" visibility="public" 10455 deprecated="not deprecated"> 10456 </constructor> 10457 <method name="manage" 10458 abstract="false" native="false" synchronized="false" 10459 static="true" final="false" visibility="public" 10460 deprecated="not deprecated"> 10461 <param name="domain" type="java.lang.String"/> 10462 <param name="injector" type="com.google.inject.Injector"/> 10463 <doc> 10464 <![CDATA[Registers all the bindings of an Injector with the platform MBean server. 10465 Consider using the name of your root {@link Module} class as the domain.]]> 10466 </doc> 10467 </method> 10468 <method name="manage" 10469 abstract="false" native="false" synchronized="false" 10470 static="true" final="false" visibility="public" 10471 deprecated="not deprecated"> 10472 <param name="server" type="javax.management.MBeanServer"/> 10473 <param name="domain" type="java.lang.String"/> 10474 <param name="injector" type="com.google.inject.Injector"/> 10475 <doc> 10476 <![CDATA[Registers all the bindings of an Injector with the given MBean server. 10477 Consider using the name of your root {@link Module} class as the domain.]]> 10478 </doc> 10479 </method> 10480 <method name="main" 10481 abstract="false" native="false" synchronized="false" 10482 static="true" final="false" visibility="public" 10483 deprecated="not deprecated"> 10484 <param name="args" type="java.lang.String[]"/> 10485 <exception name="Exception" type="java.lang.Exception"/> 10486 <doc> 10487 <![CDATA[Run with no arguments for usage instructions.]]> 10488 </doc> 10489 </method> 10490 <doc> 10491 <![CDATA[Provides a JMX interface to Guice. 10492 10493 @author crazybob (a] google.com (Bob Lee)]]> 10494 </doc> 10495 </class> 10496 <!-- end class com.google.inject.tools.jmx.Manager --> 10497 </package> 10498 <package name="com.google.inject.util"> 10499 <!-- start class com.google.inject.util.Modules --> 10500 <class name="Modules" extends="java.lang.Object" 10501 abstract="false" 10502 static="false" final="true" visibility="public" 10503 deprecated="not deprecated"> 10504 <method name="override" return="com.google.inject.util.Modules.OverriddenModuleBuilder" 10505 abstract="false" native="false" synchronized="false" 10506 static="true" final="false" visibility="public" 10507 deprecated="not deprecated"> 10508 <param name="modules" type="com.google.inject.Module[]"/> 10509 <doc> 10510 <![CDATA[Returns a builder that creates a module that overlays override modules over the given 10511 modules. If a key is bound in both sets of modules, only the binding from the override modules 10512 is kept. If a single {@link PrivateModule} is supplied or all elements are from 10513 a single {@link PrivateBinder}, then this will overwrite the private bindings. 10514 Otherwise, private bindings will not be overwritten unless they are exposed. 10515 This can be used to replace the bindings of a production module with test bindings: 10516 <pre> 10517 Module functionalTestModule 10518 = Modules.override(new ProductionModule()).with(new TestModule()); 10519 </pre> 10520 10521 <p>Prefer to write smaller modules that can be reused and tested without overrides. 10522 10523 @param modules the modules whose bindings are open to be overridden]]> 10524 </doc> 10525 </method> 10526 <method name="override" return="com.google.inject.util.Modules.OverriddenModuleBuilder" 10527 abstract="false" native="false" synchronized="false" 10528 static="true" final="false" visibility="public" 10529 deprecated="not deprecated"> 10530 <param name="modules" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 10531 <doc> 10532 <![CDATA[Returns a builder that creates a module that overlays override modules over the given 10533 modules. If a key is bound in both sets of modules, only the binding from the override modules 10534 is kept. If a single {@link PrivateModule} is supplied or all elements are from 10535 a single {@link PrivateBinder}, then this will overwrite the private bindings. 10536 Otherwise, private bindings will not be overwritten unless they are exposed. 10537 This can be used to replace the bindings of a production module with test bindings: 10538 <pre> 10539 Module functionalTestModule 10540 = Modules.override(getProductionModules()).with(getTestModules()); 10541 </pre> 10542 10543 <p>Prefer to write smaller modules that can be reused and tested without overrides. 10544 10545 @param modules the modules whose bindings are open to be overridden]]> 10546 </doc> 10547 </method> 10548 <method name="combine" return="com.google.inject.Module" 10549 abstract="false" native="false" synchronized="false" 10550 static="true" final="false" visibility="public" 10551 deprecated="not deprecated"> 10552 <param name="modules" type="com.google.inject.Module[]"/> 10553 <doc> 10554 <![CDATA[Returns a new module that installs all of {@code modules}.]]> 10555 </doc> 10556 </method> 10557 <method name="combine" return="com.google.inject.Module" 10558 abstract="false" native="false" synchronized="false" 10559 static="true" final="false" visibility="public" 10560 deprecated="not deprecated"> 10561 <param name="modules" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 10562 <doc> 10563 <![CDATA[Returns a new module that installs all of {@code modules}.]]> 10564 </doc> 10565 </method> 10566 <field name="EMPTY_MODULE" type="com.google.inject.Module" 10567 transient="false" volatile="false" 10568 static="true" final="true" visibility="public" 10569 deprecated="not deprecated"> 10570 </field> 10571 <doc> 10572 <![CDATA[Static utility methods for creating and working with instances of {@link Module}. 10573 10574 @author jessewilson (a] google.com (Jesse Wilson) 10575 @since 2.0]]> 10576 </doc> 10577 </class> 10578 <!-- end class com.google.inject.util.Modules --> 10579 <!-- start interface com.google.inject.util.Modules.OverriddenModuleBuilder --> 10580 <interface name="Modules.OverriddenModuleBuilder" abstract="true" 10581 static="true" final="false" visibility="public" 10582 deprecated="not deprecated"> 10583 <method name="with" return="com.google.inject.Module" 10584 abstract="true" native="false" synchronized="false" 10585 static="false" final="false" visibility="public" 10586 deprecated="not deprecated"> 10587 <param name="overrides" type="com.google.inject.Module[]"/> 10588 <doc> 10589 <![CDATA[See the EDSL example at {@link Modules#override(Module[]) override()}.]]> 10590 </doc> 10591 </method> 10592 <method name="with" return="com.google.inject.Module" 10593 abstract="true" native="false" synchronized="false" 10594 static="false" final="false" visibility="public" 10595 deprecated="not deprecated"> 10596 <param name="overrides" type="java.lang.Iterable<? extends com.google.inject.Module>"/> 10597 <doc> 10598 <![CDATA[See the EDSL example at {@link Modules#override(Module[]) override()}.]]> 10599 </doc> 10600 </method> 10601 <doc> 10602 <![CDATA[See the EDSL example at {@link Modules#override(Module[]) override()}.]]> 10603 </doc> 10604 </interface> 10605 <!-- end interface com.google.inject.util.Modules.OverriddenModuleBuilder --> 10606 <!-- start class com.google.inject.util.Providers --> 10607 <class name="Providers" extends="java.lang.Object" 10608 abstract="false" 10609 static="false" final="true" visibility="public" 10610 deprecated="not deprecated"> 10611 <method name="of" return="com.google.inject.Provider<T>" 10612 abstract="false" native="false" synchronized="false" 10613 static="true" final="false" visibility="public" 10614 deprecated="not deprecated"> 10615 <param name="instance" type="T"/> 10616 <doc> 10617 <![CDATA[Returns a provider which always provides {@code instance}. This should not 10618 be necessary to use in your application, but is helpful for several types 10619 of unit tests. 10620 10621 @param instance the instance that should always be provided. This is also 10622 permitted to be null, to enable aggressive testing, although in real 10623 life a Guice-supplied Provider will never return null.]]> 10624 </doc> 10625 </method> 10626 <method name="guicify" return="com.google.inject.Provider<T>" 10627 abstract="false" native="false" synchronized="false" 10628 static="true" final="false" visibility="public" 10629 deprecated="not deprecated"> 10630 <param name="provider" type="javax.inject.Provider<T>"/> 10631 <doc> 10632 <![CDATA[Returns a Guice-friendly {@code com.google.inject.Provider} for the given 10633 JSR-330 {@code javax.inject.Provider}. The converse method is unnecessary, 10634 since Guice providers directly implement the JSR-330 interface. 10635 10636 @since 3.0]]> 10637 </doc> 10638 </method> 10639 <doc> 10640 <![CDATA[Static utility methods for creating and working with instances of 10641 {@link Provider}. 10642 10643 @author Kevin Bourrillion (kevinb9n (a] gmail.com) 10644 @since 2.0]]> 10645 </doc> 10646 </class> 10647 <!-- end class com.google.inject.util.Providers --> 10648 <!-- start class com.google.inject.util.Types --> 10649 <class name="Types" extends="java.lang.Object" 10650 abstract="false" 10651 static="false" final="true" visibility="public" 10652 deprecated="not deprecated"> 10653 <method name="newParameterizedType" return="java.lang.reflect.ParameterizedType" 10654 abstract="false" native="false" synchronized="false" 10655 static="true" final="false" visibility="public" 10656 deprecated="not deprecated"> 10657 <param name="rawType" type="java.lang.reflect.Type"/> 10658 <param name="typeArguments" type="java.lang.reflect.Type[]"/> 10659 <doc> 10660 <![CDATA[Returns a new parameterized type, applying {@code typeArguments} to 10661 {@code rawType}. The returned type does not have an owner type. 10662 10663 @return a {@link java.io.Serializable serializable} parameterized type.]]> 10664 </doc> 10665 </method> 10666 <method name="newParameterizedTypeWithOwner" return="java.lang.reflect.ParameterizedType" 10667 abstract="false" native="false" synchronized="false" 10668 static="true" final="false" visibility="public" 10669 deprecated="not deprecated"> 10670 <param name="ownerType" type="java.lang.reflect.Type"/> 10671 <param name="rawType" type="java.lang.reflect.Type"/> 10672 <param name="typeArguments" type="java.lang.reflect.Type[]"/> 10673 <doc> 10674 <![CDATA[Returns a new parameterized type, applying {@code typeArguments} to 10675 {@code rawType} and enclosed by {@code ownerType}. 10676 10677 @return a {@link java.io.Serializable serializable} parameterized type.]]> 10678 </doc> 10679 </method> 10680 <method name="arrayOf" return="java.lang.reflect.GenericArrayType" 10681 abstract="false" native="false" synchronized="false" 10682 static="true" final="false" visibility="public" 10683 deprecated="not deprecated"> 10684 <param name="componentType" type="java.lang.reflect.Type"/> 10685 <doc> 10686 <![CDATA[Returns an array type whose elements are all instances of 10687 {@code componentType}. 10688 10689 @return a {@link java.io.Serializable serializable} generic array type.]]> 10690 </doc> 10691 </method> 10692 <method name="subtypeOf" return="java.lang.reflect.WildcardType" 10693 abstract="false" native="false" synchronized="false" 10694 static="true" final="false" visibility="public" 10695 deprecated="not deprecated"> 10696 <param name="bound" type="java.lang.reflect.Type"/> 10697 <doc> 10698 <![CDATA[Returns a type that represents an unknown type that extends {@code bound}. 10699 For example, if {@code bound} is {@code CharSequence.class}, this returns 10700 {@code ? extends CharSequence}. If {@code bound} is {@code Object.class}, 10701 this returns {@code ?}, which is shorthand for {@code ? extends Object}.]]> 10702 </doc> 10703 </method> 10704 <method name="supertypeOf" return="java.lang.reflect.WildcardType" 10705 abstract="false" native="false" synchronized="false" 10706 static="true" final="false" visibility="public" 10707 deprecated="not deprecated"> 10708 <param name="bound" type="java.lang.reflect.Type"/> 10709 <doc> 10710 <![CDATA[Returns a type that represents an unknown supertype of {@code bound}. For 10711 example, if {@code bound} is {@code String.class}, this returns {@code ? 10712 super String}.]]> 10713 </doc> 10714 </method> 10715 <method name="listOf" return="java.lang.reflect.ParameterizedType" 10716 abstract="false" native="false" synchronized="false" 10717 static="true" final="false" visibility="public" 10718 deprecated="not deprecated"> 10719 <param name="elementType" type="java.lang.reflect.Type"/> 10720 <doc> 10721 <![CDATA[Returns a type modelling a {@link List} whose elements are of type 10722 {@code elementType}. 10723 10724 @return a {@link java.io.Serializable serializable} parameterized type.]]> 10725 </doc> 10726 </method> 10727 <method name="setOf" return="java.lang.reflect.ParameterizedType" 10728 abstract="false" native="false" synchronized="false" 10729 static="true" final="false" visibility="public" 10730 deprecated="not deprecated"> 10731 <param name="elementType" type="java.lang.reflect.Type"/> 10732 <doc> 10733 <![CDATA[Returns a type modelling a {@link Set} whose elements are of type 10734 {@code elementType}. 10735 10736 @return a {@link java.io.Serializable serializable} parameterized type.]]> 10737 </doc> 10738 </method> 10739 <method name="mapOf" return="java.lang.reflect.ParameterizedType" 10740 abstract="false" native="false" synchronized="false" 10741 static="true" final="false" visibility="public" 10742 deprecated="not deprecated"> 10743 <param name="keyType" type="java.lang.reflect.Type"/> 10744 <param name="valueType" type="java.lang.reflect.Type"/> 10745 <doc> 10746 <![CDATA[Returns a type modelling a {@link Map} whose keys are of type 10747 {@code keyType} and whose values are of type {@code valueType}. 10748 10749 @return a {@link java.io.Serializable serializable} parameterized type.]]> 10750 </doc> 10751 </method> 10752 <method name="providerOf" return="java.lang.reflect.ParameterizedType" 10753 abstract="false" native="false" synchronized="false" 10754 static="true" final="false" visibility="public" 10755 deprecated="not deprecated"> 10756 <param name="providedType" type="java.lang.reflect.Type"/> 10757 <doc> 10758 <![CDATA[Returns a type modelling a {@link Provider} that provides elements of type 10759 {@code elementType}. 10760 10761 @return a {@link java.io.Serializable serializable} parameterized type.]]> 10762 </doc> 10763 </method> 10764 <doc> 10765 <![CDATA[Static methods for working with types. 10766 10767 @author crazybob (a] google.com (Bob Lee) 10768 @since 2.0]]> 10769 </doc> 10770 </class> 10771 <!-- end class com.google.inject.util.Types --> 10772 </package> 10773 10774 </api> 10775