Go to the documentation of this file.
50 return message->FindFieldByName(
"key");
57 return message->FindFieldByName(
"value");
61 ClassNameResolver* name_resolver,
bool boxed) {
63 return name_resolver->GetImmutableClassName(
field->message_type());
65 return name_resolver->GetImmutableClassName(
field->enum_type());
73 return "com.google.protobuf.WireFormat.FieldType." +
78 int builderBitIndex,
const FieldGeneratorInfo* info,
80 std::map<std::string, std::string>* variables) {
82 ClassNameResolver* name_resolver = context->GetNameResolver();
84 (*variables)[
"type"] =
85 name_resolver->GetImmutableClassName(
descriptor->message_type());
91 (*variables)[
"key_type"] =
TypeName(
key, name_resolver,
false);
93 (*variables)[
"boxed_key_type"] = boxed_key_type;
95 (*variables)[
"short_key_type"] =
96 boxed_key_type.substr(boxed_key_type.rfind(
'.') + 1);
97 (*variables)[
"key_wire_type"] = WireType(
key);
98 (*variables)[
"key_default_value"] =
DefaultValue(
key,
true, name_resolver);
99 (*variables)[
"key_null_check"] =
101 ?
"if (key == null) { throw new java.lang.NullPointerException(); }"
103 (*variables)[
"value_null_check"] =
105 ?
"if (value == null) { throw new java.lang.NullPointerException(); }"
109 (*variables)[
"value_type"] =
"int";
110 (*variables)[
"boxed_value_type"] =
"java.lang.Integer";
111 (*variables)[
"value_wire_type"] = WireType(
value);
112 (*variables)[
"value_default_value"] =
115 (*variables)[
"value_enum_type"] =
TypeName(
value, name_resolver,
false);
119 (*variables)[
"unrecognized_value"] =
120 (*variables)[
"value_enum_type"] +
".UNRECOGNIZED";
123 (*variables)[
"unrecognized_value"] =
127 (*variables)[
"value_type"] =
TypeName(
value, name_resolver,
false);
128 (*variables)[
"boxed_value_type"] =
TypeName(
value, name_resolver,
true);
129 (*variables)[
"value_wire_type"] = WireType(
value);
130 (*variables)[
"value_default_value"] =
133 (*variables)[
"type_parameters"] =
134 (*variables)[
"boxed_key_type"] +
", " + (*variables)[
"boxed_value_type"];
137 (*variables)[
"deprecation"] =
138 descriptor->options().deprecated() ?
"@java.lang.Deprecated " :
"";
139 (*variables)[
"on_changed"] =
"onChanged();";
143 (*variables)[
"get_mutable_bit_parser"] =
145 (*variables)[
"set_mutable_bit_parser"] =
148 (*variables)[
"default_entry"] =
149 (*variables)[
"capitalized_name"] +
"DefaultEntryHolder.defaultEntry";
150 (*variables)[
"map_field_parameter"] = (*variables)[
"default_entry"];
151 (*variables)[
"descriptor"] =
152 name_resolver->GetImmutableClassName(
descriptor->file()) +
".internal_" +
178 "$deprecation$int ${$get$capitalized_name$Count$}$();\n");
182 "$deprecation$boolean ${$contains$capitalized_name$$}$(\n"
183 " $key_type$ key);\n");
188 " * Use {@link #get$capitalized_name$Map()} instead.\n"
190 "@java.lang.Deprecated\n"
191 "java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
192 "${$get$capitalized_name$$}$();\n");
197 "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
198 "${$get$capitalized_name$Map$}$();\n");
203 "$deprecation$$value_enum_type$ ${$get$capitalized_name$OrDefault$}$(\n"
205 " $value_enum_type$ defaultValue);\n");
210 "$deprecation$$value_enum_type$ ${$get$capitalized_name$OrThrow$}$(\n"
211 " $key_type$ key);\n");
217 " * Use {@link #get$capitalized_name$ValueMap()} instead.\n"
219 "@java.lang.Deprecated\n"
220 "java.util.Map<$type_parameters$>\n"
221 "${$get$capitalized_name$Value$}$();\n");
225 "$deprecation$java.util.Map<$type_parameters$>\n"
226 "${$get$capitalized_name$ValueMap$}$();\n");
231 "$value_type$ ${$get$capitalized_name$ValueOrDefault$}$(\n"
233 " $value_type$ defaultValue);\n");
238 "$value_type$ ${$get$capitalized_name$ValueOrThrow$}$(\n"
239 " $key_type$ key);\n");
245 " * Use {@link #get$capitalized_name$Map()} instead.\n"
247 "@java.lang.Deprecated\n"
248 "java.util.Map<$type_parameters$>\n"
249 "${$get$capitalized_name$$}$();\n");
253 "$deprecation$java.util.Map<$type_parameters$>\n"
254 "${$get$capitalized_name$Map$}$();\n");
259 "$value_type$ ${$get$capitalized_name$OrDefault$}$(\n"
261 " $value_type$ defaultValue);\n");
266 "$value_type$ ${$get$capitalized_name$OrThrow$}$(\n"
267 " $key_type$ key);\n");
275 "private static final class $capitalized_name$DefaultEntryHolder {\n"
276 " static final com.google.protobuf.MapEntry<\n"
277 " $type_parameters$> defaultEntry =\n"
278 " com.google.protobuf.MapEntry\n"
279 " .<$type_parameters$>newDefaultInstance(\n"
281 " $key_wire_type$,\n"
282 " $key_default_value$,\n"
283 " $value_wire_type$,\n"
284 " $value_default_value$);\n"
287 "private com.google.protobuf.MapField<\n"
288 " $type_parameters$> $name$_;\n"
289 "private com.google.protobuf.MapField<$type_parameters$>\n"
290 "internalGet$capitalized_name$() {\n"
291 " if ($name$_ == null) {\n"
292 " return com.google.protobuf.MapField.emptyMapField(\n"
293 " $map_field_parameter$);\n"
300 "private static final\n"
301 "com.google.protobuf.Internal.MapAdapter.Converter<\n"
302 " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n"
303 " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n"
304 " $value_enum_type$.internalGetValueMap(),\n"
305 " $unrecognized_value$);\n");
308 "private static final java.util.Map<$boxed_key_type$, "
309 "$value_enum_type$>\n"
310 "internalGetAdapted$capitalized_name$Map(\n"
311 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map) {\n"
312 " return new com.google.protobuf.Internal.MapAdapter<\n"
313 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
314 " map, $name$ValueConverter);\n"
323 "private com.google.protobuf.MapField<\n"
324 " $type_parameters$> $name$_;\n"
325 "private com.google.protobuf.MapField<$type_parameters$>\n"
326 "internalGet$capitalized_name$() {\n"
327 " if ($name$_ == null) {\n"
328 " return com.google.protobuf.MapField.emptyMapField(\n"
329 " $map_field_parameter$);\n"
333 "private com.google.protobuf.MapField<$type_parameters$>\n"
334 "internalGetMutable$capitalized_name$() {\n"
336 " if ($name$_ == null) {\n"
337 " $name$_ = com.google.protobuf.MapField.newMapField(\n"
338 " $map_field_parameter$);\n"
340 " if (!$name$_.isMutable()) {\n"
341 " $name$_ = $name$_.copy();\n"
348 "public Builder ${$clear$capitalized_name$$}$() {\n"
349 " internalGetMutable$capitalized_name$().getMutableMap()\n"
357 "public Builder ${$remove$capitalized_name$$}$(\n"
358 " $key_type$ key) {\n"
359 " $key_null_check$\n"
360 " internalGetMutable$capitalized_name$().getMutableMap()\n"
369 " * Use alternate mutation accessors instead.\n"
371 "@java.lang.Deprecated\n"
372 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
373 "${$getMutable$capitalized_name$$}$() {\n"
374 " return internalGetAdapted$capitalized_name$Map(\n"
375 " internalGetMutable$capitalized_name$().getMutableMap());\n"
380 "$deprecation$public Builder ${$put$capitalized_name$$}$(\n"
382 " $value_enum_type$ value) {\n"
383 " $key_null_check$\n"
384 " $value_null_check$\n"
385 " internalGetMutable$capitalized_name$().getMutableMap()\n"
386 " .put(key, $name$ValueConverter.doBackward(value));\n"
393 "$deprecation$public Builder ${$putAll$capitalized_name$$}$(\n"
394 " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n"
395 " internalGetAdapted$capitalized_name$Map(\n"
396 " internalGetMutable$capitalized_name$().getMutableMap())\n"
397 " .putAll(values);\n"
405 " * Use alternate mutation accessors instead.\n"
407 "@java.lang.Deprecated\n"
408 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
409 "${$getMutable$capitalized_name$Value$}$() {\n"
410 " return internalGetMutable$capitalized_name$().getMutableMap();\n"
416 "$deprecation$public Builder ${$put$capitalized_name$Value$}$(\n"
418 " $value_type$ value) {\n"
419 " $key_null_check$\n"
420 " internalGetMutable$capitalized_name$().getMutableMap()\n"
421 " .put(key, value);\n"
428 "$deprecation$public Builder ${$putAll$capitalized_name$Value$}$(\n"
429 " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n"
430 " internalGetMutable$capitalized_name$().getMutableMap()\n"
431 " .putAll(values);\n"
440 " * Use alternate mutation accessors instead.\n"
442 "@java.lang.Deprecated\n"
443 "public java.util.Map<$type_parameters$>\n"
444 "${$getMutable$capitalized_name$$}$() {\n"
445 " return internalGetMutable$capitalized_name$().getMutableMap();\n"
451 "public Builder ${$put$capitalized_name$$}$(\n"
453 " $value_type$ value) {\n"
454 " $key_null_check$\n"
455 " $value_null_check$\n"
456 " internalGetMutable$capitalized_name$().getMutableMap()\n"
457 " .put(key, value);\n"
464 "public Builder ${$putAll$capitalized_name$$}$(\n"
465 " java.util.Map<$type_parameters$> values) {\n"
466 " internalGetMutable$capitalized_name$().getMutableMap()\n"
467 " .putAll(values);\n"
478 "public int ${$get$capitalized_name$Count$}$() {\n"
479 " return internalGet$capitalized_name$().getMap().size();\n"
486 "public boolean ${$contains$capitalized_name$$}$(\n"
487 " $key_type$ key) {\n"
488 " $key_null_check$\n"
489 " return internalGet$capitalized_name$().getMap().containsKey(key);\n"
495 " * Use {@link #get$capitalized_name$Map()} instead.\n"
497 "@java.lang.Deprecated\n"
498 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
499 "${$get$capitalized_name$$}$() {\n"
500 " return get$capitalized_name$Map();\n"
506 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
507 "${$get$capitalized_name$Map$}$() {\n"
508 " return internalGetAdapted$capitalized_name$Map(\n"
509 " internalGet$capitalized_name$().getMap());"
516 "public $value_enum_type$ ${$get$capitalized_name$OrDefault$}$(\n"
518 " $value_enum_type$ defaultValue) {\n"
519 " $key_null_check$\n"
520 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
521 " internalGet$capitalized_name$().getMap();\n"
522 " return map.containsKey(key)\n"
523 " ? $name$ValueConverter.doForward(map.get(key))\n"
531 "public $value_enum_type$ ${$get$capitalized_name$OrThrow$}$(\n"
532 " $key_type$ key) {\n"
533 " $key_null_check$\n"
534 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
535 " internalGet$capitalized_name$().getMap();\n"
536 " if (!map.containsKey(key)) {\n"
537 " throw new java.lang.IllegalArgumentException();\n"
539 " return $name$ValueConverter.doForward(map.get(key));\n"
546 " * Use {@link #get$capitalized_name$ValueMap()} instead.\n"
548 "@java.lang.Deprecated\n"
549 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
550 "${$get$capitalized_name$Value$}$() {\n"
551 " return get$capitalized_name$ValueMap();\n"
558 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
559 "${$get$capitalized_name$ValueMap$}$() {\n"
560 " return internalGet$capitalized_name$().getMap();\n"
567 "public $value_type$ ${$get$capitalized_name$ValueOrDefault$}$(\n"
569 " $value_type$ defaultValue) {\n"
570 " $key_null_check$\n"
571 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
572 " internalGet$capitalized_name$().getMap();\n"
573 " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
580 "public $value_type$ ${$get$capitalized_name$ValueOrThrow$}$(\n"
581 " $key_type$ key) {\n"
582 " $key_null_check$\n"
583 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
584 " internalGet$capitalized_name$().getMap();\n"
585 " if (!map.containsKey(key)) {\n"
586 " throw new java.lang.IllegalArgumentException();\n"
588 " return map.get(key);\n"
595 " * Use {@link #get$capitalized_name$Map()} instead.\n"
597 "@java.lang.Deprecated\n"
598 "public java.util.Map<$type_parameters$> "
599 "${$get$capitalized_name$$}$() {\n"
600 " return get$capitalized_name$Map();\n"
606 "public java.util.Map<$type_parameters$> "
607 "${$get$capitalized_name$Map$}$() {\n"
608 " return internalGet$capitalized_name$().getMap();\n"
615 "public $value_type$ ${$get$capitalized_name$OrDefault$}$(\n"
617 " $value_type$ defaultValue) {\n"
618 " $key_null_check$\n"
619 " java.util.Map<$type_parameters$> map =\n"
620 " internalGet$capitalized_name$().getMap();\n"
621 " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
627 "public $value_type$ ${$get$capitalized_name$OrThrow$}$(\n"
628 " $key_type$ key) {\n"
629 " $key_null_check$\n"
630 " java.util.Map<$type_parameters$> map =\n"
631 " internalGet$capitalized_name$().getMap();\n"
632 " if (!map.containsKey(key)) {\n"
633 " throw new java.lang.IllegalArgumentException();\n"
635 " return map.get(key);\n"
654 "internalGetMutable$capitalized_name$().clear();\n");
660 "internalGetMutable$capitalized_name$().mergeFrom(\n"
661 " other.internalGet$capitalized_name$());\n");
667 "result.$name$_ = internalGet$capitalized_name$();\n"
668 "result.$name$_.makeImmutable();\n");
674 "if (!$get_mutable_bit_parser$) {\n"
675 " $name$_ = com.google.protobuf.MapField.newMapField(\n"
676 " $map_field_parameter$);\n"
677 " $set_mutable_bit_parser$;\n"
683 "com.google.protobuf.ByteString bytes = input.readBytes();\n"
684 "com.google.protobuf.MapEntry<$type_parameters$>\n"
685 "$name$__ = $default_entry$.getParserForType().parseFrom(bytes);\n");
688 "if ($value_enum_type$.forNumber($name$__.getValue()) == null) {\n"
689 " unknownFields.mergeLengthDelimitedField($number$, bytes);\n"
691 " $name$_.getMutableMap().put(\n"
692 " $name$__.getKey(), $name$__.getValue());\n"
697 "com.google.protobuf.MapEntry<$type_parameters$>\n"
698 "$name$__ = input.readMessage(\n"
699 " $default_entry$.getParserForType(), extensionRegistry);\n"
700 "$name$_.getMutableMap().put(\n"
701 " $name$__.getKey(), $name$__.getValue());\n");
713 "com.google.protobuf.GeneratedMessage$ver$\n"
714 " .serialize$short_key_type$MapTo(\n"
716 " internalGet$capitalized_name$(),\n"
717 " $default_entry$,\n"
725 "for (java.util.Map.Entry<$type_parameters$> entry\n"
726 " : internalGet$capitalized_name$().getMap().entrySet()) {\n"
727 " com.google.protobuf.MapEntry<$type_parameters$>\n"
728 " $name$__ = $default_entry$.newBuilderForType()\n"
729 " .setKey(entry.getKey())\n"
730 " .setValue(entry.getValue())\n"
732 " size += com.google.protobuf.CodedOutputStream\n"
733 " .computeMessageSize($number$, $name$__);\n"
740 "if (!internalGet$capitalized_name$().equals(\n"
741 " other.internalGet$capitalized_name$())) return false;\n");
747 "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n"
748 " hash = (37 * hash) + $constant_name$;\n"
749 " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n"
void Print(const std::map< std::string, std::string > &variables, const char *text)
#define GOOGLE_CHECK_EQ(A, B)
std::map< std::string, std::string > variables_
void GenerateHashCode(io::Printer *printer) const
std::string GenerateGetBitMutableLocal(int bitIndex)
~ImmutableMapFieldGenerator()
void WriteFieldDocComment(io::Printer *printer, const FieldDescriptor *field)
GLsizei const GLchar *const * string
std::string GetImmutableClassName(const DescriptorType *descriptor)
const FieldDescriptor * descriptor_
void GenerateEqualsCode(io::Printer *printer) const
void GenerateMergingCode(io::Printer *printer) const
void GenerateBuilderMembers(io::Printer *printer) const
void GenerateParsingDoneCode(io::Printer *printer) const
void GenerateMapGetters(io::Printer *printer) const
const char * BoxedPrimitiveTypeName(JavaType type)
void SetMessageVariables(const FieldDescriptor *descriptor, std::map< std::string, std::string > *variables, const Options &options)
bool SupportUnknownEnumValue(const FileDescriptor *descriptor)
const FileDescriptor * file() const
ImmutableMapFieldGenerator(const FieldDescriptor *descriptor, int messageBitIndex, int builderBitIndex, Context *context)
void GenerateBuilderClearCode(io::Printer *printer) const
const FieldGeneratorInfo * GetFieldGeneratorInfo(const FieldDescriptor *field) const
JavaType GetJavaType(const FieldDescriptor *field)
void GenerateParsingCode(io::Printer *printer) const
std::string GetBoxedType() const
bool IsReferenceType(JavaType type)
void GenerateInterfaceMembers(io::Printer *printer) const
ClassNameResolver * name_resolver_
const FieldDescriptor * field
const SETUP_TEARDOWN_TESTCONTEXT char * key
void Annotate(const char *varname, const SomeDescriptor *descriptor)
#define GOOGLE_CHECK(EXPRESSION)
void GenerateFieldBuilderInitializationCode(io::Printer *printer) const
const char * FieldTypeName(FieldDescriptor::Type field_type)
std::string UniqueFileScopeIdentifier(const Descriptor *descriptor)
std::string GenerateSetBitMutableLocal(int bitIndex)
int GetNumBitsForBuilder() const
void GenerateInitializationCode(io::Printer *printer) const
const Descriptor * message_type() const
void SetCommonFieldVariables(const FieldDescriptor *descriptor, const FieldGeneratorInfo *info, std::map< std::string, std::string > *variables)
void GenerateMembers(io::Printer *printer) const
std::string DefaultValue(const FieldDescriptor *field, bool immutable, ClassNameResolver *name_resolver)
std::string TypeName(FieldDescriptor *field)
void GenerateSerializedSizeCode(io::Printer *printer) const
GLsizei const GLfloat * value
void GenerateBuildingCode(io::Printer *printer) const
const Descriptor * descriptor_
const char * PrimitiveTypeName(JavaType type)
GLenum GLuint GLenum GLsizei const GLchar * message
std::string GeneratedCodeVersionSuffix()
int GetNumBitsForMessage() const
void GenerateSerializationCode(io::Printer *printer) const
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:55