SPR-6771 - HttpMessageConverter should accept Class<? extends T> on can read
This commit is contained in:
parent
1cda8cb6fa
commit
f2fdf9fa6b
|
|
@ -91,7 +91,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
|
|||
* #getSupportedMediaTypes() supported media types} {@linkplain MediaType#includes(MediaType) include} the given media
|
||||
* type.
|
||||
*/
|
||||
public boolean canRead(Class<? extends T> clazz, MediaType mediaType) {
|
||||
public boolean canRead(Class<?> clazz, MediaType mediaType) {
|
||||
return supports(clazz) && canRead(mediaType);
|
||||
}
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
|
|||
* #getSupportedMediaTypes() supported media types} {@linkplain MediaType#includes(MediaType) include} the given media
|
||||
* type.
|
||||
*/
|
||||
public boolean canWrite(Class<? extends T> clazz, MediaType mediaType) {
|
||||
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
|
||||
return supports(clazz) && canWrite(mediaType);
|
||||
}
|
||||
|
||||
|
|
@ -150,7 +150,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
|
|||
* @param clazz the class to test for support
|
||||
* @return <code>true</code> if supported; <code>false</code> otherwise
|
||||
*/
|
||||
protected abstract boolean supports(Class<? extends T> clazz);
|
||||
protected abstract boolean supports(Class<?> clazz);
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
|
|||
this.cacheDir = cacheDir;
|
||||
}
|
||||
|
||||
public boolean canRead(Class<? extends BufferedImage> clazz, MediaType mediaType) {
|
||||
public boolean canRead(Class<?> clazz, MediaType mediaType) {
|
||||
if (BufferedImage.class.equals(clazz)) {
|
||||
return isReadable(mediaType);
|
||||
}
|
||||
|
|
@ -130,7 +130,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
|
|||
return imageReaders.hasNext();
|
||||
}
|
||||
|
||||
public boolean canWrite(Class<? extends BufferedImage> clazz, MediaType mediaType) {
|
||||
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
|
||||
if (BufferedImage.class.equals(clazz)) {
|
||||
return isWritable(mediaType);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class ByteArrayHttpMessageConverter extends AbstractHttpMessageConverter<
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean supports(Class<? extends byte[]> clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return byte[].class.equals(clazz);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public class FormHttpMessageConverter extends AbstractHttpMessageConverter<Multi
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean supports(Class<? extends MultiValueMap<String, String>> clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return MultiValueMap.class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public interface HttpMessageConverter<T> {
|
|||
* @param mediaType the media type to read, can be {@code null} if not specified
|
||||
* @return <code>true</code> if readable; <code>false</code> otherwise
|
||||
*/
|
||||
boolean canRead(Class<? extends T> clazz, MediaType mediaType);
|
||||
boolean canRead(Class<?> clazz, MediaType mediaType);
|
||||
|
||||
/**
|
||||
* Indicates whether the given class can be written by this converter.
|
||||
|
|
@ -45,7 +45,7 @@ public interface HttpMessageConverter<T> {
|
|||
* @param mediaType the media type to write, can be {@code null} if not specified
|
||||
* @return <code>true</code> if writable; <code>false</code> otherwise
|
||||
*/
|
||||
boolean canWrite(Class<? extends T> clazz, MediaType mediaType);
|
||||
boolean canWrite(Class<?> clazz, MediaType mediaType);
|
||||
|
||||
/**
|
||||
* Return the list of {@link MediaType} objects supported by this converter.
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class StringHttpMessageConverter extends AbstractHttpMessageConverter<Str
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean supports(Class<? extends String> clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return String.class.equals(clazz);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ public class MarshallingHttpMessageConverter extends AbstractXmlHttpMessageConve
|
|||
this.unmarshaller = unmarshaller;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return unmarshaller.supports(clazz);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ import org.springframework.http.converter.HttpMessageNotWritableException;
|
|||
public class SourceHttpMessageConverter<T extends Source> extends AbstractXmlHttpMessageConverter<T> {
|
||||
|
||||
@Override
|
||||
public boolean supports(Class<? extends T> clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return DOMSource.class.equals(clazz) || SAXSource.class.equals(clazz) || StreamSource.class.equals(clazz) ||
|
||||
Source.class.equals(clazz);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,14 +43,14 @@ public class FormHttpMessageConverterTests {
|
|||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void canRead() {
|
||||
assertTrue(converter.canRead((Class<? extends MultiValueMap<String, String>>) MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded")));
|
||||
assertTrue(converter.canRead(MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded")));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void canWrite() {
|
||||
assertTrue(converter.canWrite((Class<? extends MultiValueMap<String, String>>) MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded")));
|
||||
assertTrue(converter.canWrite((Class<? extends MultiValueMap<String, String>>) MultiValueMap.class, MediaType.ALL));
|
||||
assertTrue(converter.canWrite(MultiValueMap.class, new MediaType("application", "x-www-form-urlencoded")));
|
||||
assertTrue(converter.canWrite(MultiValueMap.class, MediaType.ALL));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public class HttpMessageConverterTests {
|
|||
public void canRead() {
|
||||
AbstractHttpMessageConverter<MyType> converter = new MyHttpMessageConverter<MyType>(MEDIA_TYPE) {
|
||||
@Override
|
||||
protected boolean supports(Class<? extends MyType> clazz) {
|
||||
protected boolean supports(Class<?> clazz) {
|
||||
return MyType.class.equals(clazz);
|
||||
}
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ public class HttpMessageConverterTests {
|
|||
public void canWrite() {
|
||||
AbstractHttpMessageConverter<MyType> converter = new MyHttpMessageConverter<MyType>(MEDIA_TYPE) {
|
||||
@Override
|
||||
protected boolean supports(Class<? extends MyType> clazz) {
|
||||
protected boolean supports(Class<?> clazz) {
|
||||
return MyType.class.equals(clazz);
|
||||
}
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ public class HttpMessageConverterTests {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected boolean supports(Class<? extends T> clazz) {
|
||||
protected boolean supports(Class<?> clazz) {
|
||||
fail("Not expected");
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,15 +43,12 @@ public class Jaxb2RootElementHttpMessageConverterTest {
|
|||
|
||||
private RootElement rootElement;
|
||||
|
||||
private Type type;
|
||||
|
||||
private RootElement rootElementCglib;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
converter = new Jaxb2RootElementHttpMessageConverter();
|
||||
rootElement = new RootElement();
|
||||
type = new Type();
|
||||
DefaultAopProxyFactory proxyFactory = new DefaultAopProxyFactory();
|
||||
AdvisedSupport advisedSupport = new AdvisedSupport();
|
||||
advisedSupport.setTarget(rootElement);
|
||||
|
|
|
|||
Loading…
Reference in New Issue