Package com.google.protobuf
Class TextFormat.Parser
java.lang.Object
com.google.protobuf.TextFormat.Parser
- Enclosing class:
TextFormat
Parser for text-format proto2 instances. This class is thread-safe. The implementation largely
follows google/protobuf/text_format.cc.
Use TextFormat.getParser()
to obtain the default parser, or TextFormat.Parser.Builder
to
control the parser behavior.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Builder that can be used to obtain new instances ofTextFormat.Parser
.static enum
Determines if repeated values for non-repeated fields and oneofs are permitted.(package private) static final class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final boolean
private final boolean
private final boolean
private static final int
private TextFormatParseInfoTree.Builder
private final TextFormat.Parser.SingularOverwritePolicy
private final TypeRegistry
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Parser
(TypeRegistry typeRegistry, boolean allowUnknownFields, boolean allowUnknownEnumValues, boolean allowUnknownExtensions, TextFormat.Parser.SingularOverwritePolicy singularOverwritePolicy, TextFormatParseInfoTree.Builder parseInfoTreeBuilder) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
checkUnknownFields
(List<TextFormat.Parser.UnknownField> unknownFields) private void
consumeFieldValue
(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, Descriptors.FieldDescriptor field, ExtensionRegistry.ExtensionInfo extension, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields) Parse a single field value fromtokenizer
and merge it intobuilder
.private void
consumeFieldValues
(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, Descriptors.FieldDescriptor field, ExtensionRegistry.ExtensionInfo extension, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields) Parse a one or more field values fromtokenizer
and merge it intobuilder
.void
merge
(CharSequence input, ExtensionRegistry extensionRegistry, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.void
merge
(CharSequence input, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.void
merge
(Readable input, ExtensionRegistry extensionRegistry, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.void
merge
(Readable input, Message.Builder builder) Parse a text-format message frominput
and merge the contents intobuilder
.private void
mergeAnyFieldValue
(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields, Descriptors.Descriptor anyDescriptor) private void
mergeField
(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields) Parse a single field fromtokenizer
and merge it intotarget
.private void
mergeField
(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, List<TextFormat.Parser.UnknownField> unknownFields) Parse a single field fromtokenizer
and merge it intobuilder
.static TextFormat.Parser.Builder
Returns a new instance ofTextFormat.Parser.Builder
.private static void
skipField
(TextFormat.Tokenizer tokenizer) Skips the next field including the field's name and value.private static void
skipFieldMessage
(TextFormat.Tokenizer tokenizer) Skips the whole body of a message including the beginning delimiter and the ending delimiter.private static void
skipFieldValue
(TextFormat.Tokenizer tokenizer) Skips a field value.private static StringBuilder
toStringBuilder
(Readable input)
-
Field Details
-
typeRegistry
-
allowUnknownFields
private final boolean allowUnknownFields -
allowUnknownEnumValues
private final boolean allowUnknownEnumValues -
allowUnknownExtensions
private final boolean allowUnknownExtensions -
singularOverwritePolicy
-
parseInfoTreeBuilder
-
BUFFER_SIZE
private static final int BUFFER_SIZE- See Also:
-
-
Constructor Details
-
Parser
private Parser(TypeRegistry typeRegistry, boolean allowUnknownFields, boolean allowUnknownEnumValues, boolean allowUnknownExtensions, TextFormat.Parser.SingularOverwritePolicy singularOverwritePolicy, TextFormatParseInfoTree.Builder parseInfoTreeBuilder)
-
-
Method Details
-
newBuilder
Returns a new instance ofTextFormat.Parser.Builder
. -
merge
Parse a text-format message frominput
and merge the contents intobuilder
.- Throws:
IOException
-
merge
Parse a text-format message frominput
and merge the contents intobuilder
.- Throws:
TextFormat.ParseException
-
merge
public 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
-
toStringBuilder
- Throws:
IOException
-
checkUnknownFields
private void checkUnknownFields(List<TextFormat.Parser.UnknownField> unknownFields) throws TextFormat.ParseException - Throws:
TextFormat.ParseException
-
merge
public 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
-
mergeField
private void mergeField(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, List<TextFormat.Parser.UnknownField> unknownFields) throws TextFormat.ParseException Parse a single field fromtokenizer
and merge it intobuilder
.- Throws:
TextFormat.ParseException
-
mergeField
private void mergeField(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields) throws TextFormat.ParseException Parse a single field fromtokenizer
and merge it intotarget
.- Throws:
TextFormat.ParseException
-
consumeFieldValues
private void consumeFieldValues(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, Descriptors.FieldDescriptor field, ExtensionRegistry.ExtensionInfo extension, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields) throws TextFormat.ParseException Parse a one or more field values fromtokenizer
and merge it intobuilder
.- Throws:
TextFormat.ParseException
-
consumeFieldValue
private void consumeFieldValue(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, Descriptors.FieldDescriptor field, ExtensionRegistry.ExtensionInfo extension, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields) throws TextFormat.ParseException Parse a single field value fromtokenizer
and merge it intobuilder
.- Throws:
TextFormat.ParseException
-
mergeAnyFieldValue
private void mergeAnyFieldValue(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, TextFormatParseInfoTree.Builder parseTreeBuilder, List<TextFormat.Parser.UnknownField> unknownFields, Descriptors.Descriptor anyDescriptor) throws TextFormat.ParseException - Throws:
TextFormat.ParseException
-
skipField
Skips the next field including the field's name and value.- Throws:
TextFormat.ParseException
-
skipFieldMessage
private static void skipFieldMessage(TextFormat.Tokenizer tokenizer) throws TextFormat.ParseException Skips the whole body of a message including the beginning delimiter and the ending delimiter.- Throws:
TextFormat.ParseException
-
skipFieldValue
Skips a field value.- Throws:
TextFormat.ParseException
-