Interface CharsetStringBuilder

All Known Implementing Classes:
CharsetStringBuilder.DecoderStringBuilder, CharsetStringBuilder.Iso88591StringBuilder, CharsetStringBuilder.ReportingUtf8StringBuilder, CharsetStringBuilder.UsAsciiStringBuilder, NullAppendable, Utf8StringBuilder

public interface CharsetStringBuilder

Build a string from a sequence of bytes and/or characters.

Implementations of this interface are optimized for processing a mix of calls to already decoded character based appends (e.g. append(char) and calls to undecoded byte methods (e.g. append(byte). This is particularly useful for decoding % encoded strings that are mostly already decoded but may contain escaped byte sequences that are not decoded. The standard CharsetDecoder API is not well suited for this use-case.

Any coding errors in the string will be reported by a CharacterCodingException thrown from the build() method.

See Also:
  • Method Details

    • append

      void append(byte b)
      Parameters:
      b - An encoded byte to append
    • append

      void append(char c)
      Parameters:
      c - A decoded character to append
    • append

      default void append(byte[] bytes)
      Parameters:
      bytes - Array of encoded bytes to append
    • append

      default void append(byte[] b, int offset, int length)
      Parameters:
      b - Array of encoded bytes
      offset - offset into the array
      length - the number of bytes to append from the array.
    • append

      default void append(CharSequence chars, int offset, int length)
      Parameters:
      chars - sequence of decoded characters
      offset - offset into the array
      length - the number of character to append from the sequence.
    • append

      default void append(ByteBuffer buf)
      Parameters:
      buf - Buffer of encoded bytes to append. The bytes are consumed from the buffer.
    • build

      Build the completed string and reset the buffer.

      Returns:
      The decoded built string which must be complete in regard to any multibyte sequences.
      Throws:
      CharacterCodingException - If the bytes cannot be correctly decoded or a multibyte sequence is incomplete.
    • length

      int length()
      Returns:
      the length in characters
    • reset

      void reset()

      Resets this sequence to be empty.

    • forCharset

      static CharsetStringBuilder forCharset(Charset charset)
      Parameters:
      charset - The charset
      Returns:
      A CharsetStringBuilder suitable for the charset.