Multibinder, sorry forgot to send the example last week. Ill do to morrow.
On Jan 17, 2012 2:40 PM, "Warren" <[email protected]> wrote:

> I have an ItemService annotated with Names.named("dataSource1") and
> another one annotated with Names.named("dataSource2") exposed from two
> different Private Modules like this:
>
>
> ... new PrivateModule()
> {
>
>        @Override
>        protected void configure()
>        {
>
>
> bind(ItemService.class).annotatedWith(Names.named("dataSource1")).to(ItemServiceImpl1.class);
>
> expose(ItemService.class).annotatedWith(Names.named("dataSource1"));
>        }
> }
>
> ... new PrivateModule()
> {
>
>        @Override
>        protected void configure()
>        {
>
>
> bind(ItemService.class).annotatedWith(Names.named("dataSource2")).to(ItemServiceImpl2.class);
>
> expose(ItemService.class).annotatedWith(Names.named("dataSource2"));
>        }
> }
>
> Each exposed binding is of the same type, but has a different
> implementation. I want to be able to place theses in a map and inject
> the map so I can do something like this anywhere in my code:
>
> ItemService itemService = itemServices.get("dataSource1")
>
> I started to try and do this with MapBinder but ran into some problems
> and later found this at
> http://code.google.com/p/google-guice/wiki/Multibindings
>
> Limitations
> When you use PrivateModules with multibindings, all of the elements
> must be bound in the same environment. You cannot create collections
> whose elements span private modules. Otherwise injector creation will
> fail.
>
> What is the proper way to choose, at runtime, which binding to use
> when the bindings are exposed from 2 or more Private Modules ?
>
> Thanks,
>
> Warren
>
> --
> 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