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.

Reply via email to