Package com.google.protobuf
Class TextFormat.Parser
- java.lang.Object
-
- com.google.protobuf.TextFormat.Parser
-
- Enclosing class:
- TextFormat
public static class TextFormat.Parser extends java.lang.Object
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, orTextFormat.Parser.Builder
to control the parser behavior.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TextFormat.Parser.Builder
Builder that can be used to obtain new instances ofTextFormat.Parser
.static class
TextFormat.Parser.SingularOverwritePolicy
Determines if repeated values for non-repeated fields and oneofs are permitted.(package private) static class
TextFormat.Parser.UnknownField
-
Field Summary
Fields Modifier and Type Field Description private boolean
allowUnknownEnumValues
private boolean
allowUnknownExtensions
private boolean
allowUnknownFields
private static int
BUFFER_SIZE
private TextFormatParseInfoTree.Builder
parseInfoTreeBuilder
private TextFormat.Parser.SingularOverwritePolicy
singularOverwritePolicy
private TypeRegistry
typeRegistry
-
Constructor Summary
Constructors Modifier Constructor Description private
Parser(TypeRegistry typeRegistry, boolean allowUnknownFields, boolean allowUnknownEnumValues, boolean allowUnknownExtensions, TextFormat.Parser.SingularOverwritePolicy singularOverwritePolicy, TextFormatParseInfoTree.Builder parseInfoTreeBuilder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkUnknownFields(java.util.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, java.util.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, java.util.List<TextFormat.Parser.UnknownField> unknownFields)
Parse a one or more field values fromtokenizer
and merge it intobuilder
.private void
detectSilentMarker(TextFormat.Tokenizer tokenizer)
A valid silent marker appears between a field name and its value.void
merge(java.lang.CharSequence input, ExtensionRegistry extensionRegistry, Message.Builder builder)
Parse a text-format message frominput
and merge the contents intobuilder
.void
merge(java.lang.CharSequence input, Message.Builder builder)
Parse a text-format message frominput
and merge the contents intobuilder
.void
merge(java.lang.Readable input, ExtensionRegistry extensionRegistry, Message.Builder builder)
Parse a text-format message frominput
and merge the contents intobuilder
.void
merge(java.lang.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, java.util.List<TextFormat.Parser.UnknownField> unknownFields, Descriptors.Descriptor anyDescriptor)
private void
mergeField(TextFormat.Tokenizer tokenizer, ExtensionRegistry extensionRegistry, MessageReflection.MergeTarget target, TextFormatParseInfoTree.Builder parseTreeBuilder, java.util.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, java.util.List<TextFormat.Parser.UnknownField> unknownFields)
Parse a single field fromtokenizer
and merge it intobuilder
.static TextFormat.Parser.Builder
newBuilder()
Returns a new instance ofTextFormat.Parser.Builder
.private void
skipField(TextFormat.Tokenizer tokenizer)
Skips the next field including the field's name and value.private void
skipFieldMessage(TextFormat.Tokenizer tokenizer)
Skips the whole body of a message including the beginning delimiter and the ending delimiter.private void
skipFieldValue(TextFormat.Tokenizer tokenizer)
Skips a field value.private static java.lang.StringBuilder
toStringBuilder(java.lang.Readable input)
-
-
-
Field Detail
-
typeRegistry
private final TypeRegistry typeRegistry
-
allowUnknownFields
private final boolean allowUnknownFields
-
allowUnknownEnumValues
private final boolean allowUnknownEnumValues
-
allowUnknownExtensions
private final boolean allowUnknownExtensions
-
singularOverwritePolicy
private final TextFormat.Parser.SingularOverwritePolicy singularOverwritePolicy
-
parseInfoTreeBuilder
private TextFormatParseInfoTree.Builder parseInfoTreeBuilder
-
BUFFER_SIZE
private static final int BUFFER_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Parser
private Parser(TypeRegistry typeRegistry, boolean allowUnknownFields, boolean allowUnknownEnumValues, boolean allowUnknownExtensions, TextFormat.Parser.SingularOverwritePolicy singularOverwritePolicy, TextFormatParseInfoTree.Builder parseInfoTreeBuilder)
-
-
Method Detail
-
detectSilentMarker
private void detectSilentMarker(TextFormat.Tokenizer tokenizer)
A valid silent marker appears between a field name and its value. If there is a ":" in between, the silent marker will only appear after the colon. This is called after a field name is parsed, and before the ":" if it exists. If the current token is ":", then containsSilentMarkerAfterCurrentToken indicates if there is a valid silent marker. Otherwise, the current token is part of the field value, so the silent marker is indicated by containsSilentMarkerAfterPrevToken.
-
newBuilder
public static TextFormat.Parser.Builder newBuilder()
Returns a new instance ofTextFormat.Parser.Builder
.
-
merge
public void merge(java.lang.Readable input, Message.Builder builder) throws java.io.IOException
Parse a text-format message frominput
and merge the contents intobuilder
.- Throws:
java.io.IOException
-
merge
public void merge(java.lang.CharSequence input, Message.Builder builder) throws TextFormat.ParseException
Parse a text-format message frominput
and merge the contents intobuilder
.- Throws:
TextFormat.ParseException
-
merge
public void merge(java.lang.Readable input, ExtensionRegistry extensionRegistry, Message.Builder builder) throws java.io.IOException
Parse a text-format message frominput
and merge the contents intobuilder
. Extensions will be recognized if they are registered inextensionRegistry
.- Throws:
java.io.IOException
-
toStringBuilder
private static java.lang.StringBuilder toStringBuilder(java.lang.Readable input) throws java.io.IOException
- Throws:
java.io.IOException
-
checkUnknownFields
private void checkUnknownFields(java.util.List<TextFormat.Parser.UnknownField> unknownFields) throws TextFormat.ParseException
- Throws:
TextFormat.ParseException
-
merge
public void merge(java.lang.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, java.util.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, java.util.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, java.util.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, java.util.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, java.util.List<TextFormat.Parser.UnknownField> unknownFields, Descriptors.Descriptor anyDescriptor) throws TextFormat.ParseException
- Throws:
TextFormat.ParseException
-
skipField
private void skipField(TextFormat.Tokenizer tokenizer) throws TextFormat.ParseException
Skips the next field including the field's name and value.- Throws:
TextFormat.ParseException
-
skipFieldMessage
private 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
private void skipFieldValue(TextFormat.Tokenizer tokenizer) throws TextFormat.ParseException
Skips a field value.- Throws:
TextFormat.ParseException
-
-