/** * This is the custom builder for injecting the ApplicationModule with objects that it needs. * This eliminates the need for a constructor in the module. * * <p> * Help from - https://proandroiddev.com/dagger-2-component-builder-1f2b91237856 * </p> */ @Component.Builder interface Builder { //Note - If you want to pass Application to constructors of provide methods this is what you do. //Note - If you want to pass ReactiveArchitectureApplication to constructors of provide methods, // you'll need to add it or cast. @BindsInstance Builder application(Application application); ApplicationComponent build(); }
@Component.Builder abstract class Builder extends AndroidInjector.Builder<App> { } }
@Component.Builder interface Builder { @BindsInstance Builder plan(PlanPlugin plan); PlanPluginComponent build(); } }
@Component.Builder interface Builder { @BindsInstance Builder application(Application application); @BindsInstance Builder apiModule(ApiModule apiModule); @BindsInstance Builder dbModule(DbModule dbModule); ApiComponent build(); }
@Component.Builder interface Builder { @BindsInstance Builder application(Application application); AppComponent build(); }
@Component.Builder interface Builder { @BindsInstance Builder application(Application application); AppComponent build(); } void inject(MVVMApplication mvvmApplication);
@Component.Builder abstract class Builder extends AndroidInjector.Builder<App> { } }
@Component.Builder abstract class Builder extends AndroidInjector.Builder<App> { } }
@Component.Builder interface Builder { @BindsInstance Builder application(Application application); Builder globalConfigModule(GlobalConfigModule globalConfigModule); AppComponent build(); } }
@Component.Builder interface Builder { @BindsInstance Builder plan(PlanBungee plan); PlanBungeeComponent build(); } }
@Component.Builder interface Builder { @BindsInstance Builder app(App app); AppComponentForTest build(); } }
@Component.Builder interface Builder { @BindsInstance Builder application(Application application); AppComponent build(); }
@Component.Builder interface Builder { @BindsInstance Builder plan(PlanVelocity plan); PlanVelocityComponent build(); } }
@Component.Builder interface Builder { ApplicationComponent build(); @BindsInstance Builder application(SearchMovieApplication application); }
@Component.Builder interface Builder { @BindsInstance Builder plan(PlanSponge plan); PlanSpongeComponent build(); } }
@Component.Builder interface Builder { @BindsInstance Builder plan(Plan plan); PlanBukkitComponent build(); } }
@Component.Builder interface Builder extends ApplicationComponent.Builder { //Note - If you want to pass Application to constructors of provide methods this is what you do. //Note - If you want to pass ReactiveArchitectureApplication to constructors of provide methods, you'll need to add it or cast. @BindsInstance TestApplicationComponent.Builder application(Application application); TestApplicationComponent build(); }
@Component.Builder interface Builder { @BindsInstance Builder application(App app); AppComponent build(); } void inject(App app);
@Component.Builder interface Builder { @BindsInstance Builder application(App application); AppComponent build(); } void inject(App app);
@CanIgnoreReturnValue @Component.Builder interface Builder { Builder processingEnvironmentModule(ProcessingEnvironmentModule module); @BindsInstance Builder testingPlugins( @TestingPlugins Optional<ImmutableSet<BindingGraphPlugin>> testingPlugins); @CheckReturnValue ProcessorComponent build(); } }