4444 *
4545 * @since 5.3
4646 */
47- public class ContentTypeDelegatingDataMarshaller < T > implements DataMarshaller <byte [], T , String > {
47+ public class ContentTypeDelegatingDataMarshaller implements DataMarshaller <byte [], Object , String > {
4848
4949 private final DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory ();
5050
5151 private final List <Encoder <?>> encoders = new ArrayList <>();
5252
53- @ SafeVarargs
54- public ContentTypeDelegatingDataMarshaller (Encoder <T >... encoders ) {
53+ public ContentTypeDelegatingDataMarshaller (Encoder <?>... encoders ) {
5554 this .encoders .add (CharSequenceEncoder .allMimeTypes ());
5655 setEncoders (encoders );
5756 }
5857
59- @ SafeVarargs
60- public final void setEncoders (Encoder <T >... encoders ) {
58+ public final void setEncoders (Encoder <?>... encoders ) {
6159 Assert .notNull (encoders , "'encoders' must not be null" );
6260 Assert .noNullElements (encoders , "'encoders' must not contain null elements" );
6361 this .encoders .addAll (Arrays .asList (encoders ));
6462 }
6563
6664 @ Override
6765 @ SuppressWarnings ({ "unchecked" , "rawtypes" })
68- public byte [] marshal (T data , Map <String , String > headers ) throws RuntimeException {
66+ public byte [] marshal (Object data , Map <String , String > headers ) throws RuntimeException {
6967 String contentType = headers .get (MessageHeaders .CONTENT_TYPE );
7068 if (contentType == null ) { // Assume JSON by default
7169 return Json .binaryMarshal (data , headers );
7270 }
7371 else {
7472 ResolvableType elementType = ResolvableType .forClass (data .getClass ());
7573 MimeType mimeType = MimeType .valueOf (contentType );
76- Encoder <T > encoder = encoder (elementType , mimeType );
74+ Encoder <Object > encoder = encoder (elementType , mimeType );
7775 DataBuffer dataBuffer =
7876 encoder .encodeValue (data , this .dataBufferFactory , elementType ,
7977 mimeType , (Map <String , Object >) (Map ) headers );
@@ -86,10 +84,10 @@ public byte[] marshal(T data, Map<String, String> headers) throws RuntimeExcepti
8684 }
8785
8886 @ SuppressWarnings ("unchecked" )
89- private Encoder <T > encoder (ResolvableType elementType , MimeType mimeType ) {
87+ private Encoder <Object > encoder (ResolvableType elementType , MimeType mimeType ) {
9088 for (Encoder <?> encoder : this .encoders ) {
9189 if (encoder .canEncode (elementType , mimeType )) {
92- return (Encoder <T >) encoder ;
90+ return (Encoder <Object >) encoder ;
9391 }
9492 }
9593 throw new IllegalArgumentException ("No encoder for " + elementType );
0 commit comments