Omg, that's what I didn't get ! Hat you can bind to another type literal ! THANKS !
Cheers, On Thu, Sep 23, 2010 at 5:08 PM, Lucas Cavalcanti <[email protected]>wrote: > you can use TypeLiteral in both ways: > > bind(new TypeLiteral<UiHandlersStrategy<MyUiHandlers>>() { }).to(new > TypeLiteral<ProviderUiHandlersStrategyImpl<MyUiHandlers>>(){}); > > []'s > > On Thu, Sep 23, 2010 at 5:57 PM, Christian Goudreau < > [email protected]> wrote: > >> bind(new TypeLiteral<UiHandlersStrategy<MyUiHandlers>>() { >> }).to(ProviderUiHandlersStrategyImpl.class); >> >> ProviderUiHandlersStrategyImpl here is a raw type... is this problematic ? >> Unfortunatly, to instance isn't available in Gin :( >> >> What I do now and that does work is that instead of binding >> UiHandlerStrategy I use ProviderUiHandlerStrategyImpl<MyUiHanlders> in my >> class that needs it. But I kinda wanted to get rid of my implementation and >> use the interface instead. >> >> On Thu, Sep 23, 2010 at 4:34 PM, Lucas Cavalcanti <[email protected] >> > wrote: >> >>> I tried to reproduce your error, but i couldn't. >>> >>> The problem is: >>> >>> You have a generic interface, but you are binding only its raw type... >>> >>> Suppose you want to receive a List<Something> as dependency... >>> this way you must do something like: >>> >>> bind(new TypeLiteral<List<Something>>() {}).toInstance(new >>> ArrayList<Something>()); >>> >>> >>> http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions#How_to_inject_class_with_generic_type?<http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions> >>> >>> On Thu, Sep 23, 2010 at 5:09 PM, Christian Goudreau < >>> [email protected]> wrote: >>> >>>> This one: >>>> bind(MemberView.MyUiHandlers.class).to(MemberPresenter.class); >>>> >>>> How can I bind H ? And I will have to remove the upper one if I don't >>>> want to get and error from Guive. >>>> >>>> Thanks btw for every input I had >>>> >>>> 2010/9/23 Yaxin Liu 刘亚新 <[email protected]> >>>> >>>>> TypeLiteral? >>>>> >>>>> >>>>> On Thu, Sep 23, 2010 at 7:50 AM, Christian Goudreau < >>>>> [email protected]> wrote: >>>>> >>>>>> Yeah, well, that doesn't work :D It's still complaining about H >>>>>> extends UiHandlers that isn't bind :D (H = MyUiHandlers and is bound) >>>>>> >>>>>> Cheers, >>>>>> >>>>>> >>>>>> On Thu, Sep 23, 2010 at 10:47 AM, Lucas Cavalcanti < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> When your class has a generic type, I think you have to do the >>>>>>> generic binding explicity: >>>>>>> >>>>>>> bind(new >>>>>>> TypeLiteral<UiHandlersStrategy<MyUiHandlers>>(){}).annotatedWith(...).to(...); >>>>>>> >>>>>>> You could try to use wildcards, but I'm not sure if it works >>>>>>> >>>>>>> []'s >>>>>>> Lucas >>>>>>> >>>>>>> >>>>>>> On Thu, Sep 23, 2010 at 11:35 AM, Christian Goudreau < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Anyone else ? >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Sep 22, 2010 at 11:34 AM, Christian Goudreau < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> bind(MemberView.MyUiHandlers.class).to(MemberPresenter.class); >>>>>>>>> >>>>>>>>> bind(UiHandlersStrategy.class).annotatedWith(ProviderUiHandler >>>>>>>>> .class).to(ProviderUiHandlersStrategyImpl.class); >>>>>>>>> >>>>>>>>> bind(UiHandlersStrategy.class).annotatedWith(SetterUiHandler. >>>>>>>>> class).to(SetterUiHandlersStrategyImpl.class); >>>>>>>>> >>>>>>>>> public interface UiHandlersStrategy<H extends UiHandlers> { >>>>>>>>> >>>>>>>>> void setUiHandlers(H uiHandlers); >>>>>>>>> >>>>>>>>> H getUiHandlers(); >>>>>>>>> >>>>>>>>> } >>>>>>>>> >>>>>>>>> public class ProviderUiHandlersStrategyImpl<H extends UiHandlers> >>>>>>>>> implements >>>>>>>>> >>>>>>>>> UiHandlersStrategy<H> { >>>>>>>>> >>>>>>>>> private final Provider<H> uiHandlersProvider; >>>>>>>>> >>>>>>>>> >>>>>>>>> Here's more informations. What I don't get is that MyUiHandlers is >>>>>>>>> declared... but my guest is that it is AFTER the other one... >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Sep 22, 2010 at 11:16 AM, Fred Faber <[email protected]>wrote: >>>>>>>>> >>>>>>>>>> Can you post your binding? >>>>>>>>>> >>>>>>>>>> You should be able to do this with something to the effect of: >>>>>>>>>> >>>>>>>>>> bind(new TypeLiteral<UiHandlersStrategy<MyUiHandlers>(){}) >>>>>>>>>> .to(...your impl); >>>>>>>>>> >>>>>>>>>> -Fred >>>>>>>>>> >>>>>>>>>> On Mon, Sep 20, 2010 at 5:10 PM, Christian Goudreau < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Humm I think my subject is weird... anyway :D >>>>>>>>>>> >>>>>>>>>>> Here's what I want to do: >>>>>>>>>>> >>>>>>>>>>> @Inject >>>>>>>>>>> >>>>>>>>>>> public MemberView(@ProviderUiHandler >>>>>>>>>>> finalUiHandlersStrategy<MyUiHandlers> >>>>>>>>>>> providerUiHandlersStrategyImpl) { >>>>>>>>>>> My error: >>>>>>>>>>> 17:02:42.928 [ERROR] [apapul] No implementation bound for key >>>>>>>>>>> Key[type=ca.ulaval.apapul.client.mvp.strategies.uihandlers.UiHandlersStrategy<ca.ulaval.apapul.client.core.member.MemberView$MyUiHandlers>, >>>>>>>>>>> [email protected]] >>>>>>>>>>> >>>>>>>>>>> MyUiHandlers is also an interface binded by Gin/Guice. Using the >>>>>>>>>>> implementation class instead the interface work, but I wanted to >>>>>>>>>>> use the >>>>>>>>>>> interface with an annotation. >>>>>>>>>>> >>>>>>>>>>> Btw, is this worth the pain ? That seem to be almost as if I was >>>>>>>>>>> using the implementation class anyway... >>>>>>>>>>> >>>>>>>>>>> Thanks and cheers, >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Christian Goudreau >>>>>>>>>>> www.arcbees.com >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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]<google-guice%[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]<google-guice%[email protected]> >>>>>>>>>> . >>>>>>>>>> For more options, visit this group at >>>>>>>>>> http://groups.google.com/group/google-guice?hl=en. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Christian Goudreau >>>>>>>>> www.arcbees.com >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Christian Goudreau >>>>>>>> www.arcbees.com >>>>>>>> >>>>>>>> -- >>>>>>>> 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]<google-guice%[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]<google-guice%[email protected]> >>>>>>> . >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/google-guice?hl=en. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Christian Goudreau >>>>>> www.arcbees.com >>>>>> >>>>>> -- >>>>>> 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]<google-guice%[email protected]> >>>>>> . >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/google-guice?hl=en. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Yaxin >>>>> >>>>> -- >>>>> 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]<google-guice%[email protected]> >>>>> . >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/google-guice?hl=en. >>>>> >>>> >>>> >>>> >>>> -- >>>> Christian Goudreau >>>> www.arcbees.com >>>> >>>> -- >>>> 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]<google-guice%[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]<google-guice%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/google-guice?hl=en. >>> >> >> >> >> -- >> Christian Goudreau >> www.arcbees.com >> >> -- >> 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]<google-guice%[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]<google-guice%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > -- Christian Goudreau www.arcbees.com -- 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.
