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.Object
Utility 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 private
DecodeUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method 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.
-
-
-
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)
-
-