Here are some examples of using Assisted Inject and Map Binder http://groups.google.com/group/google-guice/browse_thread/thread/3c86c7712deae803/50bd5af95622e49b
Maybe it will give you some ideas. Cheers, Alen On May 21, 9:00 pm, David Stenglein <david.stengl...@gmail.com> wrote: > Jigar, > > AssistedInject allows you to have a single factory interface for > creating all of your instances, even if they have different > dependencies in the constructor arguments. As long as the other > arguments can be supplied through Injection, it doesn't matter how > many there are; there just needs to be a match between the arguments > of the create(...) method of your factory interface and the Assisted > arguments of each types constructor. > > Given this, all you need is some way to call up the factory for an > instance you need and you can get that instance without reflection. > > The grouping of all of your implementations could be done with a > MapBinder (http://code.google.com/p/google-guice/wiki/Multibindings). > All you need to do is choose a key to select your implementation > (which you probably have already). > > -Dave > > -Dave > > http://code.google.com/p/google-guice/wiki/Multibindings > > > > On Thu, May 21, 2009 at 4:18 AM, Jigar Gosar <jigar.go...@gmail.com> wrote: > > > * How Injecting dependencies when creating "objects" via reflection > > and the "object" also has a constructor parameters. > > > * details: > > > I have a Hierachy (tree) of classes. > > > class Base{ > > Base(String s){...} > > } > > > class Child1{ > > Child1(String s){super(s)} > > } > > > class Child2{ > > Child1(String s){super(s)} > > } > > > and so on, not that class Child1 also has its own children. > > > * Till now I was creating the classes via reflection and invoking the > > string parameter constructor. > > > * now the base class has a dependency that I want guice to inject. > > > class Base{ > > Base(String s, Dep d){...} > > } > > > class Child1{ > > Child1(String s, Dep d){super(s)} > > } > > > class Child2{ > > Child1(String s, Dep d){super(s)} > > } > > > * I have read up on assisted inject, but am not sure on how to use is > > to solve this problem. Since I am using reflection to to create the > > objects of this class Hierarchy. > > > * Note: the reason I am using reflection to create objects is because > > the type of the object to be instantiated is not known till runtime. I > > receive strings from socket and need to wrap them into objects before > > processing them (I have simplified the actual requirement for sake of > > brevity). > > > * so the broader question is how do I create objects of class whose > > type is not known till runtime and it has dependinecies and also > > constructor parameters. > > > * and kudos for the 2.0 release :) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to google-guice@googlegroups.com To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~----------~----~----~----~------~----~------~--~---