Package org.eclipse.jetty.util
Interface CharsetStringBuilder
-
- All Known Implementing Classes:
CharsetStringBuilder.DecoderStringBuilder,CharsetStringBuilder.Iso88591StringBuilder,CharsetStringBuilder.UsAsciiStringBuilder
public interface CharsetStringBuilderBuild 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 standardCharsetDecoderAPI is not well suited for this use-case.Any coding errors in the string will be reported by a
CharacterCodingExceptionthrown 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 classCharsetStringBuilder.DecoderStringBuilderstatic classCharsetStringBuilder.Iso88591StringBuilderstatic classCharsetStringBuilder.UsAsciiStringBuilder
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidappend(byte b)default voidappend(byte[] bytes)default voidappend(byte[] b, int offset, int length)voidappend(char c)default voidappend(java.lang.CharSequence chars, int offset, int length)default voidappend(java.nio.ByteBuffer buf)java.lang.Stringbuild()Build the completed string and reset the buffer.static CharsetStringBuilderforCharset(java.nio.charset.Charset charset)voidreset()
-
-
-
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.CharacterCodingExceptionBuild 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
CharsetStringBuildersuitable for the charset.
-
-