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.