Package com.google.protobuf
Class TextFormat
java.lang.Object
com.google.protobuf.TextFormat
Provide text parsing and formatting support for proto2 instances. The implementation largely
follows google/protobuf/text_format.cc.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Thrown byunescapeBytes(java.lang.CharSequence)
andunescapeText(java.lang.String)
when an invalid escape sequence is seen.static class
Thrown when parsing an invalid text format message.static class
Parser for text-format proto2 instances.static final class
Helper class for converting protobufs to text.private static final class
An inner class for writing text to the output stream.private static final class
Represents a stream of tokens parsed from aString
.static class
Thrown when encountering an unknown field while parsing a text format message. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Logger
private static final TextFormat.Parser
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static int
digitValue
(byte c) Interpret a character as a digit (in any base up to 36) and return the numeric value.static String
escapeBytes
(byte[] input) LikeescapeBytes(ByteString)
, but used for byte array.static String
escapeBytes
(ByteString input) Escapes bytes in the format used in protocol buffer text format, which is the same as the format used for C string literals.static String
Escape double quotes and backslashes in a String for emittingUnicode output of a message.(package private) static String
escapeText
(String input) LikeescapeBytes(ByteString)
, but escapes a text string.static TextFormat.Parser
Return aTextFormat.Parser
instance which can parse text-format messages.private static boolean
isHex
(byte c) Is this a hex digit?private static boolean
isOctal
(byte c) Is this an octal digit?static void
merge
(CharSequence input, ExtensionRegistry extensionRegistry, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.static void
merge
(CharSequence input, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.static void
merge
(Readable input, ExtensionRegistry extensionRegistry, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.static void
merge
(Readable input, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.private static TextFormat.TextGenerator
multiLineOutput
(Appendable output) static <T extends Message>
Tparse
(CharSequence input, ExtensionRegistry extensionRegistry, Class<T> protoClass) Parse a text-format message frominput
.static <T extends Message>
Tparse
(CharSequence input, Class<T> protoClass) Parse a text-format message frominput
.(package private) static int
parseInt32
(String text) Parse a 32-bit signed integer from the text.(package private) static long
parseInt64
(String text) Parse a 64-bit signed integer from the text.private static long
parseInteger
(String text, boolean isSigned, boolean isLong) (package private) static int
parseUInt32
(String text) Parse a 32-bit unsigned integer from the text.(package private) static long
parseUInt64
(String text) Parse a 64-bit unsigned integer from the text.static void
print
(MessageOrBuilder message, Appendable output) Deprecated.static void
print
(UnknownFieldSet fields, Appendable output) Deprecated.Useprinter().print(UnknownFieldSet, Appendable)
static TextFormat.Printer
printer()
Printer instance which escapes non-ASCII characters.static void
printField
(Descriptors.FieldDescriptor field, Object value, Appendable output) Deprecated.Useprinter().printField(FieldDescriptor, Object, Appendable)
static String
printFieldToString
(Descriptors.FieldDescriptor field, Object value) Deprecated.Useprinter().printFieldToString(FieldDescriptor, Object)
static void
printFieldValue
(Descriptors.FieldDescriptor field, Object value, Appendable output) Deprecated.Useprinter().printFieldValue(FieldDescriptor, Object, Appendable)
static String
printToString
(MessageOrBuilder message) Deprecated.Usemessage.toString()
static String
printToString
(UnknownFieldSet fields) Deprecated.static String
printToUnicodeString
(MessageOrBuilder message) Deprecated.Useprinter().escapingNonAscii(false).printToString(MessageOrBuilder)
static String
printToUnicodeString
(UnknownFieldSet fields) Deprecated.Useprinter().escapingNonAscii(false).printToString(UnknownFieldSet)
static void
printUnicode
(MessageOrBuilder message, Appendable output) Deprecated.Useprinter().escapingNonAscii(false).print(MessageOrBuilder, Appendable)
static void
printUnicode
(UnknownFieldSet fields, Appendable output) Deprecated.Useprinter().escapingNonAscii(false).print(UnknownFieldSet, Appendable)
static void
printUnicodeFieldValue
(Descriptors.FieldDescriptor field, Object value, Appendable output) Deprecated.Useprinter().escapingNonAscii(false).printFieldValue(FieldDescriptor, Object, Appendable)
private static void
printUnknownFieldValue
(int tag, Object value, TextFormat.TextGenerator generator) static void
printUnknownFieldValue
(int tag, Object value, Appendable output) Outputs a textual representation of the value of an unknown field.static String
shortDebugString
(Descriptors.FieldDescriptor field, Object value) Deprecated.Useprinter().shortDebugString(FieldDescriptor, Object)
static String
shortDebugString
(MessageOrBuilder message) Generates a human readable form of this message, useful for debugging and other purposes, with no newline characters.static String
shortDebugString
(UnknownFieldSet fields) Deprecated.Useprinter().shortDebugString(UnknownFieldSet)
private static TextFormat.TextGenerator
singleLineOutput
(Appendable output) static ByteString
unescapeBytes
(CharSequence charString) Un-escape a byte sequence as escaped usingescapeBytes(ByteString)
.(package private) static String
unescapeText
(String input) Un-escape a text string as escaped usingescapeText(String)
.static String
unsignedToString
(int value) Convert an unsigned 32-bit integer to a string.static String
unsignedToString
(long value) Convert an unsigned 64-bit integer to a string.
-
Field Details
-
logger
-
PARSER
-
-
Constructor Details
-
TextFormat
private TextFormat()
-
-
Method Details
-
print
@Deprecated public static void print(MessageOrBuilder message, Appendable output) throws IOException Deprecated.Useprinter().print(MessageOrBuilder, Appendable)
Outputs a textual representation of the Protocol Message supplied into the parameter output. (This representation is the new version of the classic "ProtocolPrinter" output from the original Protocol Buffer system)- Throws:
IOException
-
print
Deprecated.Useprinter().print(UnknownFieldSet, Appendable)
Outputs a textual representation offields
tooutput
.- Throws:
IOException
-
printUnicode
@Deprecated public static void printUnicode(MessageOrBuilder message, Appendable output) throws IOException Deprecated.Useprinter().escapingNonAscii(false).print(MessageOrBuilder, Appendable)
Same asprint()
, except that non-ASCII characters are not escaped.- Throws:
IOException
-
printUnicode
@Deprecated public static void printUnicode(UnknownFieldSet fields, Appendable output) throws IOException Deprecated.Useprinter().escapingNonAscii(false).print(UnknownFieldSet, Appendable)
Same asprint()
, except that non-ASCII characters are not escaped.- Throws:
IOException
-
shortDebugString
Generates a human readable form of this message, useful for debugging and other purposes, with no newline characters. This is just a trivial wrapper aroundTextFormat.Printer.shortDebugString(MessageOrBuilder)
. -
shortDebugString
Deprecated.Useprinter().shortDebugString(FieldDescriptor, Object)
Generates a human readable form of the field, useful for debugging and other purposes, with no newline characters. -
shortDebugString
Deprecated.Useprinter().shortDebugString(UnknownFieldSet)
Generates a human readable form of the unknown fields, useful for debugging and other purposes, with no newline characters. -
printToString
Deprecated.Usemessage.toString()
Likeprint()
, but writes directly to aString
and returns it. -
printToString
Deprecated.Likeprint()
, but writes directly to aString
and returns it. -
printToUnicodeString
Deprecated.Useprinter().escapingNonAscii(false).printToString(MessageOrBuilder)
Same asprintToString()
, except that non-ASCII characters in string type fields are not escaped in backslash+octals. -
printToUnicodeString
Deprecated.Useprinter().escapingNonAscii(false).printToString(UnknownFieldSet)
Same asprintToString()
, except that non-ASCII characters in string type fields are not escaped in backslash+octals. -
printField
@Deprecated public static void printField(Descriptors.FieldDescriptor field, Object value, Appendable output) throws IOException Deprecated.Useprinter().printField(FieldDescriptor, Object, Appendable)
- Throws:
IOException
-
printFieldToString
@Deprecated public static String printFieldToString(Descriptors.FieldDescriptor field, Object value) Deprecated.Useprinter().printFieldToString(FieldDescriptor, Object)
-
printUnicodeFieldValue
@Deprecated public static void printUnicodeFieldValue(Descriptors.FieldDescriptor field, Object value, Appendable output) throws IOException Deprecated.Useprinter().escapingNonAscii(false).printFieldValue(FieldDescriptor, Object, Appendable)
Outputs a unicode textual representation of the value of given field value.Same as
printFieldValue()
, except that non-ASCII characters in string type fields are not escaped in backslash+octals.- Parameters:
field
- the descriptor of the fieldvalue
- the value of the fieldoutput
- the output to which to append the formatted value- Throws:
ClassCastException
- if the value is not appropriate for the given field descriptorIOException
- if there is an exception writing to the output
-
printFieldValue
@Deprecated public static void printFieldValue(Descriptors.FieldDescriptor field, Object value, Appendable output) throws IOException Deprecated.Useprinter().printFieldValue(FieldDescriptor, Object, Appendable)
Outputs a textual representation of the value of given field value.- Parameters:
field
- the descriptor of the fieldvalue
- the value of the fieldoutput
- the output to which to append the formatted value- Throws:
ClassCastException
- if the value is not appropriate for the given field descriptorIOException
- if there is an exception writing to the output
-
printUnknownFieldValue
public static void printUnknownFieldValue(int tag, Object value, Appendable output) throws IOException Outputs a textual representation of the value of an unknown field.- Parameters:
tag
- the field's tag numbervalue
- the value of the fieldoutput
- the output to which to append the formatted value- Throws:
ClassCastException
- if the value is not appropriate for the given field descriptorIOException
- if there is an exception writing to the output
-
printUnknownFieldValue
private static void printUnknownFieldValue(int tag, Object value, TextFormat.TextGenerator generator) throws IOException - Throws:
IOException
-
printer
Printer instance which escapes non-ASCII characters. -
unsignedToString
Convert an unsigned 32-bit integer to a string. -
unsignedToString
Convert an unsigned 64-bit integer to a string. -
multiLineOutput
-
singleLineOutput
-
getParser
Return aTextFormat.Parser
instance which can parse text-format messages. The returned instance is thread-safe. -
merge
Parse a text-format message frominput
and merge the contents intobuilder
.- Throws:
IOException
-
merge
public static void merge(CharSequence input, Message.Builder builder) throws TextFormat.ParseException Parse a text-format message frominput
and merge the contents intobuilder
.- Throws:
TextFormat.ParseException
-
parse
public static <T extends Message> T parse(CharSequence input, Class<T> protoClass) throws TextFormat.ParseException Parse a text-format message frominput
.- Returns:
- the parsed message, guaranteed initialized
- Throws:
TextFormat.ParseException
-
merge
public static void merge(Readable input, ExtensionRegistry extensionRegistry, Message.Builder builder) throws IOException Parse a text-format message frominput
and merge the contents intobuilder
. Extensions will be recognized if they are registered inextensionRegistry
.- Throws:
IOException
-
merge
public static void merge(CharSequence input, ExtensionRegistry extensionRegistry, Message.Builder builder) throws TextFormat.ParseException Parse a text-format message frominput
and merge the contents intobuilder
. Extensions will be recognized if they are registered inextensionRegistry
.- Throws:
TextFormat.ParseException
-
parse
public static <T extends Message> T parse(CharSequence input, ExtensionRegistry extensionRegistry, Class<T> protoClass) throws TextFormat.ParseException Parse a text-format message frominput
. Extensions will be recognized if they are registered inextensionRegistry
.- Returns:
- the parsed message, guaranteed initialized
- Throws:
TextFormat.ParseException
-
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. -
escapeBytes
LikeescapeBytes(ByteString)
, but used for byte array. -
unescapeBytes
public static ByteString unescapeBytes(CharSequence charString) throws TextFormat.InvalidEscapeSequenceException 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. -
escapeDoubleQuotesAndBackslashes
Escape double quotes and backslashes in a String for emittingUnicode output of a message. -
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(byte c) Is this an octal digit? -
isHex
private static boolean isHex(byte c) Is this a hex digit? -
digitValue
private static int digitValue(byte 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 hexadecimal 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 hexadecimal and octal numbers, respectively. The result is coerced to a (signed)int
when 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 hexadecimal 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 hexadecimal and octal numbers, respectively. The result is coerced to a (signed)long
when 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
-
printer().print(MessageOrBuilder, Appendable)