com.google.inject.multibindings.ProvidesIntoSet Maven / Gradle / Ivy
package com.google.inject.multibindings;
import com.google.inject.Module;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* Annotates methods of a {@link Module} to add items to a {@link Multibinder}.
* The method's return type and binding annotation determines what Set this will
* contribute to. For example,
*
*
* {@literal @}ProvidesIntoSet
* {@literal @}Named("urls")
* String provideFooUrl(FooManager fm) { returm fm.getUrl(); }
*
* {@literal @}ProvidesIntoSet
* {@literal @}Named("urls")
* String provideBarUrl(BarManager bm) { return bm.getUrl(); }
*
*
* will add two items to the {@code @Named("urls") Set} set. The items are bound as
* providers and will be evaluated at injection time.
*/
@Documented
@Target(METHOD)
@Retention(RUNTIME)
public @interface ProvidesIntoSet {
}