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