| Index: third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc
|
| index b80d413901ac132d0800084a0dc1f720a85d4662..523052cc9e934c6d3e85d691e8eae5682cf17b91 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.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,10 +88,18 @@ 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);
|
| (*variables)["key_wire_type"] = WireType(key);
|
| (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver);
|
| + (*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 (GetJavaType(value) == JAVATYPE_ENUM) {
|
| // We store enums as Integers internally.
|
| (*variables)["value_type"] = "int";
|
| @@ -127,8 +135,6 @@ void SetMessageVariables(const FieldDescriptor* descriptor,
|
|
|
| (*variables)["default_entry"] = (*variables)["capitalized_name"] +
|
| "DefaultEntryHolder.defaultEntry";
|
| - (*variables)["lite"] = "Lite";
|
| - (*variables)["descriptor"] = "";
|
| }
|
|
|
| } // namespace
|
| @@ -157,25 +163,95 @@ int ImmutableMapFieldLiteGenerator::GetNumBitsForBuilder() const {
|
|
|
| void ImmutableMapFieldLiteGenerator::
|
| 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");
|
| }
|
| }
|
|
|
| @@ -184,11 +260,10 @@ 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.MapEntryLite<\n"
|
| " $type_parameters$> defaultEntry =\n"
|
| - " com.google.protobuf.MapEntry$lite$\n"
|
| + " com.google.protobuf.MapEntryLite\n"
|
| " .<$type_parameters$>newDefaultInstance(\n"
|
| - " $descriptor$\n"
|
| " $key_wire_type$,\n"
|
| " $key_default_value$,\n"
|
| " $value_wire_type$,\n"
|
| @@ -196,20 +271,35 @@ GenerateMembers(io::Printer* printer) const {
|
| "}\n");
|
| printer->Print(
|
| variables_,
|
| - "private com.google.protobuf.MapField$lite$<\n"
|
| + "private com.google.protobuf.MapFieldLite<\n"
|
| " $type_parameters$> $name$_ =\n"
|
| - " com.google.protobuf.MapField$lite$.emptyMapField();\n"
|
| - "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
|
| + " com.google.protobuf.MapFieldLite.emptyMapField();\n"
|
| + "private com.google.protobuf.MapFieldLite<$type_parameters$>\n"
|
| "internalGet$capitalized_name$() {\n"
|
| " return $name$_;\n"
|
| "}\n"
|
| - "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
|
| + "private com.google.protobuf.MapFieldLite<$type_parameters$>\n"
|
| "internalGetMutable$capitalized_name$() {\n"
|
| " if (!$name$_.isMutable()) {\n"
|
| - " $name$_ = $name$_.copy();\n"
|
| + " $name$_ = $name$_.mutableCopy();\n"
|
| " }\n"
|
| " return $name$_;\n"
|
| "}\n");
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "public int get$capitalized_name$Count() {\n"
|
| + " return internalGet$capitalized_name$().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$().containsKey(key);\n"
|
| + "}\n");
|
| if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
|
| printer->Print(
|
| variables_,
|
| @@ -219,34 +309,146 @@ GenerateMembers(io::Printer* printer) const {
|
| " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n"
|
| " $value_enum_type$.internalGetValueMap(),\n"
|
| " $unrecognized_value$);\n");
|
| + 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 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 java.util.Collections.unmodifiableMap(\n"
|
| + " new com.google.protobuf.Internal.MapAdapter<\n"
|
| + " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
|
| + " internalGet$capitalized_name$(),\n"
|
| + " $name$ValueConverter));\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\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$();\n"
|
| + " return map.containsKey(key)\n"
|
| + " ? $name$ValueConverter.doForward(map.get(key))\n"
|
| + " : defaultValue;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$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$();\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"
|
| - " return internalGet$capitalized_name$().getMap();\n"
|
| + "get$capitalized_name$ValueMap() {\n"
|
| + " return java.util.Collections.unmodifiableMap(\n"
|
| + " internalGet$capitalized_name$());\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\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$();\n"
|
| + " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$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$();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return map.get(key);\n"
|
| "}\n");
|
| }
|
| + } else {
|
| + 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<$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"
|
| + "public java.util.Map<$type_parameters$> get$capitalized_name$Map() {\n"
|
| + " return java.util.Collections.unmodifiableMap(\n"
|
| + " internalGet$capitalized_name$());\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"
|
| + "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$();\n"
|
| + " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$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$();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return map.get(key);\n"
|
| "}\n");
|
| }
|
|
|
| @@ -256,10 +458,10 @@ GenerateMembers(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| "private java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
|
| - "getMutable$capitalized_name$() {\n"
|
| + "getMutable$capitalized_name$Map() {\n"
|
| " return new com.google.protobuf.Internal.MapAdapter<\n"
|
| " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
|
| - " internalGetMutable$capitalized_name$().getMutableMap(),\n"
|
| + " internalGetMutable$capitalized_name$(),\n"
|
| " $name$ValueConverter);\n"
|
| "}\n");
|
| if (SupportUnknownEnumValue(descriptor_->file())) {
|
| @@ -267,8 +469,8 @@ GenerateMembers(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| "private java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
|
| - "getMutable$capitalized_name$Value() {\n"
|
| - " return internalGetMutable$capitalized_name$().getMutableMap();\n"
|
| + "getMutable$capitalized_name$ValueMap() {\n"
|
| + " return internalGetMutable$capitalized_name$();\n"
|
| "}\n");
|
| }
|
| } else {
|
| @@ -276,88 +478,252 @@ GenerateMembers(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| "private java.util.Map<$type_parameters$>\n"
|
| - "getMutable$capitalized_name$() {\n"
|
| - " return internalGetMutable$capitalized_name$().getMutableMap();\n"
|
| + "getMutable$capitalized_name$Map() {\n"
|
| + " return internalGetMutable$capitalized_name$();\n"
|
| "}\n");
|
| }
|
| }
|
|
|
| void ImmutableMapFieldLiteGenerator::
|
| GenerateBuilderMembers(io::Printer* printer) const {
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "public int get$capitalized_name$Count() {\n"
|
| + " return instance.get$capitalized_name$Map().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 instance.get$capitalized_name$Map().containsKey(key);\n"
|
| + "}\n");
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\n"
|
| + "public Builder clear$capitalized_name$() {\n"
|
| + " copyOnWrite();\n"
|
| + " instance.getMutable$capitalized_name$Map().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"
|
| + " copyOnWrite();\n"
|
| + " instance.getMutable$capitalized_name$Map().remove(key);\n"
|
| + " return this;\n"
|
| + "}\n");
|
| if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
|
| - WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "$deprecation$\n"
|
| + "/**\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 instance.get$capitalized_name$();\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"
|
| - "getMutable$capitalized_name$() {\n"
|
| + "get$capitalized_name$Map() {\n"
|
| + " return java.util.Collections.unmodifiableMap(\n"
|
| + " instance.get$capitalized_name$Map());\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\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$, $value_enum_type$> map =\n"
|
| + " instance.get$capitalized_name$Map();\n"
|
| + " return map.containsKey(key)\n"
|
| + " ? map.get(key)\n"
|
| + " : defaultValue;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$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$, $value_enum_type$> map =\n"
|
| + " instance.get$capitalized_name$Map();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return map.get(key);\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"
|
| " copyOnWrite();\n"
|
| - " return instance.getMutable$capitalized_name$();\n"
|
| + " instance.getMutable$capitalized_name$Map().put(key, value);\n"
|
| + " return this;\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"
|
| + " copyOnWrite();\n"
|
| + " instance.getMutable$capitalized_name$Map().putAll(values);\n"
|
| " return this;\n"
|
| "}\n");
|
| if (SupportUnknownEnumValue(descriptor_->file())) {
|
| - WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "$deprecation$\n"
|
| + "/**\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 instance.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"
|
| - "getMutable$capitalized_name$Value() {\n"
|
| + "get$capitalized_name$ValueMap() {\n"
|
| + " return java.util.Collections.unmodifiableMap(\n"
|
| + " instance.get$capitalized_name$ValueMap());\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$\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"
|
| + " instance.get$capitalized_name$ValueMap();\n"
|
| + " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$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"
|
| + " instance.get$capitalized_name$ValueMap();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return map.get(key);\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"
|
| " copyOnWrite();\n"
|
| - " return instance.getMutable$capitalized_name$Value();\n"
|
| + " instance.getMutable$capitalized_name$ValueMap().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"
|
| - " getMutable$capitalized_name$Value().putAll(values);\n"
|
| + " copyOnWrite();\n"
|
| + " instance.getMutable$capitalized_name$ValueMap().putAll(values);\n"
|
| " return this;\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 instance.get$capitalized_name$();\n"
|
| + " return get$capitalized_name$Map();\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$deprecation$"
|
| + "public java.util.Map<$type_parameters$> get$capitalized_name$Map() {\n"
|
| + " return java.util.Collections.unmodifiableMap(\n"
|
| + " instance.get$capitalized_name$Map());\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$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"
|
| + " instance.get$capitalized_name$Map();\n"
|
| + " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
|
| + "}\n");
|
| + WriteFieldDocComment(printer, descriptor_);
|
| + printer->Print(
|
| + variables_,
|
| + "$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"
|
| + " instance.get$capitalized_name$Map();\n"
|
| + " if (!map.containsKey(key)) {\n"
|
| + " throw new java.lang.IllegalArgumentException();\n"
|
| + " }\n"
|
| + " return map.get(key);\n"
|
| "}\n");
|
| WriteFieldDocComment(printer, descriptor_);
|
| printer->Print(
|
| variables_,
|
| - "public java.util.Map<$type_parameters$>\n"
|
| - "getMutable$capitalized_name$() {\n"
|
| + "$deprecation$"
|
| + "public Builder put$capitalized_name$(\n"
|
| + " $key_type$ key,\n"
|
| + " $value_type$ value) {\n"
|
| + " $key_null_check$\n"
|
| + " $value_null_check$\n"
|
| " copyOnWrite();\n"
|
| - " return instance.getMutable$capitalized_name$();\n"
|
| + " instance.getMutable$capitalized_name$Map().put(key, value);\n"
|
| + " return this;\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"
|
| + " copyOnWrite();\n"
|
| + " instance.getMutable$capitalized_name$Map().putAll(values);\n"
|
| " return this;\n"
|
| "}\n");
|
| }
|
| @@ -377,8 +743,8 @@ void ImmutableMapFieldLiteGenerator::
|
| GenerateVisitCode(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| - "$name$_ = visitor.visitMap(internalGetMutable$capitalized_name$(),\n"
|
| - " other.internalGet$capitalized_name$());\n");
|
| + "$name$_ = visitor.visitMap(\n"
|
| + " $name$_, other.internalGet$capitalized_name$());\n");
|
| }
|
|
|
| void ImmutableMapFieldLiteGenerator::
|
| @@ -392,29 +758,26 @@ GenerateParsingCode(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| "if (!$name$_.isMutable()) {\n"
|
| - " $name$_ = $name$_.copy();\n"
|
| + " $name$_ = $name$_.mutableCopy();\n"
|
| "}\n");
|
| if (!SupportUnknownEnumValue(descriptor_->file()) &&
|
| GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
|
| 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");
|
| + "java.util.Map.Entry<$type_parameters$> $name$__ =\n"
|
| + " $default_entry$.parseEntry(bytes, extensionRegistry);\n");
|
| printer->Print(
|
| variables_,
|
| - "if ($value_enum_type$.forNumber($name$.getValue()) == null) {\n"
|
| + "if ($value_enum_type$.forNumber($name$__.getValue()) == null) {\n"
|
| " super.mergeLengthDelimitedField($number$, bytes);\n"
|
| "} else {\n"
|
| - " $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n"
|
| + " $name$_.put($name$__);\n"
|
| "}\n");
|
| } else {
|
| printer->Print(
|
| variables_,
|
| - "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
|
| - "$name$ = input.readMessage(\n"
|
| - " $default_entry$.getParserForType(), extensionRegistry);\n"
|
| - "$name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n");
|
| + "$default_entry$.parseInto($name$_, input, extensionRegistry);");
|
| }
|
| }
|
|
|
| @@ -428,13 +791,9 @@ 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"
|
| + " : internalGet$capitalized_name$().entrySet()) {\n"
|
| + " $default_entry$.serializeTo(\n"
|
| + " output, $number$, entry.getKey(), entry.getValue());\n"
|
| "}\n");
|
| }
|
|
|
| @@ -443,14 +802,9 @@ GenerateSerializedSizeCode(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"
|
| - " size += com.google.protobuf.CodedOutputStream\n"
|
| - " .computeMessageSize($number$, $name$);\n"
|
| + " : internalGet$capitalized_name$().entrySet()) {\n"
|
| + " size += $default_entry$.computeMessageSize(\n"
|
| + " $number$, entry.getKey(), entry.getValue());\n"
|
| "}\n");
|
| }
|
|
|
| @@ -466,7 +820,7 @@ void ImmutableMapFieldLiteGenerator::
|
| GenerateHashCode(io::Printer* printer) const {
|
| printer->Print(
|
| variables_,
|
| - "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n"
|
| + "if (!internalGet$capitalized_name$().isEmpty()) {\n"
|
| " hash = (37 * hash) + $constant_name$;\n"
|
| " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n"
|
| "}\n");
|
|
|