Class CharBufferDecoder

All Implemented Interfaces:
Decoder<CharBuffer>

public final class CharBufferDecoder extends AbstractCharSequenceDecoder<CharBuffer>
Decode from a data buffer stream to a CharBuffer stream, either splitting or aggregating incoming data chunks to realign along newlines delimiters and produce a stream of char buffers. This is useful for streaming but is also necessary to ensure that multi-byte characters can be decoded correctly, avoiding split-character issues. The default delimiters used by default are \n and \r\n but that can be customized.
Since:
6.1
Author:
Markus Heiden, Arjen Poutsma
See Also:
  • Constructor Details

    • CharBufferDecoder

      public CharBufferDecoder(List<String> delimiters, boolean stripDelimiter, MimeType... mimeTypes)
  • 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<CharBuffer>
      Overrides:
      canDecode in class AbstractDecoder<CharBuffer>
      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
    • decodeInternal

      protected CharBuffer decodeInternal(DataBuffer dataBuffer, Charset charset)
      Description copied from class: AbstractCharSequenceDecoder
      Template method that decodes the given data buffer into T, given the charset.
      Specified by:
      decodeInternal in class AbstractCharSequenceDecoder<CharBuffer>
    • textPlainOnly

      public static CharBufferDecoder textPlainOnly()
      Create a CharBufferDecoder for "text/plain".
    • textPlainOnly

      public static CharBufferDecoder textPlainOnly(List<String> delimiters, boolean stripDelimiter)
      Create a CharBufferDecoder for "text/plain".
      Parameters:
      delimiters - delimiter strings to use to split the input stream
      stripDelimiter - whether to remove delimiters from the resulting input strings
    • allMimeTypes

      public static CharBufferDecoder allMimeTypes()
      Create a CharBufferDecoder that supports all MIME types.
    • allMimeTypes

      public static CharBufferDecoder allMimeTypes(List<String> delimiters, boolean stripDelimiter)
      Create a CharBufferDecoder that supports all MIME types.
      Parameters:
      delimiters - delimiter strings to use to split the input stream
      stripDelimiter - whether to remove delimiters from the resulting input strings