On Apr 14, 2010, at 4:17 PM, ljnelson wrote:
> On Wed, Apr 14, 2010 at 2:46 PM, Marc Hadley-2 [via Jersey]
> <[hidden email]> wrote:
> > On Apr 14, 2010, at 1:32 PM, ljnelson wrote:
> > The Type argument would be an instance of ParameterizedType whose getRawType
> > would return List.class and whose getActualTypeArguments() would return an
> > array of [String.class]. (I think).
>
> Another question on this sort of thing: the T that comes in to
> writeTo() in MessageBodyWriter is accompanied by a Class<?>. Was this
> supposed to be Class<T>? Or was the intent that any old class could
> show up here?
>
The isWritable method is responsible for filtering the types that the writeTo will be called for so you might get a subclass of T if you decide to support that.
> This leads to my next question. The first thing I need to do in my
> "chaining" MessageBodyWriter is to ask Providers for another one that
> matches. I'm armed at this point with a T, and a Class<?>. But
> Providers#getMessageBodyWriter() needs a Class argument that has as
> its parameter T. It would seem that I can't guarantee this. What's
> your advice?
>
If you use Class<?> then you'll get a MessageBodyWriter<?> which should still work fine for you. I'd probably go that way for a chaining writer that supports multiple types.
Marc.