public class ResourceRegionEncoder extends AbstractEncoder<ResourceRegion>
ResourceRegion
s.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
BOUNDARY_STRING_HINT |
private int |
bufferSize |
static int |
DEFAULT_BUFFER_SIZE |
Constructor and Description |
---|
ResourceRegionEncoder() |
ResourceRegionEncoder(int bufferSize) |
Modifier and Type | Method and Description |
---|---|
boolean |
canEncode(ResolvableType elementType,
MimeType mimeType)
Whether the encoder supports the given source element type and the MIME
type for the output stream.
|
private java.util.OptionalLong |
contentLength(Resource resource)
Determine, if possible, the contentLength of the given resource without reading it.
|
<any> |
encode(<any> inputStream,
DataBufferFactory bufferFactory,
ResolvableType elementType,
MimeType mimeType,
java.util.Map<java.lang.String,java.lang.Object> hints)
Encode a stream of Objects of type
T into a DataBuffer
output stream. |
private byte[] |
getAsciiBytes(java.lang.String in) |
private byte[] |
getContentRangeHeader(ResourceRegion region) |
private <any> |
getRegionPrefix(DataBufferFactory bufferFactory,
byte[] startBoundary,
byte[] contentType,
ResourceRegion region) |
private <any> |
getRegionSuffix(DataBufferFactory bufferFactory,
java.lang.String boundaryString) |
private <any> |
writeResourceRegion(ResourceRegion region,
DataBufferFactory bufferFactory) |
getEncodableMimeTypes
public static final int DEFAULT_BUFFER_SIZE
public static final java.lang.String BOUNDARY_STRING_HINT
private final int bufferSize
public ResourceRegionEncoder()
public ResourceRegionEncoder(int bufferSize)
public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType)
Encoder
canEncode
in interface Encoder<ResourceRegion>
canEncode
in class AbstractEncoder<ResourceRegion>
elementType
- the type of elements in the source streammimeType
- the MIME type for the output stream
(can be null
if not specified)true
if supported, false
otherwisepublic <any> encode(<any> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable java.util.Map<java.lang.String,java.lang.Object> hints)
Encoder
T
into a DataBuffer
output stream.inputStream
- the input stream of Objects to encode. If the input should be
encoded as a single value rather than as a stream of elements, an instance of
Mono
should be used.bufferFactory
- for creating output stream DataBuffer
'selementType
- the expected type of elements in the input stream;
this type must have been previously passed to the Encoder.canEncode(org.springframework.core.ResolvableType, org.springframework.util.MimeType)
method and it must have returned true
.mimeType
- the MIME type for the output stream (optional)hints
- additional information about how to do encodeprivate <any> getRegionPrefix(DataBufferFactory bufferFactory, byte[] startBoundary, byte[] contentType, ResourceRegion region)
private <any> writeResourceRegion(ResourceRegion region, DataBufferFactory bufferFactory)
private <any> getRegionSuffix(DataBufferFactory bufferFactory, java.lang.String boundaryString)
private byte[] getAsciiBytes(java.lang.String in)
private byte[] getContentRangeHeader(ResourceRegion region)
private java.util.OptionalLong contentLength(Resource resource)
resource
- the resource instance