Proto3MessageInfoFactory.java
Go to the documentation of this file.
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 package com.google.protobuf;
32 
33 import static com.google.protobuf.FieldInfo.forField;
34 import static com.google.protobuf.FieldInfo.forMapField;
35 import static com.google.protobuf.FieldInfo.forOneofMemberField;
36 import static com.google.protobuf.FieldInfo.forRepeatedMessageField;
37 
38 import com.google.protobuf.testing.Proto2Testing.Proto2MessageWithMaps;
39 import com.google.protobuf.testing.Proto3Testing.Proto3Empty;
40 import com.google.protobuf.testing.Proto3Testing.Proto3Message;
41 import com.google.protobuf.testing.Proto3Testing.Proto3MessageWithMaps;
42 import java.lang.reflect.Field;
43 
45 public final class Proto3MessageInfoFactory implements MessageInfoFactory {
47 
49 
51  return INSTANCE;
52  }
53 
54  @Override
55  public boolean isSupported(Class<?> clazz) {
56  return true;
57  }
58 
59  @Override
60  public MessageInfo messageInfoFor(Class<?> clazz) {
61  if (Proto3Message.class.isAssignableFrom(clazz)) {
63  } else if (Proto3Empty.class.isAssignableFrom(clazz)) {
65  } else if (Proto3MessageWithMaps.class.isAssignableFrom(clazz)) {
67  } else {
68  throw new IllegalArgumentException("Unsupported class: " + clazz.getName());
69  }
70  }
71 
78  private static StructuralMessageInfo newMessageInfoForProto3Message() {
79  StructuralMessageInfo.Builder builder = StructuralMessageInfo.newBuilder(48);
80  lookupFieldsByName(builder);
81  return builder.build();
82  }
83 
84  private static void lookupFieldsByName(StructuralMessageInfo.Builder builder) {
85  builder.withDefaultInstance(Proto3Message.getDefaultInstance());
86  builder.withSyntax(ProtoSyntax.PROTO3);
87  builder.withField(forField(field("fieldDouble1_"), 1, FieldType.DOUBLE, true));
88  builder.withField(forField(field("fieldFloat2_"), 2, FieldType.FLOAT, true));
89  builder.withField(forField(field("fieldInt643_"), 3, FieldType.INT64, true));
90  builder.withField(forField(field("fieldUint644_"), 4, FieldType.UINT64, true));
91  builder.withField(forField(field("fieldInt325_"), 5, FieldType.INT32, true));
92  builder.withField(forField(field("fieldFixed646_"), 6, FieldType.FIXED64, true));
93  builder.withField(forField(field("fieldFixed327_"), 7, FieldType.FIXED32, true));
94  builder.withField(forField(field("fieldBool8_"), 8, FieldType.BOOL, true));
95  builder.withField(forField(field("fieldString9_"), 9, FieldType.STRING, true));
96  builder.withField(forField(field("fieldMessage10_"), 10, FieldType.MESSAGE, true));
97  builder.withField(forField(field("fieldBytes11_"), 11, FieldType.BYTES, true));
98  builder.withField(forField(field("fieldUint3212_"), 12, FieldType.UINT32, true));
99  builder.withField(forField(field("fieldEnum13_"), 13, FieldType.ENUM, true));
100  builder.withField(forField(field("fieldSfixed3214_"), 14, FieldType.SFIXED32, true));
101  builder.withField(forField(field("fieldSfixed6415_"), 15, FieldType.SFIXED64, true));
102  builder.withField(forField(field("fieldSint3216_"), 16, FieldType.SINT32, true));
103  builder.withField(forField(field("fieldSint6417_"), 17, FieldType.SINT64, true));
104  builder.withField(forField(field("fieldDoubleList18_"), 18, FieldType.DOUBLE_LIST, true));
105  builder.withField(forField(field("fieldFloatList19_"), 19, FieldType.FLOAT_LIST, true));
106  builder.withField(forField(field("fieldInt64List20_"), 20, FieldType.INT64_LIST, true));
107  builder.withField(forField(field("fieldUint64List21_"), 21, FieldType.UINT64_LIST, true));
108  builder.withField(forField(field("fieldInt32List22_"), 22, FieldType.INT32_LIST, true));
109  builder.withField(forField(field("fieldFixed64List23_"), 23, FieldType.FIXED64_LIST, true));
110  builder.withField(forField(field("fieldFixed32List24_"), 24, FieldType.FIXED32_LIST, true));
111  builder.withField(forField(field("fieldBoolList25_"), 25, FieldType.BOOL_LIST, true));
112  builder.withField(forField(field("fieldStringList26_"), 26, FieldType.STRING_LIST, true));
113  builder.withField(
114  forRepeatedMessageField(
115  field("fieldMessageList27_"), 27, FieldType.MESSAGE_LIST, Proto3Message.class));
116  builder.withField(forField(field("fieldBytesList28_"), 28, FieldType.BYTES_LIST, true));
117  builder.withField(forField(field("fieldUint32List29_"), 29, FieldType.UINT32_LIST, true));
118  builder.withField(forField(field("fieldEnumList30_"), 30, FieldType.ENUM_LIST, true));
119  builder.withField(forField(field("fieldSfixed32List31_"), 31, FieldType.SFIXED32_LIST, true));
120  builder.withField(forField(field("fieldSfixed64List32_"), 32, FieldType.SFIXED64_LIST, true));
121  builder.withField(forField(field("fieldSint32List33_"), 33, FieldType.SINT32_LIST, true));
122  builder.withField(forField(field("fieldSint64List34_"), 34, FieldType.SINT64_LIST, true));
123  builder.withField(
124  forField(field("fieldDoubleListPacked35_"), 35, FieldType.DOUBLE_LIST_PACKED, true));
125  builder.withField(
126  forField(field("fieldFloatListPacked36_"), 36, FieldType.FLOAT_LIST_PACKED, true));
127  builder.withField(
128  forField(field("fieldInt64ListPacked37_"), 37, FieldType.INT64_LIST_PACKED, true));
129  builder.withField(
130  forField(field("fieldUint64ListPacked38_"), 38, FieldType.UINT64_LIST_PACKED, true));
131  builder.withField(
132  forField(field("fieldInt32ListPacked39_"), 39, FieldType.INT32_LIST_PACKED, true));
133  builder.withField(
134  forField(field("fieldFixed64ListPacked40_"), 40, FieldType.FIXED64_LIST_PACKED, true));
135  builder.withField(
136  forField(field("fieldFixed32ListPacked41_"), 41, FieldType.FIXED32_LIST_PACKED, true));
137  builder.withField(
138  forField(field("fieldBoolListPacked42_"), 42, FieldType.BOOL_LIST_PACKED, true));
139  builder.withField(
140  forField(field("fieldUint32ListPacked43_"), 43, FieldType.UINT32_LIST_PACKED, true));
141  builder.withField(
142  forField(field("fieldEnumListPacked44_"), 44, FieldType.ENUM_LIST_PACKED, true));
143  builder.withField(
144  forField(field("fieldSfixed32ListPacked45_"), 45, FieldType.SFIXED32_LIST_PACKED, true));
145  builder.withField(
146  forField(field("fieldSfixed64ListPacked46_"), 46, FieldType.SFIXED64_LIST_PACKED, true));
147  builder.withField(
148  forField(field("fieldSint32ListPacked47_"), 47, FieldType.SINT32_LIST_PACKED, true));
149  builder.withField(
150  forField(field("fieldSint64ListPacked48_"), 48, FieldType.SINT64_LIST_PACKED, true));
151 
152  OneofInfo oneof = new OneofInfo(0, field("testOneofCase_"), field("testOneof_"));
153  builder.withField(forOneofMemberField(53, FieldType.DOUBLE, oneof, Double.class, true, null));
154  builder.withField(forOneofMemberField(54, FieldType.FLOAT, oneof, Float.class, true, null));
155  builder.withField(forOneofMemberField(55, FieldType.INT64, oneof, Long.class, true, null));
156  builder.withField(forOneofMemberField(56, FieldType.UINT64, oneof, Long.class, true, null));
157  builder.withField(forOneofMemberField(57, FieldType.INT32, oneof, Integer.class, true, null));
158  builder.withField(forOneofMemberField(58, FieldType.FIXED64, oneof, Long.class, true, null));
159  builder.withField(forOneofMemberField(59, FieldType.FIXED32, oneof, Integer.class, true, null));
160  builder.withField(forOneofMemberField(60, FieldType.BOOL, oneof, Boolean.class, true, null));
161  builder.withField(forOneofMemberField(61, FieldType.STRING, oneof, String.class, true, null));
162  builder.withField(
163  forOneofMemberField(62, FieldType.MESSAGE, oneof, Proto3Message.class, true, null));
164  builder.withField(
165  forOneofMemberField(63, FieldType.BYTES, oneof, ByteString.class, true, null));
166  builder.withField(forOneofMemberField(64, FieldType.UINT32, oneof, Integer.class, true, null));
167  builder.withField(
168  forOneofMemberField(65, FieldType.SFIXED32, oneof, Integer.class, true, null));
169  builder.withField(forOneofMemberField(66, FieldType.SFIXED64, oneof, Long.class, true, null));
170  builder.withField(forOneofMemberField(67, FieldType.SINT32, oneof, Integer.class, true, null));
171  builder.withField(forOneofMemberField(68, FieldType.SINT64, oneof, Long.class, true, null));
172  }
173 
174  private StructuralMessageInfo newMessageInfoForProto3Empty() {
175  StructuralMessageInfo.Builder builder = StructuralMessageInfo.newBuilder(1);
176  builder.withSyntax(ProtoSyntax.PROTO3);
177  return builder.build();
178  }
179 
180  private StructuralMessageInfo newMessageInfoForProto3MessageWithMaps() {
181  StructuralMessageInfo.Builder builder = StructuralMessageInfo.newBuilder();
182  builder.withSyntax(ProtoSyntax.PROTO3);
183  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_bool_1", 1));
184  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_bytes_2", 2));
185  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_double_3", 3));
186  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_enum_4", 4));
187  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_fixed32_5", 5));
188  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_fixed64_6", 6));
189  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_float_7", 7));
190  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_int32_8", 8));
191  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_int64_9", 9));
192  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_message_10", 10));
193  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_sfixed32_11", 11));
194  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_sfixed64_12", 12));
195  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_sint32_13", 13));
196  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_sint64_14", 14));
197  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_string_15", 15));
198  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_uint32_16", 16));
199  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_bool_uint64_17", 17));
200  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_bool_18", 18));
201  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_bytes_19", 19));
202  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_double_20", 20));
203  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_enum_21", 21));
204  builder.withField(
205  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_fixed32_22", 22));
206  builder.withField(
207  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_fixed64_23", 23));
208  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_float_24", 24));
209  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_int32_25", 25));
210  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_int64_26", 26));
211  builder.withField(
212  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_message_27", 27));
213  builder.withField(
214  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_sfixed32_28", 28));
215  builder.withField(
216  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_sfixed64_29", 29));
217  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_sint32_30", 30));
218  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_sint64_31", 31));
219  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_string_32", 32));
220  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_uint32_33", 33));
221  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed32_uint64_34", 34));
222  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_bool_35", 35));
223  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_bytes_36", 36));
224  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_double_37", 37));
225  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_enum_38", 38));
226  builder.withField(
227  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_fixed32_39", 39));
228  builder.withField(
229  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_fixed64_40", 40));
230  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_float_41", 41));
231  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_int32_42", 42));
232  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_int64_43", 43));
233  builder.withField(
234  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_message_44", 44));
235  builder.withField(
236  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_sfixed32_45", 45));
237  builder.withField(
238  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_sfixed64_46", 46));
239  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_sint32_47", 47));
240  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_sint64_48", 48));
241  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_string_49", 49));
242  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_uint32_50", 50));
243  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_fixed64_uint64_51", 51));
244  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_bool_52", 52));
245  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_bytes_53", 53));
246  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_double_54", 54));
247  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_enum_55", 55));
248  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_fixed32_56", 56));
249  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_fixed64_57", 57));
250  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_float_58", 58));
251  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_int32_59", 59));
252  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_int64_60", 60));
253  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_message_61", 61));
254  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_sfixed32_62", 62));
255  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_sfixed64_63", 63));
256  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_sint32_64", 64));
257  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_sint64_65", 65));
258  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_string_66", 66));
259  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_uint32_67", 67));
260  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int32_uint64_68", 68));
261  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_bool_69", 69));
262  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_bytes_70", 70));
263  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_double_71", 71));
264  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_enum_72", 72));
265  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_fixed32_73", 73));
266  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_fixed64_74", 74));
267  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_float_75", 75));
268  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_int32_76", 76));
269  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_int64_77", 77));
270  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_message_78", 78));
271  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_sfixed32_79", 79));
272  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_sfixed64_80", 80));
273  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_sint32_81", 81));
274  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_sint64_82", 82));
275  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_string_83", 83));
276  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_uint32_84", 84));
277  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_int64_uint64_85", 85));
278  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_bool_86", 86));
279  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_bytes_87", 87));
280  builder.withField(
281  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_double_88", 88));
282  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_enum_89", 89));
283  builder.withField(
284  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_fixed32_90", 90));
285  builder.withField(
286  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_fixed64_91", 91));
287  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_float_92", 92));
288  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_int32_93", 93));
289  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_int64_94", 94));
290  builder.withField(
291  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_message_95", 95));
292  builder.withField(
293  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_sfixed32_96", 96));
294  builder.withField(
295  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_sfixed64_97", 97));
296  builder.withField(
297  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_sint32_98", 98));
298  builder.withField(
299  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_sint64_99", 99));
300  builder.withField(
301  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_string_100", 100));
302  builder.withField(
303  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_uint32_101", 101));
304  builder.withField(
305  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed32_uint64_102", 102));
306  builder.withField(
307  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_bool_103", 103));
308  builder.withField(
309  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_bytes_104", 104));
310  builder.withField(
311  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_double_105", 105));
312  builder.withField(
313  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_enum_106", 106));
314  builder.withField(
315  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_fixed32_107", 107));
316  builder.withField(
317  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_fixed64_108", 108));
318  builder.withField(
319  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_float_109", 109));
320  builder.withField(
321  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_int32_110", 110));
322  builder.withField(
323  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_int64_111", 111));
324  builder.withField(
325  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_message_112", 112));
326  builder.withField(
327  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_sfixed32_113", 113));
328  builder.withField(
329  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_sfixed64_114", 114));
330  builder.withField(
331  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_sint32_115", 115));
332  builder.withField(
333  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_sint64_116", 116));
334  builder.withField(
335  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_string_117", 117));
336  builder.withField(
337  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_uint32_118", 118));
338  builder.withField(
339  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sfixed64_uint64_119", 119));
340  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_bool_120", 120));
341  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_bytes_121", 121));
342  builder.withField(
343  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_double_122", 122));
344  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_enum_123", 123));
345  builder.withField(
346  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_fixed32_124", 124));
347  builder.withField(
348  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_fixed64_125", 125));
349  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_float_126", 126));
350  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_int32_127", 127));
351  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_int64_128", 128));
352  builder.withField(
353  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_message_129", 129));
354  builder.withField(
355  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_sfixed32_130", 130));
356  builder.withField(
357  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_sfixed64_131", 131));
358  builder.withField(
359  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_sint32_132", 132));
360  builder.withField(
361  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_sint64_133", 133));
362  builder.withField(
363  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_string_134", 134));
364  builder.withField(
365  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_uint32_135", 135));
366  builder.withField(
367  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint32_uint64_136", 136));
368  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_bool_137", 137));
369  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_bytes_138", 138));
370  builder.withField(
371  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_double_139", 139));
372  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_enum_140", 140));
373  builder.withField(
374  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_fixed32_141", 141));
375  builder.withField(
376  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_fixed64_142", 142));
377  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_float_143", 143));
378  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_int32_144", 144));
379  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_int64_145", 145));
380  builder.withField(
381  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_message_146", 146));
382  builder.withField(
383  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_sfixed32_147", 147));
384  builder.withField(
385  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_sfixed64_148", 148));
386  builder.withField(
387  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_sint32_149", 149));
388  builder.withField(
389  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_sint64_150", 150));
390  builder.withField(
391  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_string_151", 151));
392  builder.withField(
393  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_uint32_152", 152));
394  builder.withField(
395  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_sint64_uint64_153", 153));
396  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_bool_154", 154));
397  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_bytes_155", 155));
398  builder.withField(
399  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_double_156", 156));
400  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_enum_157", 157));
401  builder.withField(
402  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_fixed32_158", 158));
403  builder.withField(
404  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_fixed64_159", 159));
405  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_float_160", 160));
406  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_int32_161", 161));
407  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_int64_162", 162));
408  builder.withField(
409  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_message_163", 163));
410  builder.withField(
411  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_sfixed32_164", 164));
412  builder.withField(
413  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_sfixed64_165", 165));
414  builder.withField(
415  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_sint32_166", 166));
416  builder.withField(
417  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_sint64_167", 167));
418  builder.withField(
419  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_string_168", 168));
420  builder.withField(
421  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_uint32_169", 169));
422  builder.withField(
423  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_string_uint64_170", 170));
424  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_bool_171", 171));
425  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_bytes_172", 172));
426  builder.withField(
427  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_double_173", 173));
428  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_enum_174", 174));
429  builder.withField(
430  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_fixed32_175", 175));
431  builder.withField(
432  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_fixed64_176", 176));
433  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_float_177", 177));
434  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_int32_178", 178));
435  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_int64_179", 179));
436  builder.withField(
437  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_message_180", 180));
438  builder.withField(
439  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_sfixed32_181", 181));
440  builder.withField(
441  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_sfixed64_182", 182));
442  builder.withField(
443  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_sint32_183", 183));
444  builder.withField(
445  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_sint64_184", 184));
446  builder.withField(
447  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_string_185", 185));
448  builder.withField(
449  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_uint32_186", 186));
450  builder.withField(
451  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint32_uint64_187", 187));
452  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_bool_188", 188));
453  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_bytes_189", 189));
454  builder.withField(
455  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_double_190", 190));
456  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_enum_191", 191));
457  builder.withField(
458  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_fixed32_192", 192));
459  builder.withField(
460  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_fixed64_193", 193));
461  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_float_194", 194));
462  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_int32_195", 195));
463  builder.withField(mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_int64_196", 196));
464  builder.withField(
465  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_message_197", 197));
466  builder.withField(
467  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_sfixed32_198", 198));
468  builder.withField(
469  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_sfixed64_199", 199));
470  builder.withField(
471  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_sint32_200", 200));
472  builder.withField(
473  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_sint64_201", 201));
474  builder.withField(
475  mapFieldInfo(Proto3MessageWithMaps.class, "field_map_uint64_string_202", 202));
476  builder.withField(
477  mapFieldInfo(Proto2MessageWithMaps.class, "field_map_uint64_uint32_203", 203));
478  builder.withField(
479  mapFieldInfo(Proto2MessageWithMaps.class, "field_map_uint64_uint64_204", 204));
480  return builder.build();
481  }
482 
483  private static Field field(String name) {
484  return field(Proto3Message.class, name);
485  }
486 
487  private static Field field(Class<?> clazz, String name) {
488  try {
489  return clazz.getDeclaredField(name);
490  } catch (NoSuchFieldException | SecurityException e) {
491  throw new RuntimeException(e);
492  }
493  }
494 
495  private static FieldInfo mapFieldInfo(Class<?> clazz, String fieldName, int fieldNumber) {
496  try {
497  return forMapField(
498  field(clazz, SchemaUtil.toCamelCase(fieldName, false) + "_"),
499  fieldNumber,
500  SchemaUtil.getMapDefaultEntry(clazz, fieldName),
501  null);
502  } catch (Throwable t) {
503  throw new RuntimeException(t);
504  }
505  }
506 }
com.google.protobuf.FieldType.FIXED64
FIXED64
Definition: FieldType.java:47
com.google.protobuf.FieldType.UINT64_LIST_PACKED
UINT64_LIST_PACKED
Definition: FieldType.java:80
com.google.protobuf.FieldType.SINT32
SINT32
Definition: FieldType.java:57
java::lang
com.google.protobuf.FieldType.STRING_LIST
STRING_LIST
Definition: FieldType.java:68
name
GLuint const GLchar * name
Definition: glcorearb.h:3055
com.google.protobuf.Proto3MessageInfoFactory.newMessageInfoForProto3Empty
StructuralMessageInfo newMessageInfoForProto3Empty()
Definition: Proto3MessageInfoFactory.java:174
com.google.protobuf.Proto3MessageInfoFactory.isSupported
boolean isSupported(Class<?> clazz)
Definition: Proto3MessageInfoFactory.java:55
com.google.protobuf.FieldType.SFIXED64
SFIXED64
Definition: FieldType.java:56
com.google.protobuf.FieldType.FLOAT
FLOAT
Definition: FieldType.java:43
com.google.protobuf.FieldType.BOOL
BOOL
Definition: FieldType.java:49
Proto2Testing
com.google.protobuf.Proto3MessageInfoFactory.newMessageInfoForProto3MessageWithMaps
StructuralMessageInfo newMessageInfoForProto3MessageWithMaps()
Definition: Proto3MessageInfoFactory.java:180
com.google.protobuf.FieldType.DOUBLE
DOUBLE
Definition: FieldType.java:42
com.google.protobuf.FieldType
Definition: FieldType.java:41
com.google.protobuf.FieldType.UINT64_LIST
UINT64_LIST
Definition: FieldType.java:63
com.google.protobuf
Definition: ProtoCaliperBenchmark.java:2
java::lang::reflect
com.google.protobuf.FieldType.ENUM
ENUM
Definition: FieldType.java:54
com.google.protobuf.Proto3MessageInfoFactory
Definition: Proto3MessageInfoFactory.java:45
com.google.protobuf.FieldType.FLOAT_LIST
FLOAT_LIST
Definition: FieldType.java:61
com.google.protobuf.FieldType.INT32
INT32
Definition: FieldType.java:46
com.google.protobuf.Proto3MessageInfoFactory.field
static Field field(Class<?> clazz, String name)
Definition: Proto3MessageInfoFactory.java:487
testing::internal::Double
FloatingPoint< double > Double
Definition: gtest-internal.h:429
com.google.protobuf.FieldInfo
Definition: FieldInfo.java:40
Proto3Message
com.google.protobuf.Proto3MessageInfoFactory.lookupFieldsByName
static void lookupFieldsByName(StructuralMessageInfo.Builder builder)
Definition: Proto3MessageInfoFactory.java:84
com.google.protobuf.Proto3MessageInfoFactory.INSTANCE
static final Proto3MessageInfoFactory INSTANCE
Definition: Proto3MessageInfoFactory.java:46
com.google.protobuf.FieldType.INT64_LIST_PACKED
INT64_LIST_PACKED
Definition: FieldType.java:79
com.google.protobuf.FieldType.INT32_LIST
INT32_LIST
Definition: FieldType.java:64
com.google.protobuf.FieldType.INT32_LIST_PACKED
INT32_LIST_PACKED
Definition: FieldType.java:81
testing::internal::Float
FloatingPoint< float > Float
Definition: gtest-internal.h:428
com.google.protobuf.FieldType.SFIXED32
SFIXED32
Definition: FieldType.java:55
com.google.protobuf.FieldType.INT64_LIST
INT64_LIST
Definition: FieldType.java:62
com.google.protobuf.FieldType.SFIXED32_LIST
SFIXED32_LIST
Definition: FieldType.java:73
com.google.protobuf.FieldType.SFIXED32_LIST_PACKED
SFIXED32_LIST_PACKED
Definition: FieldType.java:87
com.google.protobuf.ProtoSyntax.PROTO3
PROTO3
Definition: ProtoSyntax.java:37
com.google.protobuf.FieldType.FLOAT_LIST_PACKED
FLOAT_LIST_PACKED
Definition: FieldType.java:78
com.google.protobuf.FieldType.MESSAGE_LIST
MESSAGE_LIST
Definition: FieldType.java:69
com.google.protobuf.FieldType.FIXED64_LIST_PACKED
FIXED64_LIST_PACKED
Definition: FieldType.java:82
com.google.protobuf.FieldType.STRING
STRING
Definition: FieldType.java:50
com.google.protobuf.FieldType.SINT64_LIST_PACKED
SINT64_LIST_PACKED
Definition: FieldType.java:90
Proto3MessageWithMaps
com.google.protobuf.Proto3MessageInfoFactory.getInstance
static Proto3MessageInfoFactory getInstance()
Definition: Proto3MessageInfoFactory.java:50
com.google.protobuf.FieldType.SFIXED64_LIST
SFIXED64_LIST
Definition: FieldType.java:74
com.google.protobuf.FieldType.SINT64_LIST
SINT64_LIST
Definition: FieldType.java:76
com.google.protobuf.Proto3MessageInfoFactory.newMessageInfoForProto3Message
static StructuralMessageInfo newMessageInfoForProto3Message()
Definition: Proto3MessageInfoFactory.java:78
com.google.protobuf.FieldType.UINT64
UINT64
Definition: FieldType.java:45
com.google.protobuf.FieldType.SINT32_LIST_PACKED
SINT32_LIST_PACKED
Definition: FieldType.java:89
com.google.protobuf.Proto3MessageInfoFactory.mapFieldInfo
static FieldInfo mapFieldInfo(Class<?> clazz, String fieldName, int fieldNumber)
Definition: Proto3MessageInfoFactory.java:495
com.google.protobuf.FieldType.UINT32_LIST
UINT32_LIST
Definition: FieldType.java:71
com.google.protobuf.Proto3MessageInfoFactory.messageInfoFor
MessageInfo messageInfoFor(Class<?> clazz)
Definition: Proto3MessageInfoFactory.java:60
java
Field
struct Field Field
Definition: php/ext/google/protobuf/protobuf.h:638
com.google.protobuf.FieldType.ENUM_LIST_PACKED
ENUM_LIST_PACKED
Definition: FieldType.java:86
com.google.protobuf.Proto3MessageInfoFactory.Proto3MessageInfoFactory
Proto3MessageInfoFactory()
Definition: Proto3MessageInfoFactory.java:48
com.google.protobuf.FieldType.DOUBLE_LIST_PACKED
DOUBLE_LIST_PACKED
Definition: FieldType.java:77
com.google.protobuf.FieldType.MESSAGE
MESSAGE
Definition: FieldType.java:51
com.google.protobuf.FieldType.SFIXED64_LIST_PACKED
SFIXED64_LIST_PACKED
Definition: FieldType.java:88
com.google.protobuf.FieldType.DOUBLE_LIST
DOUBLE_LIST
Definition: FieldType.java:60
com.google.protobuf.FieldType.UINT32_LIST_PACKED
UINT32_LIST_PACKED
Definition: FieldType.java:85
com.google
com
com.google.protobuf.FieldType.INT64
INT64
Definition: FieldType.java:44
com.google.protobuf.FieldType.FIXED32_LIST
FIXED32_LIST
Definition: FieldType.java:66
com.google.protobuf.ProtoSyntax
Definition: ProtoSyntax.java:35
com.google.protobuf.FieldType.BYTES_LIST
BYTES_LIST
Definition: FieldType.java:70
com.google.protobuf.FieldType.UINT32
UINT32
Definition: FieldType.java:53
com.google.protobuf.FieldType.FIXED32
FIXED32
Definition: FieldType.java:48
com.google.protobuf.FieldType.BOOL_LIST
BOOL_LIST
Definition: FieldType.java:67
com.google.protobuf.FieldType.BOOL_LIST_PACKED
BOOL_LIST_PACKED
Definition: FieldType.java:84
com.google.protobuf.FieldType.SINT32_LIST
SINT32_LIST
Definition: FieldType.java:75
Proto3Empty
com.google.protobuf.FieldType.SINT64
SINT64
Definition: FieldType.java:58
com.google.protobuf.FieldType.BYTES
BYTES
Definition: FieldType.java:52
com.google.protobuf.Proto3MessageInfoFactory.field
static Field field(String name)
Definition: Proto3MessageInfoFactory.java:483
com.google.protobuf.FieldType.FIXED64_LIST
FIXED64_LIST
Definition: FieldType.java:65
com.google.protobuf.FieldType.ENUM_LIST
ENUM_LIST
Definition: FieldType.java:72
com.google.protobuf.FieldType.FIXED32_LIST_PACKED
FIXED32_LIST_PACKED
Definition: FieldType.java:83
com.google.protobuf.ByteString
Definition: ByteString.java:67


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:57