Test Failed
Branch main (436074)
by Christian
04:44 queued 02:15
created

protoreflect.*SourcePath.appendFileOptions   F

Complexity

Conditions 23

Size

Total Lines 49
Code Lines 47

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 23
eloc 47
nop 1
dl 0
loc 49
rs 0
c 0
b 0
f 0

How to fix   Complexity   

Complexity

Complex classes like protoreflect.*SourcePath.appendFileOptions often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
// Copyright 2019 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4
5
// Code generated by generate-protos. DO NOT EDIT.
6
7
package protoreflect
8
9
func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte {
10
	if len(*p) == 0 {
11
		return b
12
	}
13
	switch (*p)[0] {
14
	case 1:
15
		b = p.appendSingularField(b, "name", nil)
16
	case 2:
17
		b = p.appendSingularField(b, "package", nil)
18
	case 3:
19
		b = p.appendRepeatedField(b, "dependency", nil)
20
	case 10:
21
		b = p.appendRepeatedField(b, "public_dependency", nil)
22
	case 11:
23
		b = p.appendRepeatedField(b, "weak_dependency", nil)
24
	case 4:
25
		b = p.appendRepeatedField(b, "message_type", (*SourcePath).appendDescriptorProto)
26
	case 5:
27
		b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto)
28
	case 6:
29
		b = p.appendRepeatedField(b, "service", (*SourcePath).appendServiceDescriptorProto)
30
	case 7:
31
		b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto)
32
	case 8:
33
		b = p.appendSingularField(b, "options", (*SourcePath).appendFileOptions)
34
	case 9:
35
		b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo)
36
	case 12:
37
		b = p.appendSingularField(b, "syntax", nil)
38
	}
39
	return b
40
}
41
42
func (p *SourcePath) appendDescriptorProto(b []byte) []byte {
43
	if len(*p) == 0 {
44
		return b
45
	}
46
	switch (*p)[0] {
47
	case 1:
48
		b = p.appendSingularField(b, "name", nil)
49
	case 2:
50
		b = p.appendRepeatedField(b, "field", (*SourcePath).appendFieldDescriptorProto)
51
	case 6:
52
		b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto)
53
	case 3:
54
		b = p.appendRepeatedField(b, "nested_type", (*SourcePath).appendDescriptorProto)
55
	case 4:
56
		b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto)
57
	case 5:
58
		b = p.appendRepeatedField(b, "extension_range", (*SourcePath).appendDescriptorProto_ExtensionRange)
59
	case 8:
60
		b = p.appendRepeatedField(b, "oneof_decl", (*SourcePath).appendOneofDescriptorProto)
61
	case 7:
62
		b = p.appendSingularField(b, "options", (*SourcePath).appendMessageOptions)
63
	case 9:
64
		b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendDescriptorProto_ReservedRange)
65
	case 10:
66
		b = p.appendRepeatedField(b, "reserved_name", nil)
67
	}
68
	return b
69
}
70
71
func (p *SourcePath) appendEnumDescriptorProto(b []byte) []byte {
72
	if len(*p) == 0 {
73
		return b
74
	}
75
	switch (*p)[0] {
76
	case 1:
77
		b = p.appendSingularField(b, "name", nil)
78
	case 2:
79
		b = p.appendRepeatedField(b, "value", (*SourcePath).appendEnumValueDescriptorProto)
80
	case 3:
81
		b = p.appendSingularField(b, "options", (*SourcePath).appendEnumOptions)
82
	case 4:
83
		b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendEnumDescriptorProto_EnumReservedRange)
84
	case 5:
85
		b = p.appendRepeatedField(b, "reserved_name", nil)
86
	}
87
	return b
88
}
89
90
func (p *SourcePath) appendServiceDescriptorProto(b []byte) []byte {
91
	if len(*p) == 0 {
92
		return b
93
	}
94
	switch (*p)[0] {
95
	case 1:
96
		b = p.appendSingularField(b, "name", nil)
97
	case 2:
98
		b = p.appendRepeatedField(b, "method", (*SourcePath).appendMethodDescriptorProto)
99
	case 3:
100
		b = p.appendSingularField(b, "options", (*SourcePath).appendServiceOptions)
101
	}
102
	return b
103
}
104
105
func (p *SourcePath) appendFieldDescriptorProto(b []byte) []byte {
106
	if len(*p) == 0 {
107
		return b
108
	}
109
	switch (*p)[0] {
110
	case 1:
111
		b = p.appendSingularField(b, "name", nil)
112
	case 3:
113
		b = p.appendSingularField(b, "number", nil)
114
	case 4:
115
		b = p.appendSingularField(b, "label", nil)
116
	case 5:
117
		b = p.appendSingularField(b, "type", nil)
118
	case 6:
119
		b = p.appendSingularField(b, "type_name", nil)
120
	case 2:
121
		b = p.appendSingularField(b, "extendee", nil)
122
	case 7:
123
		b = p.appendSingularField(b, "default_value", nil)
124
	case 9:
125
		b = p.appendSingularField(b, "oneof_index", nil)
126
	case 10:
127
		b = p.appendSingularField(b, "json_name", nil)
128
	case 8:
129
		b = p.appendSingularField(b, "options", (*SourcePath).appendFieldOptions)
130
	case 17:
131
		b = p.appendSingularField(b, "proto3_optional", nil)
132
	}
133
	return b
134
}
135
136
func (p *SourcePath) appendFileOptions(b []byte) []byte {
137
	if len(*p) == 0 {
138
		return b
139
	}
140
	switch (*p)[0] {
141
	case 1:
142
		b = p.appendSingularField(b, "java_package", nil)
143
	case 8:
144
		b = p.appendSingularField(b, "java_outer_classname", nil)
145
	case 10:
146
		b = p.appendSingularField(b, "java_multiple_files", nil)
147
	case 20:
148
		b = p.appendSingularField(b, "java_generate_equals_and_hash", nil)
149
	case 27:
150
		b = p.appendSingularField(b, "java_string_check_utf8", nil)
151
	case 9:
152
		b = p.appendSingularField(b, "optimize_for", nil)
153
	case 11:
154
		b = p.appendSingularField(b, "go_package", nil)
155
	case 16:
156
		b = p.appendSingularField(b, "cc_generic_services", nil)
157
	case 17:
158
		b = p.appendSingularField(b, "java_generic_services", nil)
159
	case 18:
160
		b = p.appendSingularField(b, "py_generic_services", nil)
161
	case 42:
162
		b = p.appendSingularField(b, "php_generic_services", nil)
163
	case 23:
164
		b = p.appendSingularField(b, "deprecated", nil)
165
	case 31:
166
		b = p.appendSingularField(b, "cc_enable_arenas", nil)
167
	case 36:
168
		b = p.appendSingularField(b, "objc_class_prefix", nil)
169
	case 37:
170
		b = p.appendSingularField(b, "csharp_namespace", nil)
171
	case 39:
172
		b = p.appendSingularField(b, "swift_prefix", nil)
173
	case 40:
174
		b = p.appendSingularField(b, "php_class_prefix", nil)
175
	case 41:
176
		b = p.appendSingularField(b, "php_namespace", nil)
177
	case 44:
178
		b = p.appendSingularField(b, "php_metadata_namespace", nil)
179
	case 45:
180
		b = p.appendSingularField(b, "ruby_package", nil)
181
	case 999:
182
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
183
	}
184
	return b
185
}
186
187
func (p *SourcePath) appendSourceCodeInfo(b []byte) []byte {
188
	if len(*p) == 0 {
189
		return b
190
	}
191
	switch (*p)[0] {
192
	case 1:
193
		b = p.appendRepeatedField(b, "location", (*SourcePath).appendSourceCodeInfo_Location)
194
	}
195
	return b
196
}
197
198
func (p *SourcePath) appendDescriptorProto_ExtensionRange(b []byte) []byte {
199
	if len(*p) == 0 {
200
		return b
201
	}
202
	switch (*p)[0] {
203
	case 1:
204
		b = p.appendSingularField(b, "start", nil)
205
	case 2:
206
		b = p.appendSingularField(b, "end", nil)
207
	case 3:
208
		b = p.appendSingularField(b, "options", (*SourcePath).appendExtensionRangeOptions)
209
	}
210
	return b
211
}
212
213
func (p *SourcePath) appendOneofDescriptorProto(b []byte) []byte {
214
	if len(*p) == 0 {
215
		return b
216
	}
217
	switch (*p)[0] {
218
	case 1:
219
		b = p.appendSingularField(b, "name", nil)
220
	case 2:
221
		b = p.appendSingularField(b, "options", (*SourcePath).appendOneofOptions)
222
	}
223
	return b
224
}
225
226
func (p *SourcePath) appendMessageOptions(b []byte) []byte {
227
	if len(*p) == 0 {
228
		return b
229
	}
230
	switch (*p)[0] {
231
	case 1:
232
		b = p.appendSingularField(b, "message_set_wire_format", nil)
233
	case 2:
234
		b = p.appendSingularField(b, "no_standard_descriptor_accessor", nil)
235
	case 3:
236
		b = p.appendSingularField(b, "deprecated", nil)
237
	case 7:
238
		b = p.appendSingularField(b, "map_entry", nil)
239
	case 999:
240
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
241
	}
242
	return b
243
}
244
245
func (p *SourcePath) appendDescriptorProto_ReservedRange(b []byte) []byte {
246
	if len(*p) == 0 {
247
		return b
248
	}
249
	switch (*p)[0] {
250
	case 1:
251
		b = p.appendSingularField(b, "start", nil)
252
	case 2:
253
		b = p.appendSingularField(b, "end", nil)
254
	}
255
	return b
256
}
257
258
func (p *SourcePath) appendEnumValueDescriptorProto(b []byte) []byte {
259
	if len(*p) == 0 {
260
		return b
261
	}
262
	switch (*p)[0] {
263
	case 1:
264
		b = p.appendSingularField(b, "name", nil)
265
	case 2:
266
		b = p.appendSingularField(b, "number", nil)
267
	case 3:
268
		b = p.appendSingularField(b, "options", (*SourcePath).appendEnumValueOptions)
269
	}
270
	return b
271
}
272
273
func (p *SourcePath) appendEnumOptions(b []byte) []byte {
274
	if len(*p) == 0 {
275
		return b
276
	}
277
	switch (*p)[0] {
278
	case 2:
279
		b = p.appendSingularField(b, "allow_alias", nil)
280
	case 3:
281
		b = p.appendSingularField(b, "deprecated", nil)
282
	case 999:
283
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
284
	}
285
	return b
286
}
287
288
func (p *SourcePath) appendEnumDescriptorProto_EnumReservedRange(b []byte) []byte {
289
	if len(*p) == 0 {
290
		return b
291
	}
292
	switch (*p)[0] {
293
	case 1:
294
		b = p.appendSingularField(b, "start", nil)
295
	case 2:
296
		b = p.appendSingularField(b, "end", nil)
297
	}
298
	return b
299
}
300
301
func (p *SourcePath) appendMethodDescriptorProto(b []byte) []byte {
302
	if len(*p) == 0 {
303
		return b
304
	}
305
	switch (*p)[0] {
306
	case 1:
307
		b = p.appendSingularField(b, "name", nil)
308
	case 2:
309
		b = p.appendSingularField(b, "input_type", nil)
310
	case 3:
311
		b = p.appendSingularField(b, "output_type", nil)
312
	case 4:
313
		b = p.appendSingularField(b, "options", (*SourcePath).appendMethodOptions)
314
	case 5:
315
		b = p.appendSingularField(b, "client_streaming", nil)
316
	case 6:
317
		b = p.appendSingularField(b, "server_streaming", nil)
318
	}
319
	return b
320
}
321
322
func (p *SourcePath) appendServiceOptions(b []byte) []byte {
323
	if len(*p) == 0 {
324
		return b
325
	}
326
	switch (*p)[0] {
327
	case 33:
328
		b = p.appendSingularField(b, "deprecated", nil)
329
	case 999:
330
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
331
	}
332
	return b
333
}
334
335
func (p *SourcePath) appendFieldOptions(b []byte) []byte {
336
	if len(*p) == 0 {
337
		return b
338
	}
339
	switch (*p)[0] {
340
	case 1:
341
		b = p.appendSingularField(b, "ctype", nil)
342
	case 2:
343
		b = p.appendSingularField(b, "packed", nil)
344
	case 6:
345
		b = p.appendSingularField(b, "jstype", nil)
346
	case 5:
347
		b = p.appendSingularField(b, "lazy", nil)
348
	case 3:
349
		b = p.appendSingularField(b, "deprecated", nil)
350
	case 10:
351
		b = p.appendSingularField(b, "weak", nil)
352
	case 999:
353
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
354
	}
355
	return b
356
}
357
358
func (p *SourcePath) appendUninterpretedOption(b []byte) []byte {
359
	if len(*p) == 0 {
360
		return b
361
	}
362
	switch (*p)[0] {
363
	case 2:
364
		b = p.appendRepeatedField(b, "name", (*SourcePath).appendUninterpretedOption_NamePart)
365
	case 3:
366
		b = p.appendSingularField(b, "identifier_value", nil)
367
	case 4:
368
		b = p.appendSingularField(b, "positive_int_value", nil)
369
	case 5:
370
		b = p.appendSingularField(b, "negative_int_value", nil)
371
	case 6:
372
		b = p.appendSingularField(b, "double_value", nil)
373
	case 7:
374
		b = p.appendSingularField(b, "string_value", nil)
375
	case 8:
376
		b = p.appendSingularField(b, "aggregate_value", nil)
377
	}
378
	return b
379
}
380
381
func (p *SourcePath) appendSourceCodeInfo_Location(b []byte) []byte {
382
	if len(*p) == 0 {
383
		return b
384
	}
385
	switch (*p)[0] {
386
	case 1:
387
		b = p.appendRepeatedField(b, "path", nil)
388
	case 2:
389
		b = p.appendRepeatedField(b, "span", nil)
390
	case 3:
391
		b = p.appendSingularField(b, "leading_comments", nil)
392
	case 4:
393
		b = p.appendSingularField(b, "trailing_comments", nil)
394
	case 6:
395
		b = p.appendRepeatedField(b, "leading_detached_comments", nil)
396
	}
397
	return b
398
}
399
400
func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte {
401
	if len(*p) == 0 {
402
		return b
403
	}
404
	switch (*p)[0] {
405
	case 999:
406
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
407
	}
408
	return b
409
}
410
411
func (p *SourcePath) appendOneofOptions(b []byte) []byte {
412
	if len(*p) == 0 {
413
		return b
414
	}
415
	switch (*p)[0] {
416
	case 999:
417
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
418
	}
419
	return b
420
}
421
422
func (p *SourcePath) appendEnumValueOptions(b []byte) []byte {
423
	if len(*p) == 0 {
424
		return b
425
	}
426
	switch (*p)[0] {
427
	case 1:
428
		b = p.appendSingularField(b, "deprecated", nil)
429
	case 999:
430
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
431
	}
432
	return b
433
}
434
435
func (p *SourcePath) appendMethodOptions(b []byte) []byte {
436
	if len(*p) == 0 {
437
		return b
438
	}
439
	switch (*p)[0] {
440
	case 33:
441
		b = p.appendSingularField(b, "deprecated", nil)
442
	case 34:
443
		b = p.appendSingularField(b, "idempotency_level", nil)
444
	case 999:
445
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
446
	}
447
	return b
448
}
449
450
func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte {
451
	if len(*p) == 0 {
452
		return b
453
	}
454
	switch (*p)[0] {
455
	case 1:
456
		b = p.appendSingularField(b, "name_part", nil)
457
	case 2:
458
		b = p.appendSingularField(b, "is_extension", nil)
459
	}
460
	return b
461
}
462