Yea, we considered this very early on, with providing the InjectionPoint itself to a provider. But it didn't materialize then and there hasn't been much demand since (InjectionListeners also solve the problem orthogonally, as you note). Dhanji.
On Fri, Jul 31, 2009 at 6:44 AM, Michael Burton <[email protected]> wrote: > > Well, I couldn't wait, so I walked through what guiceyfruit was doing > and managed to accomplish what I needed using a custom TypeListener > and MembersInjector (without guiceyfruit). > > Works great! I'm quite pleased with the result. For anyone looking > to solve this problem in the future, I recommend using this solution > (or guiceyfruit, which is more polished). It would be grand if Guice > supported it directly, but as a workaround this solution seems > scalable and pretty efficient. I had thought it wasn't possible > previously, but now at least I know it is even if it's not as > convenient as a standard Provider. > > Thanks James, > > Mike > > > > > > On Jul 30, 11:44 am, Michael Burton <[email protected]> wrote: > > Great James, it looks like that's very much along the lines of what > > I'm looking for. I'll try it out sometime in the next few weeks. > > > > It seems like I've been reading a lot of "yeah that would be nice" > > posts about being able to read attribute values from within > > providers. It certainly would help me for Android and other > > projects. Guice maintainers, any thoughts about incorporating this > > into Guice? > > > > Cheers, > > Mike > > > > > > > > > GuiceyFruit currently focusses on using an annotation to specify a > > > parameterised injection point (like @Resource) which only tends to > > > work on a field or property injection point - not on annotations on > > > parameters at a regular @Inject injection point. > > > > > If you did it more like this... > > > > > @StringResource(R.string.foobar) > > > public void setString( String foobar) > > > > > then you could bind the StringResource annotation as an injection > > > point like the way @Resource is supported; you can then write a kind > > > of provider which takes the StringResource annotation and uses its > > > values to create an object. > > > > > e.g. > > > > >http://code.google.com/p/guiceyfruit/source/browse/trunk/guiceyfruit-. > .. > > > > > for code sharing reasons much of the heavy lifting is actually in this > > > base class > > > > >http://code.google.com/p/guiceyfruit/source/browse/trunk/guiceyfruit-. > .. > > > > > So in GuiceyFruit you'd implement a class which extends > > > AnnotationMemberProviderSupport<StringResource> then you bind it in > > > your GuiceyFruitModule via the bindAnnotationInjector() method > > >http://code.google.com/p/guiceyfruit/source/browse/trunk/guiceyfruit-. > .. > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
