| Index: third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc
|
| index 2a551ca47eb8300a7b8ea8db5e1212441de50369..3fe68ae3d5e0043f096aca975c68ed70f7257e68 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc
|
| @@ -80,7 +80,7 @@ void SetMessageVariables(const FieldDescriptor* descriptor,
|
| int builderBitIndex,
|
| const FieldGeneratorInfo* info,
|
| Context* context,
|
| - map<string, string>* variables) {
|
| + std::map<string, string>* variables) {
|
| SetCommonFieldVariables(descriptor, info, variables);
|
| ClassNameResolver* name_resolver = context->GetNameResolver();
|
|
|
| @@ -88,11 +88,22 @@ void SetMessageVariables(const FieldDescriptor* descriptor,
|
| name_resolver->GetImmutableClassName(descriptor->message_type());
|
| const FieldDescriptor* key = KeyField(descriptor);
|
| const FieldDescriptor* value = ValueField(descriptor);
|
| + const JavaType keyJavaType = GetJavaType(key);
|
| + const JavaType valueJavaType = GetJavaType(value);
|
| +
|
| (*variables)["key_type"] = TypeName(key, name_resolver, false);
|
| - (*variables)["boxed_key_type"] = TypeName(key, name_resolver, true);
|
| + string boxed_key_type = TypeName(key, name_resolver, true);
|
| + (*variables)["boxed_key_type"] = boxed_key_type;
|
| + // Used for calling the serialization function.
|
| + (*variables)["short_key_type"] =
|
| + boxed_key_type.substr(boxed_key_type.rfind('.') + 1);
|
| (*variables)["key_wire_type"] = WireType(key);
|
| (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver);
|
| - if (GetJavaType(value) == JAVATYPE_ENUM) {
|
| + (*variables)["key_null_check"] = IsReferenceType(keyJavaType) ?
|
| + "if (key == null) { throw new java.lang.NullPointerException(); }" : "";
|
| + (*variables)["value_null_check"] = IsReferenceType(valueJavaType) ?
|
| + "if (value == null) { throw new java.lang.NullPointerException(); }" : "";
|
| + if (valueJavaType == JAVATYPE_ENUM) {
|
| // We store enums as Integers internally.
|
| (*variables)["value_type"] = "int";
|
| (*variables)["boxed_value_type"] = "java.lang.Integer";
|
| @@ -135,12 +146,12 @@ void SetMessageVariables(const FieldDescriptor* descriptor,
|
|
|
| (*variables)["default_entry"] = (*variables)["capitalized_name"] +
|
| "DefaultEntryHolder.defaultEntry";
|
| - (*variables)["lite"] = "";
|
| (*variables)["map_field_parameter"] = (*variables)["default_entry"];
|
| (*variables)["descriptor"] =
|
| name_resolver->GetImmutableClassName(descriptor->file()) +
|
| ".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) +
|
| "_descriptor, ";
|
| + (*variables)["ver"] = GeneratedCodeVersionSuffix();
|
| }
|
|
|
| } // namespace
|
| @@ -169,25 +180,95 @@ int ImmutableMapFieldGenerator::GetNumBitsForBuilder() const {
|
|
|
| void ImmutableMapFieldGenerator::
|
| GenerateInterfaceMembers(io::Printer* printer) const {
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$int get$capitalized_name$Count();\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$boolean contains$capitalized_name$(\n"
|
| + " $key_type$ key);\n");
|
| if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use {@link #get$capitalized_name$Map()} instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| + "java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| + "get$capitalized_name$();\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| - "get$capitalized_name$();\n");
|
| + "get$capitalized_name$Map();\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$$value_enum_type$ get$capitalized_name$OrDefault(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_enum_type$ defaultValue);\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$$value_enum_type$ get$capitalized_name$OrThrow(\n"
|
| + " $key_type$ key);\n");
|
| if (SupportUnknownEnumValue(descriptor_->file())) {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use {@link #get$capitalized_name$ValueMap()} instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| + "java.util.Map<$type_parameters$>\n"
|
| + "get$capitalized_name$Value();\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| "$deprecation$java.util.Map<$type_parameters$>\n"
|
| - "get$capitalized_name$Value();\n");
|
| + "get$capitalized_name$ValueMap();\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "$value_type$ get$capitalized_name$ValueOrDefault(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_type$ defaultValue);\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "$value_type$ get$capitalized_name$ValueOrThrow(\n"
|
| + " $key_type$ key);\n");
|
| }
|
| } else {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use {@link #get$capitalized_name$Map()} instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| + "java.util.Map<$type_parameters$>\n"
|
| + "get$capitalized_name$();\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| "$deprecation$java.util.Map<$type_parameters$>\n"
|
| - "get$capitalized_name$();\n");
|
| + "get$capitalized_name$Map();\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "$value_type$ get$capitalized_name$OrDefault(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_type$ defaultValue);\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "$value_type$ get$capitalized_name$OrThrow(\n"
|
| + " $key_type$ key);\n");
|
| }
|
| }
|
|
|
| @@ -196,9 +277,9 @@ GenerateMembers(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| "private static final class $capitalized_name$DefaultEntryHolder {\n"
|
| - " static final com.google.protobuf.MapEntry$lite$<\n"
|
| + " static final com.google.protobuf.MapEntry<\n"
|
| " $type_parameters$> defaultEntry =\n"
|
| - " com.google.protobuf.MapEntry$lite$\n"
|
| + " com.google.protobuf.MapEntry\n"
|
| " .<$type_parameters$>newDefaultInstance(\n"
|
| " $descriptor$\n"
|
| " $key_wire_type$,\n"
|
| @@ -208,12 +289,12 @@ GenerateMembers(io::Printer* printer) const {
|
| "}\n");
|
| printer->Print(
|
| variables_,
|
| - "private com.google.protobuf.MapField$lite$<\n"
|
| + "private com.google.protobuf.MapField<\n"
|
| " $type_parameters$> $name$_;\n"
|
| - "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
|
| + "private com.google.protobuf.MapField<$type_parameters$>\n"
|
| "internalGet$capitalized_name$() {\n"
|
| " if ($name$_ == null) {\n"
|
| - " return com.google.protobuf.MapField$lite$.emptyMapField(\n"
|
| + " return com.google.protobuf.MapField.emptyMapField(\n"
|
| " $map_field_parameter$);\n"
|
| " }\n"
|
| " return $name$_;\n"
|
| @@ -227,57 +308,39 @@ GenerateMembers(io::Printer* printer) const {
|
| " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n"
|
| " $value_enum_type$.internalGetValueMap(),\n"
|
| " $unrecognized_value$);\n");
|
| - if (SupportUnknownEnumValue(descriptor_->file())) {
|
| - WriteFieldDocComment(printer, descriptor_);
|
| - printer->Print(
|
| - variables_,
|
| - "$deprecation$\n"
|
| - "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
|
| - "get$capitalized_name$Value() {\n"
|
| - " return internalGet$capitalized_name$().getMap();\n"
|
| - "}\n");
|
| - }
|
| - WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "$deprecation$\n"
|
| - "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| - "get$capitalized_name$() {\n"
|
| + "private static final java.util.Map<$boxed_key_type$, "
|
| + "$value_enum_type$>\n"
|
| + "internalGetAdapted$capitalized_name$Map(\n"
|
| + " java.util.Map<$boxed_key_type$, $boxed_value_type$> map) {\n"
|
| " return new com.google.protobuf.Internal.MapAdapter<\n"
|
| " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
|
| - " internalGet$capitalized_name$().getMap(),\n"
|
| - " $name$ValueConverter);\n"
|
| - "}\n");
|
| - } else {
|
| - WriteFieldDocComment(printer, descriptor_);
|
| - printer->Print(
|
| - variables_,
|
| - "$deprecation$\n"
|
| - "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n"
|
| - " return internalGet$capitalized_name$().getMap();\n"
|
| + " map, $name$ValueConverter);\n"
|
| "}\n");
|
| }
|
| + GenerateMapGetters(printer);
|
| }
|
|
|
| void ImmutableMapFieldGenerator::
|
| GenerateBuilderMembers(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| - "private com.google.protobuf.MapField$lite$<\n"
|
| + "private com.google.protobuf.MapField<\n"
|
| " $type_parameters$> $name$_;\n"
|
| - "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
|
| + "private com.google.protobuf.MapField<$type_parameters$>\n"
|
| "internalGet$capitalized_name$() {\n"
|
| " if ($name$_ == null) {\n"
|
| - " return com.google.protobuf.MapField$lite$.emptyMapField(\n"
|
| + " return com.google.protobuf.MapField.emptyMapField(\n"
|
| " $map_field_parameter$);\n"
|
| " }\n"
|
| " return $name$_;\n"
|
| "}\n"
|
| - "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
|
| + "private com.google.protobuf.MapField<$type_parameters$>\n"
|
| "internalGetMutable$capitalized_name$() {\n"
|
| " $on_changed$;\n"
|
| " if ($name$_ == null) {\n"
|
| - " $name$_ = com.google.protobuf.MapField$lite$.newMapField(\n"
|
| + " $name$_ = com.google.protobuf.MapField.newMapField(\n"
|
| " $map_field_parameter$);\n"
|
| " }\n"
|
| " if (!$name$_.isMutable()) {\n"
|
| @@ -285,84 +348,279 @@ GenerateBuilderMembers(io::Printer* printer) const {
|
| " }\n"
|
| " return $name$_;\n"
|
| "}\n");
|
| + GenerateMapGetters(printer);
|
| + printer->Print(variables_,
|
| + "$deprecation$\n"
|
| + "public Builder clear$capitalized_name$() {\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap()\n"
|
| + " .clear();\n"
|
| + " return this;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(variables_,
|
| + "$deprecation$\n"
|
| + "public Builder remove$capitalized_name$(\n"
|
| + " $key_type$ key) {\n"
|
| + " $key_null_check$\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap()\n"
|
| + " .remove(key);\n"
|
| + " return this;\n"
|
| + "}\n");
|
| if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use alternate mutation accessors instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| + "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| + "getMutable$capitalized_name$() {\n"
|
| + " return internalGetAdapted$capitalized_name$Map(\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap());\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(variables_,
|
| + "$deprecation$public Builder put$capitalized_name$(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_enum_type$ value) {\n"
|
| + " $key_null_check$\n"
|
| + " $value_null_check$\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap()\n"
|
| + " .put(key, $name$ValueConverter.doBackward(value));\n"
|
| + " return this;\n"
|
| + "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "$deprecation$\n"
|
| + "$deprecation$public Builder putAll$capitalized_name$(\n"
|
| + " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n"
|
| + " internalGetAdapted$capitalized_name$Map(\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap())\n"
|
| + " .putAll(values);\n"
|
| + " return this;\n"
|
| + "}\n");
|
| + if (SupportUnknownEnumValue(descriptor_->file())) {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use alternate mutation accessors instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| + "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
|
| + "getMutable$capitalized_name$Value() {\n"
|
| + " return internalGetMutable$capitalized_name$().getMutableMap();\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$public Builder put$capitalized_name$Value(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_type$ value) {\n"
|
| + " $key_null_check$\n"
|
| + " if ($value_enum_type$.forNumber(value) == null) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap()\n"
|
| + " .put(key, value);\n"
|
| + " return this;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$public Builder putAll$capitalized_name$Value(\n"
|
| + " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap()\n"
|
| + " .putAll(values);\n"
|
| + " return this;\n"
|
| + "}\n");
|
| + }
|
| + } else {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use alternate mutation accessors instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| + "public java.util.Map<$type_parameters$>\n"
|
| + "getMutable$capitalized_name$() {\n"
|
| + " return internalGetMutable$capitalized_name$().getMutableMap();\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(variables_,
|
| + "$deprecation$"
|
| + "public Builder put$capitalized_name$(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_type$ value) {\n"
|
| + " $key_null_check$\n"
|
| + " $value_null_check$\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap()\n"
|
| + " .put(key, value);\n"
|
| + " return this;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(variables_,
|
| + "$deprecation$\n"
|
| + "public Builder putAll$capitalized_name$(\n"
|
| + " java.util.Map<$type_parameters$> values) {\n"
|
| + " internalGetMutable$capitalized_name$().getMutableMap()\n"
|
| + " .putAll(values);\n"
|
| + " return this;\n"
|
| + "}\n");
|
| + }
|
| +}
|
| +
|
| +void ImmutableMapFieldGenerator::
|
| +GenerateMapGetters(io::Printer* printer) const {
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "public int get$capitalized_name$Count() {\n"
|
| + " return internalGet$capitalized_name$().getMap().size();\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "public boolean contains$capitalized_name$(\n"
|
| + " $key_type$ key) {\n"
|
| + " $key_null_check$\n"
|
| + " return internalGet$capitalized_name$().getMap().containsKey(key);\n"
|
| + "}\n");
|
| + if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use {@link #get$capitalized_name$Map()} instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| "get$capitalized_name$() {\n"
|
| - " return new com.google.protobuf.Internal.MapAdapter<\n"
|
| - " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
|
| - " internalGet$capitalized_name$().getMap(),\n"
|
| - " $name$ValueConverter);\n"
|
| + " return get$capitalized_name$Map();\n"
|
| "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(variables_,
|
| + "$deprecation$\n"
|
| + "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| + "get$capitalized_name$Map() {\n"
|
| + " return internalGetAdapted$capitalized_name$Map(\n"
|
| + " internalGet$capitalized_name$().getMap());"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| "$deprecation$\n"
|
| - "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| - "getMutable$capitalized_name$() {\n"
|
| - " return new com.google.protobuf.Internal.MapAdapter<\n"
|
| - " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
|
| - " internalGetMutable$capitalized_name$().getMutableMap(),\n"
|
| - " $name$ValueConverter);\n"
|
| + "public $value_enum_type$ get$capitalized_name$OrDefault(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_enum_type$ defaultValue) {\n"
|
| + " $key_null_check$\n"
|
| + " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
|
| + " internalGet$capitalized_name$().getMap();\n"
|
| + " return map.containsKey(key)\n"
|
| + " ? $name$ValueConverter.doForward(map.get(key))\n"
|
| + " : defaultValue;\n"
|
| "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "$deprecation$public Builder putAll$capitalized_name$(\n"
|
| - " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n"
|
| - " getMutable$capitalized_name$().putAll(values);\n"
|
| - " return this;\n"
|
| + "$deprecation$\n"
|
| + "public $value_enum_type$ get$capitalized_name$OrThrow(\n"
|
| + " $key_type$ key) {\n"
|
| + " $key_null_check$\n"
|
| + " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
|
| + " internalGet$capitalized_name$().getMap();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return $name$ValueConverter.doForward(map.get(key));\n"
|
| "}\n");
|
| if (SupportUnknownEnumValue(descriptor_->file())) {
|
| + printer->Print(
|
| + variables_,
|
| + "/**\n"
|
| + " * Use {@link #get$capitalized_name$ValueMap()} instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| + "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
|
| + "get$capitalized_name$Value() {\n"
|
| + " return get$capitalized_name$ValueMap();\n"
|
| + "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| "$deprecation$\n"
|
| "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
|
| - "get$capitalized_name$Value() {\n"
|
| + "get$capitalized_name$ValueMap() {\n"
|
| " return internalGet$capitalized_name$().getMap();\n"
|
| "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| "$deprecation$\n"
|
| - "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
|
| - "getMutable$capitalized_name$Value() {\n"
|
| - " return internalGetMutable$capitalized_name$().getMutableMap();\n"
|
| + "public $value_type$ get$capitalized_name$ValueOrDefault(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_type$ defaultValue) {\n"
|
| + " $key_null_check$\n"
|
| + " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
|
| + " internalGet$capitalized_name$().getMap();\n"
|
| + " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
|
| "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "$deprecation$public Builder putAll$capitalized_name$Value(\n"
|
| - " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n"
|
| - " getMutable$capitalized_name$Value().putAll(values);\n"
|
| - " return this;\n"
|
| + "$deprecation$\n"
|
| + "public $value_type$ get$capitalized_name$ValueOrThrow(\n"
|
| + " $key_type$ key) {\n"
|
| + " $key_null_check$\n"
|
| + " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
|
| + " internalGet$capitalized_name$().getMap();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return map.get(key);\n"
|
| "}\n");
|
| }
|
| } else {
|
| - WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| + "/**\n"
|
| + " * Use {@link #get$capitalized_name$Map()} instead.\n"
|
| + " */\n"
|
| + "@java.lang.Deprecated\n"
|
| "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n"
|
| + " return get$capitalized_name$Map();\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "public java.util.Map<$type_parameters$> get$capitalized_name$Map() {\n"
|
| " return internalGet$capitalized_name$().getMap();\n"
|
| "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "public java.util.Map<$type_parameters$>\n"
|
| - "getMutable$capitalized_name$() {\n"
|
| - " return internalGetMutable$capitalized_name$().getMutableMap();\n"
|
| + "$deprecation$\n"
|
| + "public $value_type$ get$capitalized_name$OrDefault(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_type$ defaultValue) {\n"
|
| + " $key_null_check$\n"
|
| + " java.util.Map<$type_parameters$> map =\n"
|
| + " internalGet$capitalized_name$().getMap();\n"
|
| + " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
|
| "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "$deprecation$public Builder putAll$capitalized_name$(\n"
|
| - " java.util.Map<$type_parameters$> values) {\n"
|
| - " getMutable$capitalized_name$().putAll(values);\n"
|
| - " return this;\n"
|
| + "$deprecation$\n"
|
| + "public $value_type$ get$capitalized_name$OrThrow(\n"
|
| + " $key_type$ key) {\n"
|
| + " $key_null_check$\n"
|
| + " java.util.Map<$type_parameters$> map =\n"
|
| + " internalGet$capitalized_name$().getMap();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return map.get(key);\n"
|
| "}\n");
|
| }
|
| }
|
| @@ -405,7 +663,7 @@ GenerateParsingCode(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| "if (!$get_mutable_bit_parser$) {\n"
|
| - " $name$_ = com.google.protobuf.MapField$lite$.newMapField(\n"
|
| + " $name$_ = com.google.protobuf.MapField.newMapField(\n"
|
| " $map_field_parameter$);\n"
|
| " $set_mutable_bit_parser$;\n"
|
| "}\n");
|
| @@ -414,22 +672,24 @@ GenerateParsingCode(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| "com.google.protobuf.ByteString bytes = input.readBytes();\n"
|
| - "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
|
| - "$name$ = $default_entry$.getParserForType().parseFrom(bytes);\n");
|
| + "com.google.protobuf.MapEntry<$type_parameters$>\n"
|
| + "$name$__ = $default_entry$.getParserForType().parseFrom(bytes);\n");
|
| printer->Print(
|
| variables_,
|
| - "if ($value_enum_type$.forNumber($name$.getValue()) == null) {\n"
|
| + "if ($value_enum_type$.forNumber($name$__.getValue()) == null) {\n"
|
| " unknownFields.mergeLengthDelimitedField($number$, bytes);\n"
|
| "} else {\n"
|
| - " $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n"
|
| + " $name$_.getMutableMap().put(\n"
|
| + " $name$__.getKey(), $name$__.getValue());\n"
|
| "}\n");
|
| } else {
|
| printer->Print(
|
| variables_,
|
| - "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
|
| - "$name$ = input.readMessage(\n"
|
| + "com.google.protobuf.MapEntry<$type_parameters$>\n"
|
| + "$name$__ = input.readMessage(\n"
|
| " $default_entry$.getParserForType(), extensionRegistry);\n"
|
| - "$name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n");
|
| + "$name$_.getMutableMap().put(\n"
|
| + " $name$__.getKey(), $name$__.getValue());\n");
|
| }
|
| }
|
|
|
| @@ -442,15 +702,12 @@ void ImmutableMapFieldGenerator::
|
| GenerateSerializationCode(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| - "for (java.util.Map.Entry<$type_parameters$> entry\n"
|
| - " : internalGet$capitalized_name$().getMap().entrySet()) {\n"
|
| - " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
|
| - " $name$ = $default_entry$.newBuilderForType()\n"
|
| - " .setKey(entry.getKey())\n"
|
| - " .setValue(entry.getValue())\n"
|
| - " .build();\n"
|
| - " output.writeMessage($number$, $name$);\n"
|
| - "}\n");
|
| + "com.google.protobuf.GeneratedMessage$ver$\n"
|
| + " .serialize$short_key_type$MapTo(\n"
|
| + " output,\n"
|
| + " internalGet$capitalized_name$(),\n"
|
| + " $default_entry$,\n"
|
| + " $number$);\n");
|
| }
|
|
|
| void ImmutableMapFieldGenerator::
|
| @@ -459,13 +716,13 @@ GenerateSerializedSizeCode(io::Printer* printer) const {
|
| variables_,
|
| "for (java.util.Map.Entry<$type_parameters$> entry\n"
|
| " : internalGet$capitalized_name$().getMap().entrySet()) {\n"
|
| - " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
|
| - " $name$ = $default_entry$.newBuilderForType()\n"
|
| + " com.google.protobuf.MapEntry<$type_parameters$>\n"
|
| + " $name$__ = $default_entry$.newBuilderForType()\n"
|
| " .setKey(entry.getKey())\n"
|
| " .setValue(entry.getValue())\n"
|
| " .build();\n"
|
| " size += com.google.protobuf.CodedOutputStream\n"
|
| - " .computeMessageSize($number$, $name$);\n"
|
| + " .computeMessageSize($number$, $name$__);\n"
|
| "}\n");
|
| }
|
|
|
|
|