Go to the documentation of this file.
65 ClassNameResolver* name_resolver) {
68 return name_resolver->GetImmutableClassName(value_field->message_type());
76 name_resolver_(context->GetNameResolver()),
79 <<
"Generator factory error: A non-lite message generator is used to "
80 "generate lite messages.";
89 "public static final class Builder extends\n"
90 " com.google.protobuf.GeneratedMessage$ver$.ExtendableBuilder<\n"
91 " $classname$, Builder> implements\n"
92 " $extra_interfaces$\n"
93 " $classname$OrBuilder {\n",
99 "public static final class Builder extends\n"
100 " com.google.protobuf.GeneratedMessage$ver$.Builder<Builder> "
102 " $extra_interfaces$\n"
103 " $classname$OrBuilder {\n",
119 std::map<std::string, std::string> vars;
123 vars[
"oneof_capitalized_name"] =
129 "private int $oneof_name$Case_ = 0;\n"
130 "private java.lang.Object $oneof_name$_;\n");
133 "public $oneof_capitalized_name$Case\n"
134 " get$oneof_capitalized_name$Case() {\n"
135 " return $oneof_capitalized_name$Case.forNumber(\n"
136 " $oneof_name$Case_);\n"
139 "public Builder clear$oneof_capitalized_name$() {\n"
140 " $oneof_name$Case_ = 0;\n"
141 " $oneof_name$_ = null;\n");
142 printer->
Print(
" onChanged();\n");
155 int totalInts = (totalBits + 31) / 32;
156 for (
int i = 0;
i < totalInts;
i++) {
157 printer->
Print(
"private int $bit_field_name$;\n",
"bit_field_name",
162 printer->
Print(
"\n");
164 .GenerateBuilderMembers(printer);
173 "@java.lang.Override\n"
174 "public final Builder setUnknownFields(\n"
175 " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
176 " return super.setUnknownFields(unknownFields);\n"
179 "@java.lang.Override\n"
180 "public final Builder mergeUnknownFields(\n"
181 " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
182 " return super.mergeUnknownFields(unknownFields);\n"
188 "// @@protoc_insertion_point(builder_scope:$full_name$)\n",
192 printer->
Print(
"}\n");
200 "public static final com.google.protobuf.Descriptors.Descriptor\n"
201 " getDescriptor() {\n"
202 " return $fileclass$.internal_$identifier$_descriptor;\n"
208 std::vector<const FieldDescriptor*> map_fields;
213 map_fields.push_back(
field);
216 if (!map_fields.empty()) {
218 "@SuppressWarnings({\"rawtypes\"})\n"
219 "protected com.google.protobuf.MapField internalGetMapField(\n"
221 " switch (number) {\n");
224 for (
int i = 0;
i < map_fields.size(); ++
i) {
229 " return internalGet$capitalized_name$();\n",
230 "number",
StrCat(
field->number()),
"capitalized_name",
235 " throw new RuntimeException(\n"
236 " \"Invalid map field number: \" + number);\n");
243 "@SuppressWarnings({\"rawtypes\"})\n"
244 "protected com.google.protobuf.MapField internalGetMutableMapField(\n"
246 " switch (number) {\n");
249 for (
int i = 0;
i < map_fields.size(); ++
i) {
254 " return internalGetMutable$capitalized_name$();\n",
255 "number",
StrCat(
field->number()),
"capitalized_name",
260 " throw new RuntimeException(\n"
261 " \"Invalid map field number: \" + number);\n");
269 "@java.lang.Override\n"
270 "protected com.google.protobuf.GeneratedMessage$ver$.FieldAccessorTable\n"
271 " internalGetFieldAccessorTable() {\n"
272 " return $fileclass$.internal_$identifier$_fieldAccessorTable\n"
273 " .ensureFieldAccessorsInitialized(\n"
274 " $classname$.class, $classname$.Builder.class);\n"
288 "// Construct using $classname$.newBuilder()\n"
289 "private Builder() {\n"
290 " maybeForceBuilderInitialization();\n"
297 " com.google.protobuf.GeneratedMessage$ver$.BuilderParent parent) {\n"
299 " maybeForceBuilderInitialization();\n"
305 "private void maybeForceBuilderInitialization() {\n"
306 " if (com.google.protobuf.GeneratedMessage$ver$\n"
307 " .alwaysUseFieldBuilders) {\n",
315 .GenerateFieldBuilderInitializationCode(printer);
326 "@java.lang.Override\n"
327 "public Builder clear() {\n"
328 " super.clear();\n");
335 .GenerateBuilderClearCode(printer);
341 "$oneof_name$Case_ = 0;\n"
342 "$oneof_name$_ = null;\n",
355 "@java.lang.Override\n"
356 "public com.google.protobuf.Descriptors.Descriptor\n"
357 " getDescriptorForType() {\n"
358 " return $fileclass$.internal_$identifier$_descriptor;\n"
366 "@java.lang.Override\n"
367 "public $classname$ getDefaultInstanceForType() {\n"
368 " return $classname$.getDefaultInstance();\n"
374 "@java.lang.Override\n"
375 "public $classname$ build() {\n"
376 " $classname$ result = buildPartial();\n"
377 " if (!result.isInitialized()) {\n"
378 " throw newUninitializedMessageException(result);\n"
386 "@java.lang.Override\n"
387 "public $classname$ buildPartial() {\n"
388 " $classname$ result = new $classname$(this);\n",
393 int totalBuilderBits = 0;
394 int totalMessageBits = 0;
398 totalBuilderBits +=
field.GetNumBitsForBuilder();
399 totalMessageBits +=
field.GetNumBitsForMessage();
401 int totalBuilderInts = (totalBuilderBits + 31) / 32;
402 int totalMessageInts = (totalMessageBits + 31) / 32;
408 for (
int i = 0;
i < totalBuilderInts;
i++) {
409 printer->
Print(
"int from_$bit_field_name$ = $bit_field_name$;\n",
412 for (
int i = 0;
i < totalMessageInts;
i++) {
413 printer->
Print(
"int to_$bit_field_name$ = 0;\n",
"bit_field_name",
423 for (
int i = 0;
i < totalMessageInts;
i++) {
424 printer->
Print(
"result.$bit_field_name$ = to_$bit_field_name$;\n",
430 "result.$oneof_name$Case_ = $oneof_name$Case_;\n",
"oneof_name",
436 printer->
Print(
" onBuilt();\n");
450 "@java.lang.Override\n"
451 "public Builder clone() {\n"
452 " return super.clone();\n"
454 "@java.lang.Override\n"
455 "public Builder setField(\n"
456 " com.google.protobuf.Descriptors.FieldDescriptor field,\n"
457 " java.lang.Object value) {\n"
458 " return super.setField(field, value);\n"
460 "@java.lang.Override\n"
461 "public Builder clearField(\n"
462 " com.google.protobuf.Descriptors.FieldDescriptor field) {\n"
463 " return super.clearField(field);\n"
465 "@java.lang.Override\n"
466 "public Builder clearOneof(\n"
467 " com.google.protobuf.Descriptors.OneofDescriptor oneof) {\n"
468 " return super.clearOneof(oneof);\n"
470 "@java.lang.Override\n"
471 "public Builder setRepeatedField(\n"
472 " com.google.protobuf.Descriptors.FieldDescriptor field,\n"
473 " int index, java.lang.Object value) {\n"
474 " return super.setRepeatedField(field, index, value);\n"
476 "@java.lang.Override\n"
477 "public Builder addRepeatedField(\n"
478 " com.google.protobuf.Descriptors.FieldDescriptor field,\n"
479 " java.lang.Object value) {\n"
480 " return super.addRepeatedField(field, value);\n"
485 "@java.lang.Override\n"
486 "public <Type> Builder setExtension(\n"
487 " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n"
488 " $classname$, Type> extension,\n"
490 " return super.setExtension(extension, value);\n"
492 "@java.lang.Override\n"
493 "public <Type> Builder setExtension(\n"
494 " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n"
495 " $classname$, java.util.List<Type>> extension,\n"
496 " int index, Type value) {\n"
497 " return super.setExtension(extension, index, value);\n"
499 "@java.lang.Override\n"
500 "public <Type> Builder addExtension(\n"
501 " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n"
502 " $classname$, java.util.List<Type>> extension,\n"
504 " return super.addExtension(extension, value);\n"
506 "@java.lang.Override\n"
507 "public <Type> Builder clearExtension(\n"
508 " com.google.protobuf.GeneratedMessage.GeneratedExtension<\n"
509 " $classname$, ?> extension) {\n"
510 " return super.clearExtension(extension);\n"
519 "@java.lang.Override\n"
520 "public Builder mergeFrom(com.google.protobuf.Message other) {\n"
521 " if (other instanceof $classname$) {\n"
522 " return mergeFrom(($classname$)other);\n"
524 " super.mergeFrom(other);\n"
532 "public Builder mergeFrom($classname$ other) {\n"
535 " if (other == $classname$.getDefaultInstance()) return this;\n",
542 .GenerateMergingCode(printer);
548 printer->
Print(
"switch (other.get$oneof_capitalized_name$Case()) {\n",
549 "oneof_capitalized_name",
555 printer->
Print(
"case $field_name$: {\n",
"field_name",
559 printer->
Print(
"break;\n");
561 printer->
Print(
"}\n");
564 "case $cap_oneof_name$_NOT_SET: {\n"
572 printer->
Print(
"}\n");
579 printer->
Print(
" this.mergeExtensionFields(other);\n");
582 printer->
Print(
" this.mergeUnknownFields(other.unknownFields);\n");
584 printer->
Print(
" onChanged();\n");
598 "@java.lang.Override\n"
599 "public Builder mergeFrom(\n"
600 " com.google.protobuf.CodedInputStream input,\n"
601 " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
602 " throws java.io.IOException {\n"
603 " $classname$ parsedMessage = null;\n"
605 " parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);\n"
606 " } catch (com.google.protobuf.InvalidProtocolBufferException e) {\n"
607 " parsedMessage = ($classname$) e.getUnfinishedMessage();\n"
608 " throw e.unwrapIOException();\n"
610 " if (parsedMessage != null) {\n"
611 " mergeFrom(parsedMessage);\n"
623 "@java.lang.Override\n"
624 "public final boolean isInitialized() {\n");
634 if (
field->is_required()) {
636 "if (!has$name$()) {\n"
649 switch (
field->label()) {
652 "if (!get$name$().isInitialized()) {\n"
665 printer->
Print(
"if ($oneof_name$Case_ == $field_number$) {\n",
666 "oneof_name", oneof_info->
name,
"field_number",
669 printer->
Print(
"if (has$name$()) {\n",
"name",
673 " if (!get$name$().isInitialized()) {\n"
682 "for ($type$ item : get$name$Map().values()) {\n"
683 " if (!item.isInitialized()) {\n"
688 MapValueImmutableClassdName(
field->message_type(),
693 "for (int i = 0; i < get$name$Count(); i++) {\n"
694 " if (!get$name$(i).isInitialized()) {\n"
709 "if (!extensionsAreInitialized()) {\n"
const std::string & full_name() const
void Print(const std::map< std::string, std::string > &variables, const char *text)
#define GOOGLE_CHECK_EQ(A, B)
MockGeneratorContext context_
GLuint const GLchar * name
bool HasDescriptorMethods(const Descriptor *descriptor, bool enforce_lite)
void GenerateBuilderParsingMethods(io::Printer *printer)
bool IsMapEntry(const Descriptor *descriptor)
string StrCat(const AlphaNum &a, const AlphaNum &b)
void GenerateDescriptorMethods(io::Printer *printer)
GLsizei const GLchar *const * string
std::string GetImmutableClassName(const DescriptorType *descriptor)
const FieldDescriptor * field(int index) const
const MessageOptions & options() const
const FieldDescriptor * field(int index) const
void WriteMessageDocComment(io::Printer *printer, const Descriptor *message)
MessageBuilderGenerator(const Descriptor *descriptor, Context *context)
const FieldGeneratorInfo * GetFieldGeneratorInfo(const FieldDescriptor *field) const
const OneofDescriptor * oneof_decl(int index) const
void GenerateCommonBuilderMethods(io::Printer *printer)
JavaType GetJavaType(const FieldDescriptor *field)
int oneof_decl_count() const
ClassNameResolver * name_resolver_
std::string GetBitFieldName(int index)
int extension_range_count() const
const FieldDescriptor * field
#define GOOGLE_CHECK(EXPRESSION)
std::string capitalized_name
bool HasGeneratedMethods(const Descriptor *descriptor) const
bool SupportFieldPresence(const FileDescriptor *descriptor)
std::string UniqueFileScopeIdentifier(const Descriptor *descriptor)
virtual void Generate(io::Printer *printer)
const FileDescriptor * file() const
const Descriptor * descriptor_
FieldGeneratorMap< ImmutableFieldGenerator > field_generators_
std::string ExtraBuilderInterfaces(const Descriptor *descriptor)
string ToUpper(const string &s)
const OneofDescriptor * containing_oneof() const
bool no_standard_descriptor_accessor() const
bool HasRequiredFields(const Descriptor *type, std::unordered_set< const Descriptor * > *already_seen)
std::string capitalized_name
const Descriptor * descriptor_
const OneofGeneratorInfo * GetOneofGeneratorInfo(const OneofDescriptor *oneof) const
virtual ~MessageBuilderGenerator()
void GenerateIsInitialized(io::Printer *printer)
std::string GeneratedCodeVersionSuffix()
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:55