private static class Utf8.DecodeUtil
extends java.lang.Object
String. Callers are responsible for extracting
bytes (possibly using Unsafe methods), and checking remaining bytes. All other UTF-8 validity
checks and codepoint conversion happen in this class.| Modifier | Constructor and Description |
|---|---|
private |
DecodeUtil() |
| Modifier and Type | Method and Description |
|---|---|
private static void |
handleFourBytes(byte byte1,
byte byte2,
byte byte3,
byte byte4,
char[] resultArr,
int resultPos) |
private static void |
handleOneByte(byte byte1,
char[] resultArr,
int resultPos) |
private static void |
handleThreeBytes(byte byte1,
byte byte2,
byte byte3,
char[] resultArr,
int resultPos) |
private static void |
handleTwoBytes(byte byte1,
byte byte2,
char[] resultArr,
int resultPos) |
private static char |
highSurrogate(int codePoint) |
private static boolean |
isNotTrailingByte(byte b)
Returns whether the byte is not a valid continuation of the form '10XXXXXX'.
|
private static boolean |
isOneByte(byte b)
Returns whether this is a single-byte codepoint (i.e., ASCII) with the form '0XXXXXXX'.
|
private static boolean |
isThreeBytes(byte b)
Returns whether this is a three-byte codepoint with the form '110XXXXX'.
|
private static boolean |
isTwoBytes(byte b)
Returns whether this is a two-byte codepoint with the form '10XXXXXX'.
|
private static char |
lowSurrogate(int codePoint) |
private static int |
trailingByteValue(byte b)
Returns the actual value of the trailing byte (removes the prefix '10') for composition.
|
private static boolean isOneByte(byte b)
private static boolean isTwoBytes(byte b)
private static boolean isThreeBytes(byte b)
private static void handleOneByte(byte byte1,
char[] resultArr,
int resultPos)
private static void handleTwoBytes(byte byte1,
byte byte2,
char[] resultArr,
int resultPos)
throws InvalidProtocolBufferException
InvalidProtocolBufferExceptionprivate static void handleThreeBytes(byte byte1,
byte byte2,
byte byte3,
char[] resultArr,
int resultPos)
throws InvalidProtocolBufferException
InvalidProtocolBufferExceptionprivate static void handleFourBytes(byte byte1,
byte byte2,
byte byte3,
byte byte4,
char[] resultArr,
int resultPos)
throws InvalidProtocolBufferException
InvalidProtocolBufferExceptionprivate static boolean isNotTrailingByte(byte b)
private static int trailingByteValue(byte b)
private static char highSurrogate(int codePoint)
private static char lowSurrogate(int codePoint)