Class SchemaUtil


  • @ExperimentalApi
    final class SchemaUtil
    extends java.lang.Object
    Helper methods used by schemas.
    • Field Detail

      • GENERATED_MESSAGE_CLASS

        private static final java.lang.Class<?> GENERATED_MESSAGE_CLASS
      • PROTO2_UNKNOWN_FIELD_SET_SCHEMA

        private static final UnknownFieldSchema<?,​?> PROTO2_UNKNOWN_FIELD_SET_SCHEMA
      • PROTO3_UNKNOWN_FIELD_SET_SCHEMA

        private static final UnknownFieldSchema<?,​?> PROTO3_UNKNOWN_FIELD_SET_SCHEMA
      • UNKNOWN_FIELD_SET_LITE_SCHEMA

        private static final UnknownFieldSchema<?,​?> UNKNOWN_FIELD_SET_LITE_SCHEMA
      • DEFAULT_LOOK_UP_START_NUMBER

        private static final int DEFAULT_LOOK_UP_START_NUMBER
        See Also:
        Constant Field Values
    • Constructor Detail

      • SchemaUtil

        private SchemaUtil()
    • Method Detail

      • writeDouble

        public static void writeDouble​(int fieldNumber,
                                       double value,
                                       Writer writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFloat

        public static void writeFloat​(int fieldNumber,
                                      float value,
                                      Writer writer)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeInt64

        public static void writeInt64​(int fieldNumber,
                                      long value,
                                      Writer writer)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeUInt64

        public static void writeUInt64​(int fieldNumber,
                                       long value,
                                       Writer writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSInt64

        public static void writeSInt64​(int fieldNumber,
                                       long value,
                                       Writer writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFixed64

        public static void writeFixed64​(int fieldNumber,
                                        long value,
                                        Writer writer)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSFixed64

        public static void writeSFixed64​(int fieldNumber,
                                         long value,
                                         Writer writer)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • writeInt32

        public static void writeInt32​(int fieldNumber,
                                      int value,
                                      Writer writer)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeUInt32

        public static void writeUInt32​(int fieldNumber,
                                       int value,
                                       Writer writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSInt32

        public static void writeSInt32​(int fieldNumber,
                                       int value,
                                       Writer writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFixed32

        public static void writeFixed32​(int fieldNumber,
                                        int value,
                                        Writer writer)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSFixed32

        public static void writeSFixed32​(int fieldNumber,
                                         int value,
                                         Writer writer)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • writeEnum

        public static void writeEnum​(int fieldNumber,
                                     int value,
                                     Writer writer)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • writeBool

        public static void writeBool​(int fieldNumber,
                                     boolean value,
                                     Writer writer)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • writeString

        public static void writeString​(int fieldNumber,
                                       java.lang.Object value,
                                       Writer writer)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • writeStringInternal

        private static void writeStringInternal​(int fieldNumber,
                                                java.lang.String value,
                                                Writer writer)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • writeBytes

        public static void writeBytes​(int fieldNumber,
                                      ByteString value,
                                      Writer writer)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeMessage

        public static void writeMessage​(int fieldNumber,
                                        java.lang.Object value,
                                        Writer writer)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • writeDoubleList

        public static void writeDoubleList​(int fieldNumber,
                                           java.util.List<java.lang.Double> value,
                                           Writer writer,
                                           boolean packed)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFloatList

        public static void writeFloatList​(int fieldNumber,
                                          java.util.List<java.lang.Float> value,
                                          Writer writer,
                                          boolean packed)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • writeInt64List

        public static void writeInt64List​(int fieldNumber,
                                          java.util.List<java.lang.Long> value,
                                          Writer writer,
                                          boolean packed)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • writeUInt64List

        public static void writeUInt64List​(int fieldNumber,
                                           java.util.List<java.lang.Long> value,
                                           Writer writer,
                                           boolean packed)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSInt64List

        public static void writeSInt64List​(int fieldNumber,
                                           java.util.List<java.lang.Long> value,
                                           Writer writer,
                                           boolean packed)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFixed64List

        public static void writeFixed64List​(int fieldNumber,
                                            java.util.List<java.lang.Long> value,
                                            Writer writer,
                                            boolean packed)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSFixed64List

        public static void writeSFixed64List​(int fieldNumber,
                                             java.util.List<java.lang.Long> value,
                                             Writer writer,
                                             boolean packed)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • writeInt32List

        public static void writeInt32List​(int fieldNumber,
                                          java.util.List<java.lang.Integer> value,
                                          Writer writer,
                                          boolean packed)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • writeUInt32List

        public static void writeUInt32List​(int fieldNumber,
                                           java.util.List<java.lang.Integer> value,
                                           Writer writer,
                                           boolean packed)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSInt32List

        public static void writeSInt32List​(int fieldNumber,
                                           java.util.List<java.lang.Integer> value,
                                           Writer writer,
                                           boolean packed)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFixed32List

        public static void writeFixed32List​(int fieldNumber,
                                            java.util.List<java.lang.Integer> value,
                                            Writer writer,
                                            boolean packed)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSFixed32List

        public static void writeSFixed32List​(int fieldNumber,
                                             java.util.List<java.lang.Integer> value,
                                             Writer writer,
                                             boolean packed)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • writeEnumList

        public static void writeEnumList​(int fieldNumber,
                                         java.util.List<java.lang.Integer> value,
                                         Writer writer,
                                         boolean packed)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • writeBoolList

        public static void writeBoolList​(int fieldNumber,
                                         java.util.List<java.lang.Boolean> value,
                                         Writer writer,
                                         boolean packed)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • writeStringList

        public static void writeStringList​(int fieldNumber,
                                           java.util.List<java.lang.String> value,
                                           Writer writer)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeBytesList

        public static void writeBytesList​(int fieldNumber,
                                          java.util.List<ByteString> value,
                                          Writer writer)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • writeMessageList

        public static void writeMessageList​(int fieldNumber,
                                            java.util.List<?> value,
                                            Writer writer)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • writeMessageList

        public static void writeMessageList​(int fieldNumber,
                                            java.util.List<?> value,
                                            Writer writer,
                                            Schema schema)
                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • writeLazyFieldList

        public static void writeLazyFieldList​(int fieldNumber,
                                              java.util.List<?> value,
                                              Writer writer)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • writeGroupList

        public static void writeGroupList​(int fieldNumber,
                                          java.util.List<?> value,
                                          Writer writer)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • writeGroupList

        public static void writeGroupList​(int fieldNumber,
                                          java.util.List<?> value,
                                          Writer writer,
                                          Schema schema)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • computeSizeInt64ListNoTag

        static int computeSizeInt64ListNoTag​(java.util.List<java.lang.Long> list)
      • computeSizeInt64List

        static int computeSizeInt64List​(int fieldNumber,
                                        java.util.List<java.lang.Long> list,
                                        boolean packed)
      • computeSizeUInt64ListNoTag

        static int computeSizeUInt64ListNoTag​(java.util.List<java.lang.Long> list)
      • computeSizeUInt64List

        static int computeSizeUInt64List​(int fieldNumber,
                                         java.util.List<java.lang.Long> list,
                                         boolean packed)
      • computeSizeSInt64ListNoTag

        static int computeSizeSInt64ListNoTag​(java.util.List<java.lang.Long> list)
      • computeSizeSInt64List

        static int computeSizeSInt64List​(int fieldNumber,
                                         java.util.List<java.lang.Long> list,
                                         boolean packed)
      • computeSizeEnumListNoTag

        static int computeSizeEnumListNoTag​(java.util.List<java.lang.Integer> list)
      • computeSizeEnumList

        static int computeSizeEnumList​(int fieldNumber,
                                       java.util.List<java.lang.Integer> list,
                                       boolean packed)
      • computeSizeInt32ListNoTag

        static int computeSizeInt32ListNoTag​(java.util.List<java.lang.Integer> list)
      • computeSizeInt32List

        static int computeSizeInt32List​(int fieldNumber,
                                        java.util.List<java.lang.Integer> list,
                                        boolean packed)
      • computeSizeUInt32ListNoTag

        static int computeSizeUInt32ListNoTag​(java.util.List<java.lang.Integer> list)
      • computeSizeUInt32List

        static int computeSizeUInt32List​(int fieldNumber,
                                         java.util.List<java.lang.Integer> list,
                                         boolean packed)
      • computeSizeSInt32ListNoTag

        static int computeSizeSInt32ListNoTag​(java.util.List<java.lang.Integer> list)
      • computeSizeSInt32List

        static int computeSizeSInt32List​(int fieldNumber,
                                         java.util.List<java.lang.Integer> list,
                                         boolean packed)
      • computeSizeFixed32ListNoTag

        static int computeSizeFixed32ListNoTag​(java.util.List<?> list)
      • computeSizeFixed32List

        static int computeSizeFixed32List​(int fieldNumber,
                                          java.util.List<?> list,
                                          boolean packed)
      • computeSizeFixed64ListNoTag

        static int computeSizeFixed64ListNoTag​(java.util.List<?> list)
      • computeSizeFixed64List

        static int computeSizeFixed64List​(int fieldNumber,
                                          java.util.List<?> list,
                                          boolean packed)
      • computeSizeBoolListNoTag

        static int computeSizeBoolListNoTag​(java.util.List<?> list)
      • computeSizeBoolList

        static int computeSizeBoolList​(int fieldNumber,
                                       java.util.List<?> list,
                                       boolean packed)
      • computeSizeStringList

        static int computeSizeStringList​(int fieldNumber,
                                         java.util.List<?> list)
      • computeSizeMessage

        static int computeSizeMessage​(int fieldNumber,
                                      java.lang.Object value,
                                      Schema schema)
      • computeSizeMessageList

        static int computeSizeMessageList​(int fieldNumber,
                                          java.util.List<?> list)
      • computeSizeMessageList

        static int computeSizeMessageList​(int fieldNumber,
                                          java.util.List<?> list,
                                          Schema schema)
      • computeSizeByteStringList

        static int computeSizeByteStringList​(int fieldNumber,
                                             java.util.List<ByteString> list)
      • computeSizeGroupList

        static int computeSizeGroupList​(int fieldNumber,
                                        java.util.List<MessageLite> list)
      • computeSizeGroupList

        static int computeSizeGroupList​(int fieldNumber,
                                        java.util.List<MessageLite> list,
                                        Schema schema)
      • shouldUseTableSwitch

        public static boolean shouldUseTableSwitch​(int lo,
                                                   int hi,
                                                   int numFields)
        Determines whether to issue tableswitch or lookupswitch for the mergeFrom method. This is based on the logic in the JDK.
        Parameters:
        lo - the lowest fieldNumber contained within the message.
        hi - the highest fieldNumber contained within the message.
        numFields - the total number of fields in the message.
        Returns:
        true if tableswitch should be used, rather than lookupswitch.
      • proto2UnknownFieldSetSchema

        public static UnknownFieldSchema<?,​?> proto2UnknownFieldSetSchema()
      • proto3UnknownFieldSetSchema

        public static UnknownFieldSchema<?,​?> proto3UnknownFieldSetSchema()
      • unknownFieldSetLiteSchema

        public static UnknownFieldSchema<?,​?> unknownFieldSetLiteSchema()
      • getUnknownFieldSetSchema

        private static UnknownFieldSchema<?,​?> getUnknownFieldSetSchema​(boolean proto3)
      • getGeneratedMessageClass

        private static java.lang.Class<?> getGeneratedMessageClass()
      • getUnknownFieldSetSchemaClass

        private static java.lang.Class<?> getUnknownFieldSetSchemaClass()
      • getMapDefaultEntry

        static java.lang.Object getMapDefaultEntry​(java.lang.Class<?> clazz,
                                                   java.lang.String name)
      • toCamelCase

        static java.lang.String toCamelCase​(java.lang.String name,
                                            boolean capNext)
      • safeEquals

        static boolean safeEquals​(java.lang.Object a,
                                  java.lang.Object b)
        Returns true if both are null or both are Object.equals(java.lang.Object).
      • mergeMap

        static <T> void mergeMap​(MapFieldSchema mapFieldSchema,
                                 T message,
                                 T o,
                                 long offset)
      • mergeUnknownFields

        static <T,​UT,​UB> void mergeUnknownFields​(UnknownFieldSchema<UT,​UB> schema,
                                                             T message,
                                                             T other)
      • filterUnknownEnumList

        static <UT,​UB> UB filterUnknownEnumList​(java.lang.Object containerMessage,
                                                      int number,
                                                      java.util.List<java.lang.Integer> enumList,
                                                      Internal.EnumLiteMap<?> enumMap,
                                                      UB unknownFields,
                                                      UnknownFieldSchema<UT,​UB> unknownFieldSchema)
        Filters unrecognized enum values in a list.
      • filterUnknownEnumList

        static <UT,​UB> UB filterUnknownEnumList​(java.lang.Object containerMessage,
                                                      int number,
                                                      java.util.List<java.lang.Integer> enumList,
                                                      Internal.EnumVerifier enumVerifier,
                                                      UB unknownFields,
                                                      UnknownFieldSchema<UT,​UB> unknownFieldSchema)
        Filters unrecognized enum values in a list.
      • storeUnknownEnum

        static <UT,​UB> UB storeUnknownEnum​(java.lang.Object containerMessage,
                                                 int number,
                                                 int enumValue,
                                                 UB unknownFields,
                                                 UnknownFieldSchema<UT,​UB> unknownFieldSchema)
        Stores an unrecognized enum value as an unknown value.