Go to the documentation of this file.
   31 package com.google.protobuf;
 
   37 import java.io.IOException;
 
   38 import java.math.BigInteger;
 
   39 import java.nio.CharBuffer;
 
   40 import java.util.ArrayList;
 
   41 import java.util.List;
 
   42 import java.util.Locale;
 
   44 import java.util.logging.Logger;
 
   45 import java.util.regex.Matcher;
 
   46 import java.util.regex.Pattern;
 
  238       final int tag, 
final Object 
value, 
final Appendable 
output) 
throws IOException {
 
  243       final int tag, 
final Object 
value, 
final TextGenerator generator) 
throws IOException {
 
  249         generator.print(String.format((Locale) 
null, 
"0x%08x", (Integer) 
value));
 
  252         generator.print(String.format((Locale) 
null, 
"0x%016x", (Long) 
value));
 
  258           generator.print(
"{");
 
  263           generator.print(
"}");
 
  266           generator.print(
"\"");
 
  268           generator.print(
"\"");
 
  275         throw new IllegalArgumentException(
"Bad tag: " + tag);
 
  331         final StringBuilder text = 
new StringBuilder();
 
  333         return text.toString();
 
  334       } 
catch (IOException e) {
 
  335         throw new IllegalStateException(e);
 
  347       if (
field.isRepeated()) {
 
  349         for (Object element : (List<?>) 
value) {
 
  375       switch (
field.getType()) {
 
  379           generator.print(((Integer) 
value).toString());
 
  385           generator.print(((Long) 
value).toString());
 
  389           generator.print(((Boolean) 
value).toString());
 
  411           generator.print(
"\"");
 
  414                   ? TextFormatEscaper.escapeText((String) 
value)
 
  416           generator.print(
"\"");
 
  420           generator.print(
"\"");
 
  426           generator.print(
"\"");
 
  443         final StringBuilder text = 
new StringBuilder();
 
  445         return text.toString();
 
  446       } 
catch (IOException e) {
 
  447         throw new IllegalStateException(e);
 
  453         final StringBuilder text = 
new StringBuilder();
 
  455         return text.toString();
 
  456       } 
catch (IOException e) {
 
  457         throw new IllegalStateException(e);
 
  467         final StringBuilder text = 
new StringBuilder();
 
  469         return text.toString();
 
  470       } 
catch (IOException e) {
 
  471         throw new IllegalStateException(e);
 
  481         final StringBuilder text = 
new StringBuilder();
 
  483         return text.toString();
 
  484       } 
catch (IOException e) {
 
  485         throw new IllegalStateException(e);
 
  495         final StringBuilder text = 
new StringBuilder();
 
  497         return text.toString();
 
  498       } 
catch (IOException e) {
 
  499         throw new IllegalStateException(e);
 
  504         final int tag, 
final Object 
value, 
final TextGenerator generator) 
throws IOException {
 
  510           generator.print(String.format((Locale) 
null, 
"0x%08x", (Integer) 
value));
 
  513           generator.print(String.format((Locale) 
null, 
"0x%016x", (Long) 
value));
 
  519             generator.print(
"{");
 
  524             generator.print(
"}");
 
  527             generator.print(
"\"");
 
  529             generator.print(
"\"");
 
  536           throw new IllegalArgumentException(
"Bad tag: " + tag);
 
  551       if (
field.isExtension()) {
 
  552         generator.print(
"[");
 
  554         if (
field.getContainingType().getOptions().getMessageSetWireFormat()
 
  556             && (
field.isOptional())
 
  558             && (
field.getExtensionScope() == 
field.getMessageType())) {
 
  559           generator.print(
field.getMessageType().getFullName());
 
  561           generator.print(
field.getFullName());
 
  563         generator.print(
"]");
 
  567           generator.print(
field.getMessageType().getName());
 
  569           generator.print(
field.getName());
 
  574         generator.print(
" {");
 
  578         generator.print(
": ");
 
  585         generator.print(
"}");
 
  593         final int number = entry.getKey();
 
  601             field.getLengthDelimitedList(),
 
  604           generator.print(entry.getKey().toString());
 
  605           generator.print(
" {");
 
  610           generator.print(
"}");
 
  620         generator.print(String.valueOf(
number));
 
  621         generator.print(
": ");
 
  631       return Integer.toString(
value);
 
  633       return Long.toString(
value & 0x00000000FFFFFFFFL);
 
  640       return Long.toString(
value);
 
  644       return BigInteger.valueOf(
value & 0x7FFFFFFFFFFFFFFFL).setBit(63).toString();
 
  659     private final StringBuilder 
indent = 
new StringBuilder();
 
  684         throw new IllegalArgumentException(
" Outdent() without matching Indent().");
 
  693     public void print(
final CharSequence text) 
throws IOException {
 
  706     public void eol() throws IOException {
 
  742     private final CharSequence 
text;
 
  760     private static final Pattern 
WHITESPACE = Pattern.compile(
"(\\s|(#.*$))++", Pattern.MULTILINE);
 
  761     private static final Pattern 
TOKEN =
 
  763             "[a-zA-Z_][0-9a-zA-Z_+-]*+|"  
  764                 + 
"[.]?[0-9+-][0-9a-zA-Z_.+-]*+|"  
  765                 + 
"\"([^\"\n\\\\]|\\\\.)*+(\"|\\\\?$)|"  
  766                 + 
"\'([^\'\n\\\\]|\\\\.)*+(\'|\\\\?$)", 
 
  770         Pattern.compile(
"-?inf(inity)?", Pattern.CASE_INSENSITIVE);
 
  772         Pattern.compile(
"-?inf(inity)?f?", Pattern.CASE_INSENSITIVE);
 
  773     private static final Pattern 
FLOAT_NAN = Pattern.compile(
"nanf?", Pattern.CASE_INSENSITIVE);
 
  783     int getPreviousLine() {
 
  787     int getPreviousColumn() {
 
  811         if (
text.charAt(
pos) == 
'\n') {
 
  877       return (
'0' <= c && c <= 
'9') || c == 
'-' || c == 
'+';
 
  892         if ((
'a' <= c && c <= 
'z')
 
  893             || (
'A' <= c && c <= 
'Z')
 
  894             || (
'0' <= c && c <= 
'9')
 
  930       } 
catch (NumberFormatException e) {
 
  944       } 
catch (NumberFormatException e) {
 
  958       } 
catch (NumberFormatException e) {
 
  985       } 
catch (NumberFormatException e) {
 
 1013         return negative ? 
Double.NEGATIVE_INFINITY : 
Double.POSITIVE_INFINITY;
 
 1023       } 
catch (NumberFormatException e) {
 
 1051         return negative ? 
Float.NEGATIVE_INFINITY : 
Float.POSITIVE_INFINITY;
 
 1061       } 
catch (NumberFormatException e) {
 
 1124       List<ByteString> list = 
new ArrayList<ByteString>();
 
 1139       if (quote != 
'\"' && quote != 
'\'') {
 
 1180       return parseException(
"Couldn't parse integer: " + e.getMessage());
 
 1188       return parseException(
"Couldn't parse number: " + e.getMessage());
 
 1196         final String unknownField, 
final String 
description) {
 
 1303   public static <T extends Message> 
T parse(
final CharSequence 
input, 
final Class<T> protoClass)
 
 1307     @SuppressWarnings(
"unchecked")
 
 1317       final Readable 
input,
 
 1320       throws IOException {
 
 1330       final CharSequence 
input,
 
 1344       final CharSequence 
input,
 
 1346       final Class<T> protoClass)
 
 1350     @SuppressWarnings(
"unchecked")
 
 1382       FORBID_SINGULAR_OVERWRITES
 
 1444         this.singularOverwritePolicy = 
p;
 
 1483         final Readable 
input,
 
 1486         throws IOException {
 
 1504       final StringBuilder text = 
new StringBuilder();
 
 1517     static final class UnknownField {
 
 1534       if (unknownFields.isEmpty()) {
 
 1538       StringBuilder msg = 
new StringBuilder(
"Input contains unknown fields and/or extensions:");
 
 1539       for (UnknownField 
field : unknownFields) {
 
 1540         msg.append(
'\n').append(
field.message);
 
 1544         logger.warning(msg.toString());
 
 1548       int firstErrorIndex = 0;
 
 1550         boolean allUnknownExtensions = 
true;
 
 1551         for (UnknownField 
field : unknownFields) {
 
 1552           if (
field.type == UnknownField.Type.FIELD) {
 
 1553             allUnknownExtensions = 
false;
 
 1558         if (allUnknownExtensions) {
 
 1559           logger.warning(msg.toString());
 
 1564       String[] lineColumn = unknownFields.get(firstErrorIndex).message.split(
":");
 
 1566           Integer.parseInt(lineColumn[0]), Integer.parseInt(lineColumn[1]), msg.toString());
 
 1574         final CharSequence 
input,
 
 1579       MessageReflection.BuilderAdapter 
target = 
new MessageReflection.BuilderAdapter(builder);
 
 1581       List<UnknownField> unknownFields = 
new ArrayList<UnknownField>();
 
 1583       while (!tokenizer.
atEnd()) {
 
 1595         final MessageReflection.MergeTarget 
target,
 
 1596         List<UnknownField> unknownFields)
 
 1610         final MessageReflection.MergeTarget 
target,
 
 1612         List<UnknownField> unknownFields)
 
 1615       int startLine = tokenizer.getLine();
 
 1616       int startColumn = tokenizer.getColumn();
 
 1620       if (tokenizer.tryConsume(
"[")) {
 
 1622         final StringBuilder 
name = 
new StringBuilder(tokenizer.consumeIdentifier());
 
 1623         while (tokenizer.tryConsume(
".")) {
 
 1625           name.append(tokenizer.consumeIdentifier());
 
 1632               (tokenizer.getPreviousLine() + 1)
 
 1634                   + (tokenizer.getPreviousColumn() + 1)
 
 1636                   + 
type.getFullName()
 
 1640           unknownFields.add(
new UnknownField(
message, UnknownField.Type.EXTENSION));
 
 1643             throw tokenizer.parseExceptionPreviousToken(
 
 1646                     + 
"\" does not extend message type \"" 
 1647                     + 
type.getFullName()
 
 1653         tokenizer.consume(
"]");
 
 1655         final String 
name = tokenizer.consumeIdentifier();
 
 1661         if (
field == 
null) {
 
 1664           final String lowerName = 
name.toLowerCase(Locale.US);
 
 1665           field = 
type.findFieldByName(lowerName);
 
 1674             && !
field.getMessageType().getName().equals(
name)) {
 
 1678         if (
field == 
null) {
 
 1679           String 
message = (tokenizer.getPreviousLine() + 1)
 
 1681                            + (tokenizer.getPreviousColumn() + 1)
 
 1683                            + 
type.getFullName()
 
 1686           unknownFields.add(
new UnknownField(
message, UnknownField.Type.FIELD));
 
 1691       if (
field == 
null) {
 
 1698         if (tokenizer.tryConsume(
":") && !tokenizer.lookingAt(
"{") && !tokenizer.lookingAt(
"<")) {
 
 1708         tokenizer.tryConsume(
":"); 
 
 1709         if (parseTreeBuilder != 
null) {
 
 1718               childParseTreeBuilder,
 
 1731         tokenizer.consume(
":"); 
 
 1742       if (parseTreeBuilder != 
null) {
 
 1748       if (!tokenizer.tryConsume(
";")) {
 
 1749         tokenizer.tryConsume(
",");
 
 1759         final MessageReflection.MergeTarget 
target,
 
 1763         List<UnknownField> unknownFields)
 
 1767       if (
field.isRepeated() && tokenizer.tryConsume(
"[")) {
 
 1768         if (!tokenizer.tryConsume(
"]")) { 
 
 1778             if (tokenizer.tryConsume(
"]")) {
 
 1782             tokenizer.consume(
",");
 
 1801         final MessageReflection.MergeTarget 
target,
 
 1805         List<UnknownField> unknownFields)
 
 1808           && !
field.isRepeated()) {
 
 1810           throw tokenizer.parseExceptionPreviousToken(
 
 1811               "Non-repeated field \"" + 
field.getFullName() + 
"\" cannot be overwritten.");
 
 1812         } 
else if (
field.getContainingOneof() != 
null 
 1815           throw tokenizer.parseExceptionPreviousToken(
 
 1817                   + 
field.getFullName()
 
 1818                   + 
"\" is specified along with field \"" 
 1819                   + 
target.getOneofFieldDescriptor(oneof).getFullName()
 
 1820                   + 
"\", another member of oneof \"" 
 1826       Object 
value = 
null;
 
 1829         final String endToken;
 
 1830         if (tokenizer.tryConsume(
"<")) {
 
 1833           tokenizer.consume(
"{");
 
 1838           MessageReflection.MergeTarget subField =
 
 1839               target.newMergeTargetForField(
field, defaultInstance);
 
 1841           while (!tokenizer.tryConsume(endToken)) {
 
 1842             if (tokenizer.atEnd()) {
 
 1843               throw tokenizer.parseException(
"Expected \"" + endToken + 
"\".");
 
 1845             mergeField(tokenizer, extensionRegistry, subField, parseTreeBuilder, unknownFields);
 
 1848           value = subField.finish();
 
 1850         switch (
field.getType()) {
 
 1854             value = tokenizer.consumeInt32();
 
 1860             value = tokenizer.consumeInt64();
 
 1865             value = tokenizer.consumeUInt32();
 
 1870             value = tokenizer.consumeUInt64();
 
 1874             value = tokenizer.consumeFloat();
 
 1878             value = tokenizer.consumeDouble();
 
 1882             value = tokenizer.consumeBoolean();
 
 1886             value = tokenizer.consumeString();
 
 1890             value = tokenizer.consumeByteString();
 
 1896             if (tokenizer.lookingAtInteger()) {
 
 1897               final int number = tokenizer.consumeInt32();
 
 1899               if (
value == 
null) {
 
 1900                 String unknownValueMsg =
 
 1903                         + 
"\" has no value with number " 
 1907                   logger.warning(unknownValueMsg);
 
 1910                   throw tokenizer.parseExceptionPreviousToken(
 
 1913                           + 
"\" has no value with number " 
 1919               final String 
id = tokenizer.consumeIdentifier();
 
 1921               if (
value == 
null) {
 
 1922                 String unknownValueMsg =
 
 1925                         + 
"\" has no value named \"" 
 1929                   logger.warning(unknownValueMsg);
 
 1932                   throw tokenizer.parseExceptionPreviousToken(unknownValueMsg);
 
 1941             throw new RuntimeException(
"Can't get here.");
 
 1945       if (
field.isRepeated()) {
 
 1957       if (tokenizer.tryConsume(
"[")) {
 
 1960           tokenizer.consumeIdentifier();
 
 1961         } 
while (tokenizer.tryConsume(
"."));
 
 1962         tokenizer.consume(
"]");
 
 1964         tokenizer.consumeIdentifier();
 
 1973       if (tokenizer.tryConsume(
":") && !tokenizer.lookingAt(
"<") && !tokenizer.lookingAt(
"{")) {
 
 1980       if (!tokenizer.tryConsume(
";")) {
 
 1981         tokenizer.tryConsume(
",");
 
 1989       final String delimiter;
 
 1990       if (tokenizer.tryConsume(
"<")) {
 
 1993         tokenizer.consume(
"{");
 
 1996       while (!tokenizer.lookingAt(
">") && !tokenizer.lookingAt(
"}")) {
 
 1999       tokenizer.consume(delimiter);
 
 2004       if (tokenizer.tryConsumeString()) {
 
 2005         while (tokenizer.tryConsumeString()) {}
 
 2008       if (!tokenizer.tryConsumeIdentifier() 
 
 2009           && !tokenizer.tryConsumeInt64() 
 
 2010           && !tokenizer.tryConsumeUInt64() 
 
 2011           && !tokenizer.tryConsumeDouble()
 
 2012           && !tokenizer.tryConsumeFloat()) {
 
 2013         throw tokenizer.parseException(
"Invalid field value: " + tokenizer.currentToken);
 
 2031     return TextFormatEscaper.escapeBytes(
input);
 
 2036     return TextFormatEscaper.escapeBytes(
input);
 
 2054     final byte[] result = 
new byte[
input.size()];
 
 2056     for (
int i = 0; 
i < 
input.size(); 
i++) {
 
 2057       byte c = 
input.byteAt(
i);
 
 2059         if (
i + 1 < 
input.size()) {
 
 2074             result[pos++] = (
byte) code;
 
 2078                 result[pos++] = 0x07;
 
 2081                 result[pos++] = 
'\b';
 
 2084                 result[pos++] = 
'\f';
 
 2087                 result[pos++] = 
'\n';
 
 2090                 result[pos++] = 
'\r';
 
 2093                 result[pos++] = 
'\t';
 
 2096                 result[pos++] = 0x0b;
 
 2099                 result[pos++] = 
'\\';
 
 2102                 result[pos++] = 
'\'';
 
 2105                 result[pos++] = 
'\"';
 
 2116                       "Invalid escape sequence: '\\x' with no digits");
 
 2122                 result[pos++] = (
byte) code;
 
 2127                     "Invalid escape sequence: '\\" + (
char) c + 
'\'');
 
 2132               "Invalid escape sequence: '\\' at end of string.");
 
 2139     return result.length == pos
 
 2161   static String escapeText(
final String 
input) {
 
 2167     return TextFormatEscaper.escapeDoubleQuotesAndBackslashes(
input);
 
 2174   static String unescapeText(
final String 
input) 
throws InvalidEscapeSequenceException {
 
 2180     return '0' <= c && c <= 
'7';
 
 2184   private static boolean isHex(
final byte c) {
 
 2185     return (
'0' <= c && c <= 
'9') || (
'a' <= c && c <= 
'f') || (
'A' <= c && c <= 
'F');
 
 2193     if (
'0' <= c && c <= 
'9') {
 
 2195     } 
else if (
'a' <= c && c <= 
'z') {
 
 2196       return c - 
'a' + 10;
 
 2198       return c - 
'A' + 10;
 
 2207   static int parseInt32(
final String text) 
throws NumberFormatException {
 
 2217   static int parseUInt32(
final String text) 
throws NumberFormatException {
 
 2226   static long parseInt64(
final String text) 
throws NumberFormatException {
 
 2236   static long parseUInt64(
final String text) 
throws NumberFormatException {
 
 2240   private static long parseInteger(
final String text, 
final boolean isSigned, 
final boolean isLong)
 
 2241       throws NumberFormatException {
 
 2244     boolean negative = 
false;
 
 2245     if (text.startsWith(
"-", pos)) {
 
 2247         throw new NumberFormatException(
"Number must be positive: " + text);
 
 2254     if (text.startsWith(
"0x", pos)) {
 
 2257     } 
else if (text.startsWith(
"0", pos)) {
 
 2261     final String numberText = text.substring(pos);
 
 2264     if (numberText.length() < 16) {
 
 2266       result = Long.parseLong(numberText, radix);
 
 2276           if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
 
 2277             throw new NumberFormatException(
 
 2278                 "Number out of range for 32-bit signed integer: " + text);
 
 2281           if (result >= (1L << 32) || result < 0) {
 
 2282             throw new NumberFormatException(
 
 2283                 "Number out of range for 32-bit unsigned integer: " + text);
 
 2288       BigInteger bigValue = 
new BigInteger(numberText, radix);
 
 2290         bigValue = bigValue.negate();
 
 2296           if (bigValue.bitLength() > 31) {
 
 2297             throw new NumberFormatException(
 
 2298                 "Number out of range for 32-bit signed integer: " + text);
 
 2301           if (bigValue.bitLength() > 32) {
 
 2302             throw new NumberFormatException(
 
 2303                 "Number out of range for 32-bit unsigned integer: " + text);
 
 2308           if (bigValue.bitLength() > 63) {
 
 2309             throw new NumberFormatException(
 
 2310                 "Number out of range for 64-bit signed integer: " + text);
 
 2313           if (bigValue.bitLength() > 64) {
 
 2314             throw new NumberFormatException(
 
 2315                 "Number out of range for 64-bit unsigned integer: " + text);
 
 2320       result = bigValue.longValue();
 
  
static final int BUFFER_SIZE
void merge(final CharSequence input, final Message.Builder builder)
ParseException parseException(final String description)
void consume(final String token)
GLuint const GLchar * name
boolean tryConsume(final String token)
static StringBuilder toStringBuilder(final Readable input)
static void printField(final FieldDescriptor field, final Object value, final Appendable output)
static final Pattern FLOAT_INFINITY
static String shortDebugString(final MessageOrBuilder message)
void print(final MessageOrBuilder message, final TextGenerator generator)
static String printToUnicodeString(final MessageOrBuilder message)
const Descriptor::ReservedRange const EnumValueDescriptor const MethodDescriptor extension
static String unsignedToString(final int value)
void mergeField(final Tokenizer tokenizer, final ExtensionRegistry extensionRegistry, final MessageReflection.MergeTarget target, List< UnknownField > unknownFields)
ParseException integerParseException(final NumberFormatException e)
static String printToString(final MessageOrBuilder message)
GLenum GLuint GLenum GLsizei length
static TextGenerator multiLineOutput(Appendable output)
ByteString consumeByteString()
static int digitValue(final byte c)
Printer escapingNonAscii(boolean escapeNonAscii)
String shortDebugString(final FieldDescriptor field, final Object value)
static String shortDebugString(final UnknownFieldSet fields)
ROSCONSOLE_CONSOLE_IMPL_DECL std::string getName(void *handle)
boolean lookingAtInteger()
static final Pattern TOKEN
static String escapeBytes(byte[] input)
void consumeFieldValues(final Tokenizer tokenizer, final ExtensionRegistry extensionRegistry, final MessageReflection.MergeTarget target, final FieldDescriptor field, final ExtensionRegistry.ExtensionInfo extension, final TextFormatParseInfoTree.Builder parseTreeBuilder, List< UnknownField > unknownFields)
void printFieldValue(final FieldDescriptor field, final Object value, final Appendable output)
Builder setAllowUnknownExtensions(boolean allowUnknownExtensions)
static void merge(final CharSequence input, final Message.Builder builder)
final StringBuilder indent
static String escapeDoubleQuotesAndBackslashes(final String input)
FORBID_SINGULAR_OVERWRITES
EnumValueDescriptor findValueByName(final String name)
static String shortDebugString(final FieldDescriptor field, final Object value)
void merge(final Readable input, final Message.Builder builder)
#define T(upbtypeconst, upbtype, ctype, default_value)
void skipFieldValue(Tokenizer tokenizer)
ParseException(final String message)
void print(final CharSequence text)
static< T extends Message > T parse(final CharSequence input, final ExtensionRegistry extensionRegistry, final Class< T > protoClass)
boolean allowUnknownEnumValues
UnknownFieldParseException(final String message)
ALLOW_SINGULAR_OVERWRITES
final SingularOverwritePolicy singularOverwritePolicy
FloatingPoint< double > Double
TextGenerator(final Appendable output, boolean singleLineMode)
void print(final MessageOrBuilder message, final Appendable output)
GLenum GLsizei GLsizei GLint * values
void printField(final FieldDescriptor field, final Object value, final TextGenerator generator)
static void printUnknownFieldValue(final int tag, final Object value, final TextGenerator generator)
final boolean singleLineMode
static Builder newBuilder()
static TextGenerator singleLineOutput(Appendable output)
void print(final UnknownFieldSet fields, final Appendable output)
static void merge(final CharSequence input, final ExtensionRegistry extensionRegistry, final Message.Builder builder)
static void printUnknownFields(final UnknownFieldSet unknownFields, final TextGenerator generator)
SingularOverwritePolicy singularOverwritePolicy
static void printUnicode(final MessageOrBuilder message, final Appendable output)
Printer(boolean escapeNonAscii)
static void print(final UnknownFieldSet fields, final Appendable output)
static void printUnknownFieldValue(final int tag, final Object value, final Appendable output)
void printMessage(final MessageOrBuilder message, final TextGenerator generator)
FloatingPoint< float > Float
void mergeField(final Tokenizer tokenizer, final ExtensionRegistry extensionRegistry, final MessageReflection.MergeTarget target, TextFormatParseInfoTree.Builder parseTreeBuilder, List< UnknownField > unknownFields)
ParseException parseExceptionPreviousToken(final String description)
static String printToString(final UnknownFieldSet fields)
static final Pattern DOUBLE_INFINITY
boolean tryConsumeString()
void consumeFieldValue(final Tokenizer tokenizer, final ExtensionRegistry extensionRegistry, final MessageReflection.MergeTarget target, final FieldDescriptor field, final ExtensionRegistry.ExtensionInfo extension, final TextFormatParseInfoTree.Builder parseTreeBuilder, List< UnknownField > unknownFields)
static final Printer DEFAULT
Parser(boolean allowUnknownFields, boolean allowUnknownEnumValues, boolean allowUnknownExtensions, SingularOverwritePolicy singularOverwritePolicy, TextFormatParseInfoTree.Builder parseInfoTreeBuilder)
EnumValueDescriptor findValueByNumber(final int number)
static final Parser PARSER
static void print(final MessageOrBuilder message, final Appendable output)
static void printUnknownFieldValue(final int tag, final Object value, final TextGenerator generator)
final boolean allowUnknownEnumValues
static void merge(final Readable input, final ExtensionRegistry extensionRegistry, final Message.Builder builder)
static void printUnicodeFieldValue(final FieldDescriptor field, final Object value, final Appendable output)
final boolean allowUnknownExtensions
void checkUnknownFields(final List< UnknownField > unknownFields)
void skipField(Tokenizer tokenizer)
static String printToUnicodeString(final UnknownFieldSet fields)
SETUP_TEARDOWN_TESTCONTEXT typedef uint8_t byte
static final Pattern FLOAT_NAN
const FieldDescriptor * field
static String escapeBytes(ByteString input)
static ExtensionRegistry getEmptyRegistry()
void printFieldValue(final FieldDescriptor field, final Object value, final TextGenerator generator)
Builder setSingularOverwritePolicy(SingularOverwritePolicy p)
static String printFieldToString(final FieldDescriptor field, final Object value)
boolean lookingAt(String text)
boolean tryConsumeFloat()
static long parseInteger(final String text, final boolean isSigned, final boolean isLong)
static final long serialVersionUID
Builder getBuilderForSubMessageField(final FieldDescriptor fieldDescriptor)
Builder setAllowUnknownFields(boolean allowUnknownFields)
Builder setParseInfoTreeBuilder(TextFormatParseInfoTree.Builder parseInfoTreeBuilder)
static const upb_fielddef fields[107]
static ByteString unescapeBytes(final CharSequence charString)
static boolean isOctal(final byte c)
static< T extends MessageLite > T getDefaultInstance(Class< T > clazz)
boolean allowUnknownExtensions
String printFieldToString(final FieldDescriptor field, final Object value)
UnknownFieldParseException unknownFieldParseExceptionPreviousToken(final String unknownField, final String description)
void merge(final CharSequence input, final ExtensionRegistry extensionRegistry, final Message.Builder builder)
boolean tryConsumeIdentifier()
static final Logger logger
static final long serialVersionUID
boolean tryConsumeInt64()
static boolean isHex(final byte c)
Tokenizer(final CharSequence text)
void printField(final FieldDescriptor field, final Object value, final Appendable output)
final boolean escapeNonAscii
boolean tryConsumeUInt64()
void printSingleField(final FieldDescriptor field, final Object value, final TextGenerator generator)
static< T extends Message > T parse(final CharSequence input, final Class< T > protoClass)
String printToString(final MessageOrBuilder message)
static void printUnknownField(final int number, final int wireType, final List<?> values, final TextGenerator generator)
static UnknownFieldSet parseFrom(final CodedInputStream input)
void consumeByteString(List< ByteString > list)
ParseException floatParseException(final NumberFormatException e)
TextFormatParseInfoTree.Builder parseInfoTreeBuilder
ParseException(final int line, final int column, final String message)
static void printFieldValue(final FieldDescriptor field, final Object value, final Appendable output)
boolean tryConsumeDouble()
final String unknownField
GLsizei const GLfloat * value
String printToString(final UnknownFieldSet fields)
void skipFieldMessage(Tokenizer tokenizer)
static void printUnicode(final UnknownFieldSet fields, final Appendable output)
String shortDebugString(final UnknownFieldSet fields)
static String unsignedToString(final long value)
const upb_json_parsermethod const upb_symtab upb_sink * output
String consumeIdentifier()
static final Pattern WHITESPACE
boolean allowUnknownFields
String shortDebugString(final MessageOrBuilder message)
void merge(final Readable input, final ExtensionRegistry extensionRegistry, final Message.Builder builder)
GLenum GLuint GLenum GLsizei const GLchar * message
TextFormatParseInfoTree.Builder parseInfoTreeBuilder
static void merge(final Readable input, final Message.Builder builder)
UnknownFieldParseException(final int line, final int column, final String unknownField, final String message)
final boolean allowUnknownFields
static Parser getParser()
libaditof
Author(s): 
autogenerated on Wed May 21 2025 02:07:00