Package com.google.protobuf
Class Utf8.DecodeUtil
- java.lang.Object
-
- com.google.protobuf.Utf8.DecodeUtil
-
- Enclosing class:
- Utf8
private static class Utf8.DecodeUtil extends java.lang.ObjectUtility methods for decoding bytes intoString. 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.
-
-
Constructor Summary
Constructors Modifier Constructor Description privateDecodeUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static voidhandleFourBytes(byte byte1, byte byte2, byte byte3, byte byte4, char[] resultArr, int resultPos)private static voidhandleOneByte(byte byte1, char[] resultArr, int resultPos)private static voidhandleThreeBytes(byte byte1, byte byte2, byte byte3, char[] resultArr, int resultPos)private static voidhandleTwoBytes(byte byte1, byte byte2, char[] resultArr, int resultPos)private static charhighSurrogate(int codePoint)private static booleanisNotTrailingByte(byte b)Returns whether the byte is not a valid continuation of the form '10XXXXXX'.private static booleanisOneByte(byte b)Returns whether this is a single-byte codepoint (i.e., ASCII) with the form '0XXXXXXX'.private static booleanisThreeBytes(byte b)Returns whether this is a three-byte codepoint with the form '110XXXXX'.private static booleanisTwoBytes(byte b)Returns whether this is a two-byte codepoint with the form '10XXXXXX'.private static charlowSurrogate(int codePoint)private static inttrailingByteValue(byte b)Returns the actual value of the trailing byte (removes the prefix '10') for composition.
-
-
-
Method Detail
-
isOneByte
private static boolean isOneByte(byte b)
Returns whether this is a single-byte codepoint (i.e., ASCII) with the form '0XXXXXXX'.
-
isTwoBytes
private static boolean isTwoBytes(byte b)
Returns whether this is a two-byte codepoint with the form '10XXXXXX'.
-
isThreeBytes
private static boolean isThreeBytes(byte b)
Returns whether this is a three-byte codepoint with the form '110XXXXX'.
-
handleOneByte
private static void handleOneByte(byte byte1, char[] resultArr, int resultPos)
-
handleTwoBytes
private static void handleTwoBytes(byte byte1, byte byte2, char[] resultArr, int resultPos) throws InvalidProtocolBufferException- Throws:
InvalidProtocolBufferException
-
handleThreeBytes
private static void handleThreeBytes(byte byte1, byte byte2, byte byte3, char[] resultArr, int resultPos) throws InvalidProtocolBufferException- Throws:
InvalidProtocolBufferException
-
handleFourBytes
private static void handleFourBytes(byte byte1, byte byte2, byte byte3, byte byte4, char[] resultArr, int resultPos) throws InvalidProtocolBufferException- Throws:
InvalidProtocolBufferException
-
isNotTrailingByte
private static boolean isNotTrailingByte(byte b)
Returns whether the byte is not a valid continuation of the form '10XXXXXX'.
-
trailingByteValue
private static int trailingByteValue(byte b)
Returns the actual value of the trailing byte (removes the prefix '10') for composition.
-
highSurrogate
private static char highSurrogate(int codePoint)
-
lowSurrogate
private static char lowSurrogate(int codePoint)
-
-