On Tuesday, May 22, 2012 11:41:14 AM UTC+2, tanteanni wrote: > > thx thomas for fast reply, > > the problem is indeed that two instances are created one " > PlaceHistoryMapperWithFactory<TokenizerFactory> " instance and one > instances where constructors inject "AppPlaceHistoryMapper" (this one has > null factory). > But how to fix this? Your suggested provides-Code shouldn't change > anything, should it? >
It depends. If you have code that depends on AppPlaceHistoryMapper, then change the return type of the provider-method to that. And if some code depends on PlaceHistoryMapperWithFactory<TokenizerFactory>, and/or PlaceHistoryMapper, then bind those types to AppPlaceHistoryMapper (see below). > So I tried your 2nd suggestion: > plus this in module: > >> bind(new >>> TypeLiteral<PlaceHistoryMapperWithFactory<TokenizerFactory>>() { >> >> }).to(AppPlaceHistoryMapper.class).in(Singleton.class); >> >> *It is working! * > But with this every user of AppPlaceHistoryMapper get a different instance > - (i guess this is not really a problem) - is it possible to get/bind a > singleton. > Is it possible to bind AppPlaceHistoryMapper > and PlaceHistoryMapperWithFactory<TokenizerFactory> to the same instance > of generated AppPlaceHistoryMapper Impl? > Yes: bind(new TypeLiteral<PlaceHistoryMapperWithFactory<TokenizerFactory>>() { }).to(AppPlaceHistoryMapper.class); bind(AppPlaceHistoryMapper.class).in(Singleton.class); // either that, or a @Provides @Singleton method. i.e.: when you need a PlaceHistoryMapperWithFactory<TokenizerFactory>, then use an AppPlaceHistoryMapper; and when you need an AppPlaceHistoryMapper, then bind it as a singleton. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/AVICBhOkwTUJ. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.