Class UnknownFieldSetLite


  • public final class UnknownFieldSetLite
    extends java.lang.Object
    UnknownFieldSetLite is used to keep track of fields which were seen when parsing a protocol message but whose field numbers or types are unrecognized. This most frequently occurs when new fields are added to a message type and then messages containing those fields are read by old software that was compiled before the new types were added.

    For use by generated code only.

    • Field Detail

      • count

        private int count
        The number of elements in the set.
      • tags

        private int[] tags
        The tag numbers for the elements in the set.
      • objects

        private java.lang.Object[] objects
        The boxed values of the elements in the set.
      • memoizedSerializedSize

        private int memoizedSerializedSize
        The lazily computed serialized size of the set.
      • isMutable

        private boolean isMutable
        Indicates that this object is mutable.
    • Constructor Detail

      • UnknownFieldSetLite

        private UnknownFieldSetLite()
        Constructs a mutable UnknownFieldSetLite.
      • UnknownFieldSetLite

        private UnknownFieldSetLite​(int count,
                                    int[] tags,
                                    java.lang.Object[] objects,
                                    boolean isMutable)
        Constructs the UnknownFieldSetLite.
    • Method Detail

      • getDefaultInstance

        public static UnknownFieldSetLite getDefaultInstance()
        Get an empty UnknownFieldSetLite.

        For use by generated code only.

      • makeImmutable

        public void makeImmutable()
        Marks this object as immutable.

        Future calls to methods that attempt to modify this object will throw.

      • checkMutable

        void checkMutable()
        Throws an UnsupportedOperationException if immutable.
      • writeTo

        public void writeTo​(CodedOutputStream output)
                     throws java.io.IOException
        Serializes the set and writes it to output.

        For use by generated code only.

        Throws:
        java.io.IOException
      • writeAsMessageSetTo

        public void writeAsMessageSetTo​(CodedOutputStream output)
                                 throws java.io.IOException
        Serializes the set and writes it to output using MessageSet wire format.

        For use by generated code only.

        Throws:
        java.io.IOException
      • writeAsMessageSetTo

        void writeAsMessageSetTo​(Writer writer)
                          throws java.io.IOException
        Serializes the set and writes it to writer using MessageSet wire format.
        Throws:
        java.io.IOException
      • writeTo

        public void writeTo​(Writer writer)
                     throws java.io.IOException
        Serializes the set and writes it to writer.
        Throws:
        java.io.IOException
      • writeField

        private static void writeField​(int tag,
                                       java.lang.Object object,
                                       Writer writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • getSerializedSizeAsMessageSet

        public int getSerializedSizeAsMessageSet()
        Get the number of bytes required to encode this field, including field number, using MessageSet wire format.
      • getSerializedSize

        public int getSerializedSize()
        Get the number of bytes required to encode this set.

        For use by generated code only.

      • tagsEquals

        private static boolean tagsEquals​(int[] tags1,
                                          int[] tags2,
                                          int count)
      • objectsEquals

        private static boolean objectsEquals​(java.lang.Object[] objects1,
                                             java.lang.Object[] objects2,
                                             int count)
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        private static int hashCode​(int[] tags,
                                    int count)
      • hashCode

        private static int hashCode​(java.lang.Object[] objects,
                                    int count)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • printWithIndent

        final void printWithIndent​(java.lang.StringBuilder buffer,
                                   int indent)
        Prints a String representation of the unknown field set.

        For use by generated code only.

        Parameters:
        buffer - the buffer to write to
        indent - the number of spaces the fields should be indented by
      • storeField

        void storeField​(int tag,
                        java.lang.Object value)
      • ensureCapacity

        private void ensureCapacity()
        Ensures that our arrays are long enough to store more metadata.
      • mergeFieldFrom

        boolean mergeFieldFrom​(int tag,
                               CodedInputStream input)
                        throws java.io.IOException
        Parse a single field from input and merge it into this set.

        For use by generated code only.

        Parameters:
        tag - The field's tag number, which was already parsed.
        Returns:
        false if the tag is an end group tag.
        Throws:
        java.io.IOException
      • mergeVarintField

        UnknownFieldSetLite mergeVarintField​(int fieldNumber,
                                             int value)
        Convenience method for merging a new field containing a single varint value. This is used in particular when an unknown enum value is encountered.

        For use by generated code only.

      • mergeLengthDelimitedField

        UnknownFieldSetLite mergeLengthDelimitedField​(int fieldNumber,
                                                      ByteString value)
        Convenience method for merging a length-delimited field.

        For use by generated code only.

      • mergeFrom

        private UnknownFieldSetLite mergeFrom​(CodedInputStream input)
                                       throws java.io.IOException
        Parse an entire message from input and merge its fields into this set.
        Throws:
        java.io.IOException