Class DiscardUnknownFieldsParser


  • public final class DiscardUnknownFieldsParser
    extends java.lang.Object
    Parsers to discard unknown fields during parsing.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <T extends Message>
      Parser<T>
      wrap​(Parser<T> parser)
      Wraps a given Parser into a new Parser that discards unknown fields during parsing.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • wrap

        public static final <T extends MessageParser<T> wrap​(Parser<T> parser)
        Wraps a given Parser into a new Parser that discards unknown fields during parsing.

        Usage example:

        
         private final static Parser<Foo> FOO_PARSER = DiscardUnknownFieldsParser.wrap(Foo.parser());
         Foo parseFooDiscardUnknown(ByteBuffer input) throws IOException {
           return FOO_PARSER.parseFrom(input);
         }
         

        Like all other implementations of Parser, this parser is stateless and thread-safe.

        Note that this discards fields which were totally unknown to the schema, but it does not discard unrecognized closed enum values (where the field was known but the value was not). This means that message.getUnknownFields() might still be non-empty for the parsed message. Open enums are recommended for improved behavior in the face of unrecognized values (open enums are the default in all syntaxes except for Proto2).

        Parameters:
        parser - The delegated parser that parses messages.
        Returns:
        a Parser that will discard unknown fields during parsing.