Class DataBufferDecoder

All Implemented Interfaces:
Decoder<DataBuffer>

public class DataBufferDecoder extends AbstractDataBufferDecoder<DataBuffer>
Simple pass-through decoder for DataBuffers.

Note: The data buffers should be released via DataBufferUtils.release(DataBuffer) after they have been consumed. In addition, if using Flux or Mono operators such as flatMap, reduce, and others that prefetch, cache, and skip or filter out data items internally, please add doOnDiscard(DataBuffer.class, DataBufferUtils::release) to the composition chain to ensure cached data buffers are released prior to an error or cancellation signal.

Since:
5.0
Author:
Arjen Poutsma, Rossen Stoyanchev
  • Constructor Details

    • DataBufferDecoder

      public DataBufferDecoder()
  • Method Details

    • canDecode

      public boolean canDecode(ResolvableType elementType, @Nullable MimeType mimeType)
      Description copied from interface: Decoder
      Whether the decoder supports the given target element type and the MIME type of the source stream.
      Specified by:
      canDecode in interface Decoder<DataBuffer>
      Overrides:
      canDecode in class AbstractDecoder<DataBuffer>
      Parameters:
      elementType - the target element type for the output stream
      mimeType - the mime type associated with the stream to decode (can be null if not specified)
      Returns:
      true if supported, false otherwise
    • decode

      public reactor.core.publisher.Flux<DataBuffer> decode(Publisher<DataBuffer> input, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String,Object> hints)
      Description copied from interface: Decoder
      Decode a DataBuffer input stream into a Flux of T.
      Specified by:
      decode in interface Decoder<DataBuffer>
      Overrides:
      decode in class AbstractDataBufferDecoder<DataBuffer>
      Parameters:
      input - the DataBuffer input stream to decode
      elementType - the expected type of elements in the output stream; this type must have been previously passed to the Decoder.canDecode(ResolvableType, MimeType) method and it must have returned true.
      mimeType - the MIME type associated with the input stream (optional)
      hints - additional information about how to do decode
      Returns:
      the output stream with decoded elements
    • decode

      public DataBuffer decode(DataBuffer buffer, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String,Object> hints)
      Description copied from interface: Decoder
      Decode a data buffer to an Object of type T. This is useful for scenarios, that distinct messages (or events) are decoded and handled individually, in fully aggregated form.
      Parameters:
      buffer - the DataBuffer to decode
      elementType - the expected output type
      mimeType - the MIME type associated with the data
      hints - additional information about how to do decode
      Returns:
      the decoded value, possibly null