Package com.google.protobuf
Class TextFormat
- java.lang.Object
-
- com.google.protobuf.TextFormat
-
public final class TextFormat extends java.lang.ObjectProvide text parsing and formatting support for proto2 instances. The implementation largely follows text_format.cc.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTextFormat.InvalidEscapeSequenceExceptionThrown byunescapeBytes(java.lang.CharSequence)andunescapeText(java.lang.String)when an invalid escape sequence is seen.static classTextFormat.ParseExceptionThrown when parsing an invalid text format message.static classTextFormat.ParserParser for text-format proto2 instances.static classTextFormat.PrinterHelper class for converting protobufs to text.private static classTextFormat.TextGeneratorAn inner class for writing text to the output stream.private static classTextFormat.TokenizerRepresents a stream of tokens parsed from aString.static classTextFormat.UnknownFieldParseExceptionDeprecated.This exception is unused and will be removed in the next breaking release (v5.x.x).
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringDEBUG_STRING_SILENT_MARKERprivate static java.util.logging.Loggerloggerprivate static TextFormat.ParserPARSERprivate static java.lang.StringREDACTED_MARKER
-
Constructor Summary
Constructors Modifier Constructor Description privateTextFormat()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static TextFormat.PrinterdebugFormatPrinter()Printer instance which escapes non-ASCII characters and prints in the debug format.private static intdigitValue(byte c)Interpret a character as a digit (in any base up to 36) and return the numeric value.static java.lang.StringescapeBytes(byte[] input)LikeescapeBytes(ByteString), but used for byte array.static java.lang.StringescapeBytes(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 java.lang.StringescapeDoubleQuotesAndBackslashes(java.lang.String input)Escape double quotes and backslashes in a String for emittingUnicode output of a message.(package private) static java.lang.StringescapeText(java.lang.String input)LikeescapeBytes(ByteString), but escapes a text string.static TextFormat.ParsergetParser()Return aTextFormat.Parserinstance which can parse text-format messages.private static booleanisHex(byte c)Is this a hex digit?private static booleanisOctal(byte c)Is this an octal digit?static voidmerge(java.lang.CharSequence input, ExtensionRegistry extensionRegistry, Message.Builder builder)Parse a text-format message frominputand merge the contents intobuilder.static voidmerge(java.lang.CharSequence input, Message.Builder builder)Parse a text-format message frominputand merge the contents intobuilder.static voidmerge(java.lang.Readable input, ExtensionRegistry extensionRegistry, Message.Builder builder)Parse a text-format message frominputand merge the contents intobuilder.static voidmerge(java.lang.Readable input, Message.Builder builder)Parse a text-format message frominputand merge the contents intobuilder.static <T extends Message>
Tparse(java.lang.CharSequence input, ExtensionRegistry extensionRegistry, java.lang.Class<T> protoClass)Parse a text-format message frominput.static <T extends Message>
Tparse(java.lang.CharSequence input, java.lang.Class<T> protoClass)Parse a text-format message frominput.(package private) static intparseInt32(java.lang.String text)Parse a 32-bit signed integer from the text.(package private) static longparseInt64(java.lang.String text)Parse a 64-bit signed integer from the text.private static longparseInteger(java.lang.String text, boolean isSigned, boolean isLong)(package private) static intparseUInt32(java.lang.String text)Parse a 32-bit unsigned integer from the text.(package private) static longparseUInt64(java.lang.String text)Parse a 64-bit unsigned integer from the text.static TextFormat.Printerprinter()Printer instance which escapes non-ASCII characters.private static voidprintUnknownFieldValue(int tag, java.lang.Object value, TextFormat.TextGenerator generator, boolean redact)static voidprintUnknownFieldValue(int tag, java.lang.Object value, java.lang.Appendable output)Outputs a textual representation of the value of an unknown field.private static TextFormat.TextGeneratorsetSingleLineOutput(java.lang.Appendable output, boolean singleLine)private static TextFormat.TextGeneratorsetSingleLineOutput(java.lang.Appendable output, boolean singleLine, TextFormat.Printer.FieldReporterLevel fieldReporterLevel)static java.lang.StringshortDebugString(MessageOrBuilder message)Deprecated.Useprinter().emittingSingleLine(true).printToString(MessageOrBuilder)static ByteStringunescapeBytes(java.lang.CharSequence charString)Un-escape a byte sequence as escaped usingescapeBytes(ByteString).(package private) static java.lang.StringunescapeText(java.lang.String input)Un-escape a text string as escaped usingescapeText(String).static java.lang.StringunsignedToString(int value)Convert an unsigned 32-bit integer to a string.static java.lang.StringunsignedToString(long value)Convert an unsigned 64-bit integer to a string.
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
DEBUG_STRING_SILENT_MARKER
private static final java.lang.String DEBUG_STRING_SILENT_MARKER
- See Also:
- Constant Field Values
-
REDACTED_MARKER
private static final java.lang.String REDACTED_MARKER
- See Also:
- Constant Field Values
-
PARSER
private static final TextFormat.Parser PARSER
-
-
Method Detail
-
shortDebugString
@Deprecated public static java.lang.String shortDebugString(MessageOrBuilder message)
Deprecated.Useprinter().emittingSingleLine(true).printToString(MessageOrBuilder)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).
-
printUnknownFieldValue
public static void printUnknownFieldValue(int tag, java.lang.Object value, java.lang.Appendable output) throws java.io.IOExceptionOutputs 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:
java.lang.ClassCastException- if the value is not appropriate for the given field descriptorjava.io.IOException- if there is an exception writing to the output
-
printUnknownFieldValue
private static void printUnknownFieldValue(int tag, java.lang.Object value, TextFormat.TextGenerator generator, boolean redact) throws java.io.IOException- Throws:
java.io.IOException
-
printer
public static TextFormat.Printer printer()
Printer instance which escapes non-ASCII characters.
-
debugFormatPrinter
public static TextFormat.Printer debugFormatPrinter()
Printer instance which escapes non-ASCII characters and prints in the debug format.
-
unsignedToString
public static java.lang.String unsignedToString(int value)
Convert an unsigned 32-bit integer to a string.
-
unsignedToString
public static java.lang.String unsignedToString(long value)
Convert an unsigned 64-bit integer to a string.
-
setSingleLineOutput
private static TextFormat.TextGenerator setSingleLineOutput(java.lang.Appendable output, boolean singleLine)
-
setSingleLineOutput
private static TextFormat.TextGenerator setSingleLineOutput(java.lang.Appendable output, boolean singleLine, TextFormat.Printer.FieldReporterLevel fieldReporterLevel)
-
getParser
public static TextFormat.Parser getParser()
Return aTextFormat.Parserinstance which can parse text-format messages. The returned instance is thread-safe.
-
merge
public static void merge(java.lang.Readable input, Message.Builder builder) throws java.io.IOExceptionParse a text-format message frominputand merge the contents intobuilder.- Throws:
java.io.IOException
-
merge
public static void merge(java.lang.CharSequence input, Message.Builder builder) throws TextFormat.ParseExceptionParse a text-format message frominputand merge the contents intobuilder.- Throws:
TextFormat.ParseException
-
parse
public static <T extends Message> T parse(java.lang.CharSequence input, java.lang.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(java.lang.Readable input, ExtensionRegistry extensionRegistry, Message.Builder builder) throws java.io.IOExceptionParse a text-format message frominputand merge the contents intobuilder. Extensions will be recognized if they are registered inextensionRegistry.- Throws:
java.io.IOException
-
merge
public static void merge(java.lang.CharSequence input, ExtensionRegistry extensionRegistry, Message.Builder builder) throws TextFormat.ParseExceptionParse a text-format message frominputand merge the contents intobuilder. Extensions will be recognized if they are registered inextensionRegistry.- Throws:
TextFormat.ParseException
-
parse
public static <T extends Message> T parse(java.lang.CharSequence input, ExtensionRegistry extensionRegistry, java.lang.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
public static java.lang.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. 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
public static java.lang.String escapeBytes(byte[] input)
LikeescapeBytes(ByteString), but used for byte array.
-
unescapeBytes
public static ByteString unescapeBytes(java.lang.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
static java.lang.String escapeText(java.lang.String input)
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
public static java.lang.String escapeDoubleQuotesAndBackslashes(java.lang.String input)
Escape double quotes and backslashes in a String for emittingUnicode output of a message.
-
unescapeText
static java.lang.String unescapeText(java.lang.String input) throws TextFormat.InvalidEscapeSequenceExceptionUn-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
static int parseInt32(java.lang.String text) throws java.lang.NumberFormatExceptionParse 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:
java.lang.NumberFormatException
-
parseUInt32
static int parseUInt32(java.lang.String text) throws java.lang.NumberFormatExceptionParse 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)intwhen returned since Java has no unsigned integer type.- Throws:
java.lang.NumberFormatException
-
parseInt64
static long parseInt64(java.lang.String text) throws java.lang.NumberFormatExceptionParse 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:
java.lang.NumberFormatException
-
parseUInt64
static long parseUInt64(java.lang.String text) throws java.lang.NumberFormatExceptionParse 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)longwhen returned since Java has no unsigned long type.- Throws:
java.lang.NumberFormatException
-
parseInteger
private static long parseInteger(java.lang.String text, boolean isSigned, boolean isLong) throws java.lang.NumberFormatException- Throws:
java.lang.NumberFormatException
-
-