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 standardCharsetDecoder
API is not well suited for this use-case.Any coding errors in the string will be reported by a
CharacterCodingException
thrown from thebuild()
method.- See Also:
for UTF-8 decoding with replacement of coding errors and/or fast fail behaviour.
,for decoding arbitrary s with control over .
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
CharsetStringBuilder.DecoderStringBuilder
static class
CharsetStringBuilder.Iso88591StringBuilder
static class
CharsetStringBuilder.UsAsciiStringBuilder
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
append(byte b)
default void
append(byte[] bytes)
default void
append(byte[] b, int offset, int length)
void
append(char c)
default void
append(java.lang.CharSequence chars, int offset, int length)
default void
append(java.nio.ByteBuffer buf)
java.lang.String
build()
Build the completed string and reset the buffer.static CharsetStringBuilder
forCharset(java.nio.charset.Charset charset)
void
reset()
-
-
-
Method Detail
-
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
default void append(java.lang.CharSequence chars, int offset, int length)
- Parameters:
chars
- sequence of decoded charactersoffset
- offset into the arraylength
- the number of character to append from the sequence.
-
append
default void append(java.nio.ByteBuffer buf)
- Parameters:
buf
- Buffer of encoded bytes to append. The bytes are consumed from the buffer.
-
build
java.lang.String build() throws java.nio.charset.CharacterCodingException
Build the completed string and reset the buffer.
- Returns:
- The decoded built string which must be complete in regard to any multibyte sequences.
- Throws:
java.nio.charset.CharacterCodingException
- If the bytes cannot be correctly decoded or a multibyte sequence is incomplete.
-
reset
void reset()
-
forCharset
static CharsetStringBuilder forCharset(java.nio.charset.Charset charset)
- Parameters:
charset
- The charset- Returns:
- A
CharsetStringBuilder
suitable for the charset.
-
-