Basically I need to see if an injection is available and glean
additional information from that resource. It's absence, however, is
acceptable and not considered a failure state. If there was a way to
detect if I was in a scope, I could also use that in this specific
situation. Something like ServletScopes.REQUEST.applicable().

On Jan 11, 6:59 pm, Fred Faber <[email protected]> wrote:
> As you describe it, no, there isn't a super elegant improvement you can
> make.  Other than, perhaps, injecting Provider<HttpServletRequest> and then
> invoking get() in the try block.
>
> There might be a better solution to the general problem, however.  What is
> the general problem?
>
>
>
>
>
>
>
> On Tue, Jan 11, 2011 at 8:46 PM, Ambience <[email protected]> wrote:
> > I need to inject a field only if it is available in the current scope,
> > and null otherwise. For example:
>
> > public class Thinger implements Provider<SomeSuch> {
> >    public @Inject(optional=true) HttpServletRequest request;
>
> >    public SomeSuch get() {
> >        return request == null ? new WhosIt() : WhatsIt();
> >    }
> > }
> > However, if HttpServletRequest is bound (which it is) but not in
> > scope, I get a ProvisioningException. I have not been able to find an
> > elegant way to do this so I am relegated to do something like.
>
> > HttpServletRequest request = null;
> > try {
> >    request = injector.getInstance(HttpServletRequest.class);
> > } catch(ProvisioningException e) {}
>
> > Which just feels all manner of wrong. Is there a proper way to do this?
>
> > --
> > 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%2bunsubscr...@google 
> > groups.com>
> > .
> > 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].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to