|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2022 the original author or authors. |
|
|
|
* Copyright 2002-2024 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -52,22 +52,6 @@ public class ResourceRegionHttpMessageConverter extends AbstractGenericHttpMessa |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
|
|
|
protected MediaType getDefaultContentType(Object object) { |
|
|
|
|
|
|
|
Resource resource = null; |
|
|
|
|
|
|
|
if (object instanceof ResourceRegion resourceRegion) { |
|
|
|
|
|
|
|
resource = resourceRegion.getResource(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else { |
|
|
|
|
|
|
|
Collection<ResourceRegion> regions = (Collection<ResourceRegion>) object; |
|
|
|
|
|
|
|
if (!regions.isEmpty()) { |
|
|
|
|
|
|
|
resource = regions.iterator().next().getResource(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return MediaTypeFactory.getMediaType(resource).orElse(MediaType.APPLICATION_OCTET_STREAM); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public boolean canRead(Class<?> clazz, @Nullable MediaType mediaType) { |
|
|
|
public boolean canRead(Class<?> clazz, @Nullable MediaType mediaType) { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
@ -119,7 +103,6 @@ public class ResourceRegionHttpMessageConverter extends AbstractGenericHttpMessa |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
|
|
|
protected void writeInternal(Object object, @Nullable Type type, HttpOutputMessage outputMessage) |
|
|
|
protected void writeInternal(Object object, @Nullable Type type, HttpOutputMessage outputMessage) |
|
|
|
throws IOException, HttpMessageNotWritableException { |
|
|
|
throws IOException, HttpMessageNotWritableException { |
|
|
|
|
|
|
|
|
|
|
|
@ -127,6 +110,7 @@ public class ResourceRegionHttpMessageConverter extends AbstractGenericHttpMessa |
|
|
|
writeResourceRegion(resourceRegion, outputMessage); |
|
|
|
writeResourceRegion(resourceRegion, outputMessage); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
Collection<ResourceRegion> regions = (Collection<ResourceRegion>) object; |
|
|
|
Collection<ResourceRegion> regions = (Collection<ResourceRegion>) object; |
|
|
|
if (regions.size() == 1) { |
|
|
|
if (regions.size() == 1) { |
|
|
|
writeResourceRegion(regions.iterator().next(), outputMessage); |
|
|
|
writeResourceRegion(regions.iterator().next(), outputMessage); |
|
|
|
@ -137,6 +121,22 @@ public class ResourceRegionHttpMessageConverter extends AbstractGenericHttpMessa |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
protected MediaType getDefaultContentType(Object object) { |
|
|
|
|
|
|
|
Resource resource = null; |
|
|
|
|
|
|
|
if (object instanceof ResourceRegion resourceRegion) { |
|
|
|
|
|
|
|
resource = resourceRegion.getResource(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else { |
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
|
|
|
Collection<ResourceRegion> regions = (Collection<ResourceRegion>) object; |
|
|
|
|
|
|
|
if (!regions.isEmpty()) { |
|
|
|
|
|
|
|
resource = regions.iterator().next().getResource(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return MediaTypeFactory.getMediaType(resource).orElse(MediaType.APPLICATION_OCTET_STREAM); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void writeResourceRegion(ResourceRegion region, HttpOutputMessage outputMessage) throws IOException { |
|
|
|
protected void writeResourceRegion(ResourceRegion region, HttpOutputMessage outputMessage) throws IOException { |
|
|
|
Assert.notNull(region, "ResourceRegion must not be null"); |
|
|
|
Assert.notNull(region, "ResourceRegion must not be null"); |
|
|
|
|