package restx.factory.conditional.components; import javax.inject.Named; import restx.factory.Module; import restx.factory.Provides; import restx.factory.When; /** * @author apeyrard */ @Module public class TestModuleWithConditional { public static interface Pioneer { String name(); } @Provides @Named("physics") public Pioneer currie() { return new Pioneer() { @Override public String name() { return "Marie Currie"; } }; } @Provides(priority = -100) @Named("physics") @When(name = "chauvinist", value = "true") public Pioneer pierreCurrie() { return new Pioneer() { @Override public String name() { return "Pierre Currie"; } }; } @Provides public Pioneer babbage() { return new Pioneer() { @Override public String name() { return "Charles Babbage"; } }; } @Provides @When(name = "period", value = "all") public Pioneer turing() { return new Pioneer() { @Override public String name() { return "Alan Turing"; } }; } }