Sam, This is great. It should become part of the documentation, color-coding and all.
--tim On Thu, Oct 20, 2011 at 11:26 AM, Sam Berlin <[email protected]> wrote: > Do you have a concrete example of a few bindings and how you want them > organized? I'm having trouble understanding what you're going for. > > Here's some examples of visibility with private modules & bindings: > > ParentModule binds Foo & PrivateSubModuleA & PrivateSubModuleB > PrivateSubModuleA binds Bar, Baz & PrivateSubSubModuleA, exposes Baz > PrivateSubSubModuleA binds & exposes Buz > PrivateSubModuleB binds Bar, Boz & PrivateSubSubModuleB, exposes Boz > PrivateSubSubModuleB binds & exposes Buz > > Foo cannot be bound in any module other than ParentModule because all > modules already see Foo. Foo can be injected by anything, since it's > available everywhere. > Bar can be bound in both PrivateSubModuleA & PrivateSubModuleB because > they are sibling private modules and the binding isn't exposed. Bar cannot > be bound in PrivateSubSubModuleA or PrivateSubSubModuleB, because their > parent modules have Bar bound. Foo cannot inject Bar, because it isn't > visible to things from ParentModule. > Baz cannot be bound in any module other than PrivateSubModuleA because all > modules already see Baz (since it's exposed to ParentModule). Baz can be > injected by anything, since it's available > everywhere. > Buz can be bound in the SubSub modules, because they are effectively the > same namespace as Bar -- visible to the Sub & SubSub modules only. Foo cannot > inject Buz, because it isn't visible to things from ParentModule. > Boz cannot be bound in any module other than PrivateSubModuleB because all > modules already see Boz (since it's exposed to ParentModule). Boz can be > injected by anything, since it's available everywhere. > > sam > > > On Thu, Oct 20, 2011 at 11:05 AM, nino martinez wael < > [email protected]> wrote: > >> I have this setup >> >> InjectorA-ModuleA-InjectorB-ModuleB-InjectorC-ModuleC-Final injector >> >> \----ModuleD--/ >> >> On the B level there are multiple Modules which all are private >> however they possibly expose a interface that possible used in one of >> the multiple modules on layer C. However I get this message on the c >> level when it tries to inject the interface from B level: >> >> Unable to create binding for >> com.netdesign.remedy.provider.RemedyWallboardDataProviderInterface. It >> was already configured on one or more child injectors or private >> modules >> >> will private module only expose to siblings or does it work on children >> aswell? >> >> regards Nino >> >> -- >> You received this message because you are subscribed to the Google Groups >> "google-guice" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/google-guice?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
