I seem to ask questions about these three things fairly regularly, so
please bear with me if you find it repetitive.

With earlier versions of assistedinject, I could use
FactoryProvider.newFactory like this:

  mapbinder.addBinding("orange").
          toProvider(FactoryProvider.newFactory(FruitFactory.class,
Orange.class));
  mapbinder.addBinding("banana").
          toProvider(FactoryProvider.newFactory(FruitFactory.class,
Banana.class));

   @Inject Map<String, FruitFactory> map;
   map.get(fruitname).bear(3);

See discussion of this "command" pattern with mapbinder and
assistedinject here: http://tinyurl.com/22t28y6

With FactoryModuleBuilder, I'm not sure how to obtain the Provider
object to put into the mapbinder.

Below are some half-baked ideas I've pursued; if you already know what
I mean by reading the above, this part probably will just be
confusing.

I did see that I can create annotated providers, in answer to a
question I asked about FactoryModuleBuilder: http://tinyurl.com/2baormz

But it's not clear to me that this gives me the indirection I need to
bear dynamic fruit.

I also see you can use TypeLiteral with FactoryModuleBuilder.  So
perhaps I could simply drop the mapbinder altogether and change Fruit
to be Fruit<T> and let Guice's type mechanism satisfy the type
injection of FruitFactory<Orange>, but I still lack the indirection
necessary to obtain a FruitFactory where the fruit class is known only
at runtime.

Thank you,
Leigh.

-- 
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