Package org.eclipse.jetty.util
Interface CharsetStringBuilder
- All Known Implementing Classes:
CharsetStringBuilder.DecoderStringBuilder,CharsetStringBuilder.Iso88591StringBuilder,CharsetStringBuilder.UsAsciiStringBuilder
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.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classstatic classstatic class -
Method Summary
Modifier and TypeMethodDescriptionvoidappend(byte b) default voidappend(byte[] bytes) default voidappend(byte[] b, int offset, int length) voidappend(char c) default voidappend(CharSequence chars, int offset, int length) default voidappend(ByteBuffer buf) build()Build the completed string and reset the buffer.static CharsetStringBuilderforCharset(Charset charset) voidreset()
-
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 bytesoffset- offset into the arraylength- the number of bytes to append from the array.
-
append
- Parameters:
chars- sequence of decoded charactersoffset- offset into the arraylength- the number of character to append from the sequence.
-
append
- 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.
-
reset
void reset() -
forCharset
- Parameters:
charset- The charset- Returns:
- A
CharsetStringBuildersuitable for the charset.
-