Toolable.java revision b7a02b02d81c830d148355c90bc309bcd66fb592
1package com.google.inject.spi;
2
3import static java.lang.annotation.ElementType.METHOD;
4import static java.lang.annotation.RetentionPolicy.RUNTIME;
5
6import com.google.inject.Injector;
7import com.google.inject.Stage;
8
9import java.lang.annotation.Documented;
10import java.lang.annotation.Retention;
11import java.lang.annotation.Target;
12
13/**
14 * Instructs an {@link Injector} running in {@link Stage#TOOL} that a method should be injected.
15 * This is typically useful for for extensions to Guice that perform additional validation in an
16 * injected method or field.  This only applies to objects that are already constructed when
17 * bindings are created (ie., something bound using {@link
18 * com.google.inject.binder.LinkedBindingBuilder#toProvider toProvider}, {@link
19 * com.google.inject.binder.LinkedBindingBuilder#toInstance toInstance}, or {@link
20 * com.google.inject.Binder#requestInjection requestInjection}.
21 *
22 * @author sberlin@gmail.com (Sam Berlin)
23 * @since 3.0
24 */
25@Target({ METHOD })
26@Retention(RUNTIME)
27@Documented
28public @interface Toolable {
29}
30