Class TextFormat
java.lang.Object
io.protostuff.parser.TextFormat
Provide ascii text parsing and formatting support for proto2 instances. The implementation largely follows
google/protobuf/text_format.cc.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classThrown byunescapeBytes(CharSequence)andunescapeText(String)when an invalid escape sequence is seen. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static intdigitValue(char c) Interpret a character as a digit (in any base up to 36) and return the numeric value.(package private) static StringBuilderescapeBytes(ByteBuffer input) Escapes bytes in the format used in protocol buffer text format, which is the same as the format used for C string literals.(package private) static StringescapeText(String input) LikeescapeBytes(ByteString), but escapes a text string.private static booleanisHex(char c) Is this a hex digit?private static booleanisOctal(char c) Is this an octal digit?(package private) static intparseInt32(String text) Parse a 32-bit signed integer from the text.(package private) static longparseInt64(String text) Parse a 64-bit signed integer from the text.private static longparseInteger(String text, boolean isSigned, boolean isLong) (package private) static intparseUInt32(String text) Parse a 32-bit unsigned integer from the text.(package private) static longparseUInt64(String text) Parse a 64-bit unsigned integer from the text.(package private) static ByteBufferunescapeBytes(CharSequence input) Un-escape a byte sequence as escaped usingescapeBytes(ByteString).(package private) static StringunescapeText(String input) Un-escape a text string as escaped usingescapeText(String).
-
Field Details
-
UTF8
-
ISO_8859_1
-
-
Constructor Details
-
TextFormat
private TextFormat()
-
-
Method Details
-
escapeBytes
Escapes bytes in the format used in protocol buffer text format, which is the same as the format used for C string literals. All bytes that are not printable 7-bit ASCII characters are escaped, as well as backslash, single-quote, and double-quote characters. Characters for which no defined short-hand escape sequence is defined will be escaped using 3-digit octal sequences. -
unescapeBytes
Un-escape a byte sequence as escaped usingescapeBytes(ByteString). Two-digit hex escapes (starting with "\x") are also recognized. -
escapeText
LikeescapeBytes(ByteString), but escapes a text string. Non-ASCII characters are first encoded as UTF-8, then each byte is escaped individually as a 3-digit octal escape. Yes, it's weird. -
unescapeText
Un-escape a text string as escaped usingescapeText(String). Two-digit hex escapes (starting with "\x") are also recognized. -
isOctal
private static boolean isOctal(char c) Is this an octal digit? -
isHex
private static boolean isHex(char c) Is this a hex digit? -
digitValue
private static int digitValue(char c) Interpret a character as a digit (in any base up to 36) and return the numeric value. This is likeCharacter.digit()but we don't accept non-ASCII digits. -
parseInt32
Parse a 32-bit signed integer from the text. Unlike the Java standardInteger.parseInt(), this function recognizes the prefixes "0x" and "0" to signify hexidecimal and octal numbers, respectively.- Throws:
NumberFormatException
-
parseUInt32
Parse a 32-bit unsigned integer from the text. Unlike the Java standardInteger.parseInt(), this function recognizes the prefixes "0x" and "0" to signify hexidecimal and octal numbers, respectively. The result is coerced to a (signed)intwhen returned since Java has no unsigned integer type.- Throws:
NumberFormatException
-
parseInt64
Parse a 64-bit signed integer from the text. Unlike the Java standardInteger.parseInt(), this function recognizes the prefixes "0x" and "0" to signify hexidecimal and octal numbers, respectively.- Throws:
NumberFormatException
-
parseUInt64
Parse a 64-bit unsigned integer from the text. Unlike the Java standardInteger.parseInt(), this function recognizes the prefixes "0x" and "0" to signify hexidecimal and octal numbers, respectively. The result is coerced to a (signed)longwhen returned since Java has no unsigned long type.- Throws:
NumberFormatException
-
parseInteger
private static long parseInteger(String text, boolean isSigned, boolean isLong) throws NumberFormatException - Throws:
NumberFormatException
-