Package org.eclipse.jetty.util
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.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic class
static class
static class
Extended Utf8StringBuilder that mimicsCodingErrorAction.REPORT
behaviour forCharsetStringBuilder
methods.static class
-
Method Summary
Modifier and TypeMethodDescriptionvoid
append
(byte b) default void
append
(byte[] bytes) default void
append
(byte[] b, int offset, int length) void
append
(char c) default void
append
(CharSequence chars, int offset, int length) default void
append
(ByteBuffer buf) build()
Build the completed string and reset the buffer.static CharsetStringBuilder
forCharset
(Charset charset) int
length()
void
reset()
Resets this sequence to be empty.
-
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.
-
length
int length()- Returns:
- the length in characters
-
reset
void reset()Resets this sequence to be empty.
-
forCharset
- Parameters:
charset
- The charset- Returns:
- A
CharsetStringBuilder
suitable for the charset.
-