You can bubble the logic up to place that installs the modules. ie., have a MySqlModule, a PostgresqlModule, and a GenericDbModule and conditionally insert one of those modules into the list of modules that's passed to create the injector.

Sam

On Apr 4, 2010, at 1:23 PM, rod <[email protected]> wrote:

I don't think it's a really bad solution, I just read this page - http://code.google.com/p/google-guice/wiki/AvoidConditionalLogicInModules - and wanted to check there wasn't a better way to do this.

Cheers,
rod.

On 4 April 2010 14:33, Max Bowsher <[email protected]> wrote:
rod wrote:
> Hi,
>
> I'm sure this question must have been asked a million times but I
> can't find the answer...
>
> In my application the user can provide command line flags for various > options, one being the type of database to use. So I have a bunch of > implementations of my Database interface, and at the moment on startup
> I do...
>
> if ( dbType.equals("mysql") ) {
>   // create mysql implementation
> }
> else if ( dbType.equals("other..") ) {
>   // ...
> }
> else {
>   // some other implementation...
> }
>
> The database class is then injected into components when needed. How
> is this handled with Guice?  The only way I can see is to move this
> logic to my module like this...
>
> if ( dbType.equals("mysql") ) {
>   bind( Database.class ).to( MySQLDatabase.class );
> }
>
> Is there a better way?

What's wrong with the method that you describe above that you seek to
improve upon?

Max.




--
"I backed my car into a cop car the other day. But he just drove on, sometimes life's ok."
--
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