I had a similar. Just

bind(NetworkCommunicator.class)
    .toProvider(NetworkCommunicator.class);

Inject all needed information into your provider and let it take the
decision.

On Mon, Sep 8, 2014 at 10:51 PM, tew88 <[email protected]> wrote:

> Hi,
>
> An approximation of my problem as follows:
>
> Based upon a value that I will parse from an incoming request, I wish to
> inject one of two implementations of my interface.  Where is this logic
> best placed?
>
> More specifically:
>
> public interface NetworkCommunicator {
>     public void sendCommandToNetwork(Command command, NetworkElement
> recipient);
> }
>
> --
>
> public class OldNetworkCommunicatorImpl implements NetworkCommunicator {
>     @Override
>     public void sendCommandToNetwork(Command command, NetworkElement
> recipient) {
>         ...
>     }
> }
>
> --
>
> public class NewNetworkCommunicatorImpl implements NetworkCommunicator {
>     @Override
>     public void sendCommandToNetwork(Command command, NetworkElement
> recipient) {
>         ...
>     }
> }
>
> --
>
> public class NetworkCommandIssuer {
>
>     private final NetworkCommunicator networkCommunicator;
>
>     @Inject
>     public NetworkCommandIssuer(final NetworkCommunicator
> networkCommunicator) {
>         this.networkCommunicator = networkCommunicator;
>     }
> }
>
> --
>
> Based on some arbitrary mapping, I'd like to wire up my
> NetworkCommandIssuer to use my NewNetworkCommunicatorImpl implementation
> instead of my OldNetworkCommunicatorImpl implementation.  This will change
> from request to request.  So, where should I define this behaviour?
>
> I'm new to Guice and DI in general, so please assume as little as possible
> in your responses!
>
> Thanks in advance,
> tew88
>
> --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/google-guice.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-guice/1122d17f-b029-4c04-be4c-2b6ba6485295%40googlegroups.com
> <https://groups.google.com/d/msgid/google-guice/1122d17f-b029-4c04-be4c-2b6ba6485295%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/CAGsWfGjkUw%2BhR6Sr8b-9RHHyLXW-ZEUDxRZQ3PgpfXNw_Wyr1w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to