| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 string WireType(const FieldDescriptor* field) { | 73 string WireType(const FieldDescriptor* field) { |
| 74 return "com.google.protobuf.WireFormat.FieldType." + | 74 return "com.google.protobuf.WireFormat.FieldType." + |
| 75 string(FieldTypeName(field->type())); | 75 string(FieldTypeName(field->type())); |
| 76 } | 76 } |
| 77 | 77 |
| 78 void SetMessageVariables(const FieldDescriptor* descriptor, | 78 void SetMessageVariables(const FieldDescriptor* descriptor, |
| 79 int messageBitIndex, | 79 int messageBitIndex, |
| 80 int builderBitIndex, | 80 int builderBitIndex, |
| 81 const FieldGeneratorInfo* info, | 81 const FieldGeneratorInfo* info, |
| 82 Context* context, | 82 Context* context, |
| 83 map<string, string>* variables) { | 83 std::map<string, string>* variables) { |
| 84 SetCommonFieldVariables(descriptor, info, variables); | 84 SetCommonFieldVariables(descriptor, info, variables); |
| 85 ClassNameResolver* name_resolver = context->GetNameResolver(); | 85 ClassNameResolver* name_resolver = context->GetNameResolver(); |
| 86 | 86 |
| 87 (*variables)["type"] = | 87 (*variables)["type"] = |
| 88 name_resolver->GetImmutableClassName(descriptor->message_type()); | 88 name_resolver->GetImmutableClassName(descriptor->message_type()); |
| 89 const FieldDescriptor* key = KeyField(descriptor); | 89 const FieldDescriptor* key = KeyField(descriptor); |
| 90 const FieldDescriptor* value = ValueField(descriptor); | 90 const FieldDescriptor* value = ValueField(descriptor); |
| 91 const JavaType keyJavaType = GetJavaType(key); |
| 92 const JavaType valueJavaType = GetJavaType(value); |
| 93 |
| 91 (*variables)["key_type"] = TypeName(key, name_resolver, false); | 94 (*variables)["key_type"] = TypeName(key, name_resolver, false); |
| 92 (*variables)["boxed_key_type"] = TypeName(key, name_resolver, true); | 95 string boxed_key_type = TypeName(key, name_resolver, true); |
| 96 (*variables)["boxed_key_type"] = boxed_key_type; |
| 97 // Used for calling the serialization function. |
| 98 (*variables)["short_key_type"] = |
| 99 boxed_key_type.substr(boxed_key_type.rfind('.') + 1); |
| 93 (*variables)["key_wire_type"] = WireType(key); | 100 (*variables)["key_wire_type"] = WireType(key); |
| 94 (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver); | 101 (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver); |
| 95 if (GetJavaType(value) == JAVATYPE_ENUM) { | 102 (*variables)["key_null_check"] = IsReferenceType(keyJavaType) ? |
| 103 "if (key == null) { throw new java.lang.NullPointerException(); }" : ""; |
| 104 (*variables)["value_null_check"] = IsReferenceType(valueJavaType) ? |
| 105 "if (value == null) { throw new java.lang.NullPointerException(); }" : ""; |
| 106 if (valueJavaType == JAVATYPE_ENUM) { |
| 96 // We store enums as Integers internally. | 107 // We store enums as Integers internally. |
| 97 (*variables)["value_type"] = "int"; | 108 (*variables)["value_type"] = "int"; |
| 98 (*variables)["boxed_value_type"] = "java.lang.Integer"; | 109 (*variables)["boxed_value_type"] = "java.lang.Integer"; |
| 99 (*variables)["value_wire_type"] = WireType(value); | 110 (*variables)["value_wire_type"] = WireType(value); |
| 100 (*variables)["value_default_value"] = | 111 (*variables)["value_default_value"] = |
| 101 DefaultValue(value, true, name_resolver) + ".getNumber()"; | 112 DefaultValue(value, true, name_resolver) + ".getNumber()"; |
| 102 | 113 |
| 103 (*variables)["value_enum_type"] = TypeName(value, name_resolver, false); | 114 (*variables)["value_enum_type"] = TypeName(value, name_resolver, false); |
| 104 | 115 |
| 105 if (SupportUnknownEnumValue(descriptor->file())) { | 116 if (SupportUnknownEnumValue(descriptor->file())) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 128 | 139 |
| 129 // For repeated fields, one bit is used for whether the array is immutable | 140 // For repeated fields, one bit is used for whether the array is immutable |
| 130 // in the parsing constructor. | 141 // in the parsing constructor. |
| 131 (*variables)["get_mutable_bit_parser"] = | 142 (*variables)["get_mutable_bit_parser"] = |
| 132 GenerateGetBitMutableLocal(builderBitIndex); | 143 GenerateGetBitMutableLocal(builderBitIndex); |
| 133 (*variables)["set_mutable_bit_parser"] = | 144 (*variables)["set_mutable_bit_parser"] = |
| 134 GenerateSetBitMutableLocal(builderBitIndex); | 145 GenerateSetBitMutableLocal(builderBitIndex); |
| 135 | 146 |
| 136 (*variables)["default_entry"] = (*variables)["capitalized_name"] + | 147 (*variables)["default_entry"] = (*variables)["capitalized_name"] + |
| 137 "DefaultEntryHolder.defaultEntry"; | 148 "DefaultEntryHolder.defaultEntry"; |
| 138 (*variables)["lite"] = ""; | |
| 139 (*variables)["map_field_parameter"] = (*variables)["default_entry"]; | 149 (*variables)["map_field_parameter"] = (*variables)["default_entry"]; |
| 140 (*variables)["descriptor"] = | 150 (*variables)["descriptor"] = |
| 141 name_resolver->GetImmutableClassName(descriptor->file()) + | 151 name_resolver->GetImmutableClassName(descriptor->file()) + |
| 142 ".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) + | 152 ".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) + |
| 143 "_descriptor, "; | 153 "_descriptor, "; |
| 154 (*variables)["ver"] = GeneratedCodeVersionSuffix(); |
| 144 } | 155 } |
| 145 | 156 |
| 146 } // namespace | 157 } // namespace |
| 147 | 158 |
| 148 ImmutableMapFieldGenerator:: | 159 ImmutableMapFieldGenerator:: |
| 149 ImmutableMapFieldGenerator(const FieldDescriptor* descriptor, | 160 ImmutableMapFieldGenerator(const FieldDescriptor* descriptor, |
| 150 int messageBitIndex, | 161 int messageBitIndex, |
| 151 int builderBitIndex, | 162 int builderBitIndex, |
| 152 Context* context) | 163 Context* context) |
| 153 : descriptor_(descriptor), name_resolver_(context->GetNameResolver()) { | 164 : descriptor_(descriptor), name_resolver_(context->GetNameResolver()) { |
| 154 SetMessageVariables(descriptor, messageBitIndex, builderBitIndex, | 165 SetMessageVariables(descriptor, messageBitIndex, builderBitIndex, |
| 155 context->GetFieldGeneratorInfo(descriptor), | 166 context->GetFieldGeneratorInfo(descriptor), |
| 156 context, &variables_); | 167 context, &variables_); |
| 157 } | 168 } |
| 158 | 169 |
| 159 ImmutableMapFieldGenerator:: | 170 ImmutableMapFieldGenerator:: |
| 160 ~ImmutableMapFieldGenerator() {} | 171 ~ImmutableMapFieldGenerator() {} |
| 161 | 172 |
| 162 int ImmutableMapFieldGenerator::GetNumBitsForMessage() const { | 173 int ImmutableMapFieldGenerator::GetNumBitsForMessage() const { |
| 163 return 0; | 174 return 0; |
| 164 } | 175 } |
| 165 | 176 |
| 166 int ImmutableMapFieldGenerator::GetNumBitsForBuilder() const { | 177 int ImmutableMapFieldGenerator::GetNumBitsForBuilder() const { |
| 167 return 1; | 178 return 1; |
| 168 } | 179 } |
| 169 | 180 |
| 170 void ImmutableMapFieldGenerator:: | 181 void ImmutableMapFieldGenerator:: |
| 171 GenerateInterfaceMembers(io::Printer* printer) const { | 182 GenerateInterfaceMembers(io::Printer* printer) const { |
| 183 WriteFieldDocComment(printer, descriptor_); |
| 184 printer->Print( |
| 185 variables_, |
| 186 "$deprecation$int get$capitalized_name$Count();\n"); |
| 187 WriteFieldDocComment(printer, descriptor_); |
| 188 printer->Print( |
| 189 variables_, |
| 190 "$deprecation$boolean contains$capitalized_name$(\n" |
| 191 " $key_type$ key);\n"); |
| 172 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { | 192 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { |
| 193 printer->Print( |
| 194 variables_, |
| 195 "/**\n" |
| 196 " * Use {@link #get$capitalized_name$Map()} instead.\n" |
| 197 " */\n" |
| 198 "@java.lang.Deprecated\n" |
| 199 "java.util.Map<$boxed_key_type$, $value_enum_type$>\n" |
| 200 "get$capitalized_name$();\n"); |
| 173 WriteFieldDocComment(printer, descriptor_); | 201 WriteFieldDocComment(printer, descriptor_); |
| 174 printer->Print( | 202 printer->Print( |
| 175 variables_, | 203 variables_, |
| 176 "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n" | 204 "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n" |
| 177 "get$capitalized_name$();\n"); | 205 "get$capitalized_name$Map();\n"); |
| 206 WriteFieldDocComment(printer, descriptor_); |
| 207 printer->Print( |
| 208 variables_, |
| 209 "$deprecation$$value_enum_type$ get$capitalized_name$OrDefault(\n" |
| 210 " $key_type$ key,\n" |
| 211 " $value_enum_type$ defaultValue);\n"); |
| 212 WriteFieldDocComment(printer, descriptor_); |
| 213 printer->Print( |
| 214 variables_, |
| 215 "$deprecation$$value_enum_type$ get$capitalized_name$OrThrow(\n" |
| 216 " $key_type$ key);\n"); |
| 178 if (SupportUnknownEnumValue(descriptor_->file())) { | 217 if (SupportUnknownEnumValue(descriptor_->file())) { |
| 218 printer->Print( |
| 219 variables_, |
| 220 "/**\n" |
| 221 " * Use {@link #get$capitalized_name$ValueMap()} instead.\n" |
| 222 " */\n" |
| 223 "@java.lang.Deprecated\n" |
| 224 "java.util.Map<$type_parameters$>\n" |
| 225 "get$capitalized_name$Value();\n"); |
| 179 WriteFieldDocComment(printer, descriptor_); | 226 WriteFieldDocComment(printer, descriptor_); |
| 180 printer->Print( | 227 printer->Print( |
| 181 variables_, | 228 variables_, |
| 182 "$deprecation$java.util.Map<$type_parameters$>\n" | 229 "$deprecation$java.util.Map<$type_parameters$>\n" |
| 183 "get$capitalized_name$Value();\n"); | 230 "get$capitalized_name$ValueMap();\n"); |
| 231 WriteFieldDocComment(printer, descriptor_); |
| 232 printer->Print( |
| 233 variables_, |
| 234 "$deprecation$\n" |
| 235 "$value_type$ get$capitalized_name$ValueOrDefault(\n" |
| 236 " $key_type$ key,\n" |
| 237 " $value_type$ defaultValue);\n"); |
| 238 WriteFieldDocComment(printer, descriptor_); |
| 239 printer->Print( |
| 240 variables_, |
| 241 "$deprecation$\n" |
| 242 "$value_type$ get$capitalized_name$ValueOrThrow(\n" |
| 243 " $key_type$ key);\n"); |
| 184 } | 244 } |
| 185 } else { | 245 } else { |
| 246 printer->Print( |
| 247 variables_, |
| 248 "/**\n" |
| 249 " * Use {@link #get$capitalized_name$Map()} instead.\n" |
| 250 " */\n" |
| 251 "@java.lang.Deprecated\n" |
| 252 "java.util.Map<$type_parameters$>\n" |
| 253 "get$capitalized_name$();\n"); |
| 186 WriteFieldDocComment(printer, descriptor_); | 254 WriteFieldDocComment(printer, descriptor_); |
| 187 printer->Print( | 255 printer->Print( |
| 188 variables_, | 256 variables_, |
| 189 "$deprecation$java.util.Map<$type_parameters$>\n" | 257 "$deprecation$java.util.Map<$type_parameters$>\n" |
| 190 "get$capitalized_name$();\n"); | 258 "get$capitalized_name$Map();\n"); |
| 259 WriteFieldDocComment(printer, descriptor_); |
| 260 printer->Print( |
| 261 variables_, |
| 262 "$deprecation$\n" |
| 263 "$value_type$ get$capitalized_name$OrDefault(\n" |
| 264 " $key_type$ key,\n" |
| 265 " $value_type$ defaultValue);\n"); |
| 266 WriteFieldDocComment(printer, descriptor_); |
| 267 printer->Print( |
| 268 variables_, |
| 269 "$deprecation$\n" |
| 270 "$value_type$ get$capitalized_name$OrThrow(\n" |
| 271 " $key_type$ key);\n"); |
| 191 } | 272 } |
| 192 } | 273 } |
| 193 | 274 |
| 194 void ImmutableMapFieldGenerator:: | 275 void ImmutableMapFieldGenerator:: |
| 195 GenerateMembers(io::Printer* printer) const { | 276 GenerateMembers(io::Printer* printer) const { |
| 196 printer->Print( | 277 printer->Print( |
| 197 variables_, | 278 variables_, |
| 198 "private static final class $capitalized_name$DefaultEntryHolder {\n" | 279 "private static final class $capitalized_name$DefaultEntryHolder {\n" |
| 199 " static final com.google.protobuf.MapEntry$lite$<\n" | 280 " static final com.google.protobuf.MapEntry<\n" |
| 200 " $type_parameters$> defaultEntry =\n" | 281 " $type_parameters$> defaultEntry =\n" |
| 201 " com.google.protobuf.MapEntry$lite$\n" | 282 " com.google.protobuf.MapEntry\n" |
| 202 " .<$type_parameters$>newDefaultInstance(\n" | 283 " .<$type_parameters$>newDefaultInstance(\n" |
| 203 " $descriptor$\n" | 284 " $descriptor$\n" |
| 204 " $key_wire_type$,\n" | 285 " $key_wire_type$,\n" |
| 205 " $key_default_value$,\n" | 286 " $key_default_value$,\n" |
| 206 " $value_wire_type$,\n" | 287 " $value_wire_type$,\n" |
| 207 " $value_default_value$);\n" | 288 " $value_default_value$);\n" |
| 208 "}\n"); | 289 "}\n"); |
| 209 printer->Print( | 290 printer->Print( |
| 210 variables_, | 291 variables_, |
| 211 "private com.google.protobuf.MapField$lite$<\n" | 292 "private com.google.protobuf.MapField<\n" |
| 212 " $type_parameters$> $name$_;\n" | 293 " $type_parameters$> $name$_;\n" |
| 213 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n" | 294 "private com.google.protobuf.MapField<$type_parameters$>\n" |
| 214 "internalGet$capitalized_name$() {\n" | 295 "internalGet$capitalized_name$() {\n" |
| 215 " if ($name$_ == null) {\n" | 296 " if ($name$_ == null) {\n" |
| 216 " return com.google.protobuf.MapField$lite$.emptyMapField(\n" | 297 " return com.google.protobuf.MapField.emptyMapField(\n" |
| 217 " $map_field_parameter$);\n" | 298 " $map_field_parameter$);\n" |
| 218 " }\n" | 299 " }\n" |
| 219 " return $name$_;\n" | 300 " return $name$_;\n" |
| 220 "}\n"); | 301 "}\n"); |
| 221 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { | 302 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { |
| 222 printer->Print( | 303 printer->Print( |
| 223 variables_, | 304 variables_, |
| 224 "private static final\n" | 305 "private static final\n" |
| 225 "com.google.protobuf.Internal.MapAdapter.Converter<\n" | 306 "com.google.protobuf.Internal.MapAdapter.Converter<\n" |
| 226 " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n" | 307 " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n" |
| 227 " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n" | 308 " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n" |
| 228 " $value_enum_type$.internalGetValueMap(),\n" | 309 " $value_enum_type$.internalGetValueMap(),\n" |
| 229 " $unrecognized_value$);\n"); | 310 " $unrecognized_value$);\n"); |
| 230 if (SupportUnknownEnumValue(descriptor_->file())) { | |
| 231 WriteFieldDocComment(printer, descriptor_); | |
| 232 printer->Print( | |
| 233 variables_, | |
| 234 "$deprecation$\n" | |
| 235 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" | |
| 236 "get$capitalized_name$Value() {\n" | |
| 237 " return internalGet$capitalized_name$().getMap();\n" | |
| 238 "}\n"); | |
| 239 } | |
| 240 WriteFieldDocComment(printer, descriptor_); | |
| 241 printer->Print( | 311 printer->Print( |
| 242 variables_, | 312 variables_, |
| 243 "$deprecation$\n" | 313 "private static final java.util.Map<$boxed_key_type$, " |
| 244 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" | 314 "$value_enum_type$>\n" |
| 245 "get$capitalized_name$() {\n" | 315 "internalGetAdapted$capitalized_name$Map(\n" |
| 316 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map) {\n" |
| 246 " return new com.google.protobuf.Internal.MapAdapter<\n" | 317 " return new com.google.protobuf.Internal.MapAdapter<\n" |
| 247 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n" | 318 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n" |
| 248 " internalGet$capitalized_name$().getMap(),\n" | 319 " map, $name$ValueConverter);\n" |
| 249 " $name$ValueConverter);\n" | |
| 250 "}\n"); | |
| 251 } else { | |
| 252 WriteFieldDocComment(printer, descriptor_); | |
| 253 printer->Print( | |
| 254 variables_, | |
| 255 "$deprecation$\n" | |
| 256 "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n" | |
| 257 " return internalGet$capitalized_name$().getMap();\n" | |
| 258 "}\n"); | 320 "}\n"); |
| 259 } | 321 } |
| 322 GenerateMapGetters(printer); |
| 260 } | 323 } |
| 261 | 324 |
| 262 void ImmutableMapFieldGenerator:: | 325 void ImmutableMapFieldGenerator:: |
| 263 GenerateBuilderMembers(io::Printer* printer) const { | 326 GenerateBuilderMembers(io::Printer* printer) const { |
| 264 printer->Print( | 327 printer->Print( |
| 265 variables_, | 328 variables_, |
| 266 "private com.google.protobuf.MapField$lite$<\n" | 329 "private com.google.protobuf.MapField<\n" |
| 267 " $type_parameters$> $name$_;\n" | 330 " $type_parameters$> $name$_;\n" |
| 268 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n" | 331 "private com.google.protobuf.MapField<$type_parameters$>\n" |
| 269 "internalGet$capitalized_name$() {\n" | 332 "internalGet$capitalized_name$() {\n" |
| 270 " if ($name$_ == null) {\n" | 333 " if ($name$_ == null) {\n" |
| 271 " return com.google.protobuf.MapField$lite$.emptyMapField(\n" | 334 " return com.google.protobuf.MapField.emptyMapField(\n" |
| 272 " $map_field_parameter$);\n" | 335 " $map_field_parameter$);\n" |
| 273 " }\n" | 336 " }\n" |
| 274 " return $name$_;\n" | 337 " return $name$_;\n" |
| 275 "}\n" | 338 "}\n" |
| 276 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n" | 339 "private com.google.protobuf.MapField<$type_parameters$>\n" |
| 277 "internalGetMutable$capitalized_name$() {\n" | 340 "internalGetMutable$capitalized_name$() {\n" |
| 278 " $on_changed$;\n" | 341 " $on_changed$;\n" |
| 279 " if ($name$_ == null) {\n" | 342 " if ($name$_ == null) {\n" |
| 280 " $name$_ = com.google.protobuf.MapField$lite$.newMapField(\n" | 343 " $name$_ = com.google.protobuf.MapField.newMapField(\n" |
| 281 " $map_field_parameter$);\n" | 344 " $map_field_parameter$);\n" |
| 282 " }\n" | 345 " }\n" |
| 283 " if (!$name$_.isMutable()) {\n" | 346 " if (!$name$_.isMutable()) {\n" |
| 284 " $name$_ = $name$_.copy();\n" | 347 " $name$_ = $name$_.copy();\n" |
| 285 " }\n" | 348 " }\n" |
| 286 " return $name$_;\n" | 349 " return $name$_;\n" |
| 287 "}\n"); | 350 "}\n"); |
| 351 GenerateMapGetters(printer); |
| 352 printer->Print(variables_, |
| 353 "$deprecation$\n" |
| 354 "public Builder clear$capitalized_name$() {\n" |
| 355 " internalGetMutable$capitalized_name$().getMutableMap()\n" |
| 356 " .clear();\n" |
| 357 " return this;\n" |
| 358 "}\n"); |
| 359 WriteFieldDocComment(printer, descriptor_); |
| 360 printer->Print(variables_, |
| 361 "$deprecation$\n" |
| 362 "public Builder remove$capitalized_name$(\n" |
| 363 " $key_type$ key) {\n" |
| 364 " $key_null_check$\n" |
| 365 " internalGetMutable$capitalized_name$().getMutableMap()\n" |
| 366 " .remove(key);\n" |
| 367 " return this;\n" |
| 368 "}\n"); |
| 288 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { | 369 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { |
| 289 WriteFieldDocComment(printer, descriptor_); | 370 printer->Print( |
| 290 printer->Print( | 371 variables_, |
| 291 variables_, | 372 "/**\n" |
| 292 "$deprecation$\n" | 373 " * Use alternate mutation accessors instead.\n" |
| 293 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" | 374 " */\n" |
| 294 "get$capitalized_name$() {\n" | 375 "@java.lang.Deprecated\n" |
| 295 " return new com.google.protobuf.Internal.MapAdapter<\n" | |
| 296 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n" | |
| 297 " internalGet$capitalized_name$().getMap(),\n" | |
| 298 " $name$ValueConverter);\n" | |
| 299 "}\n"); | |
| 300 WriteFieldDocComment(printer, descriptor_); | |
| 301 printer->Print( | |
| 302 variables_, | |
| 303 "$deprecation$\n" | |
| 304 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" | 376 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" |
| 305 "getMutable$capitalized_name$() {\n" | 377 "getMutable$capitalized_name$() {\n" |
| 306 " return new com.google.protobuf.Internal.MapAdapter<\n" | 378 " return internalGetAdapted$capitalized_name$Map(\n" |
| 307 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n" | 379 " internalGetMutable$capitalized_name$().getMutableMap());\n" |
| 308 " internalGetMutable$capitalized_name$().getMutableMap(),\n" | 380 "}\n"); |
| 309 " $name$ValueConverter);\n" | 381 WriteFieldDocComment(printer, descriptor_); |
| 310 "}\n"); | 382 printer->Print(variables_, |
| 383 "$deprecation$public Builder put$capitalized_name$(\n" |
| 384 " $key_type$ key,\n" |
| 385 " $value_enum_type$ value) {\n" |
| 386 " $key_null_check$\n" |
| 387 " $value_null_check$\n" |
| 388 " internalGetMutable$capitalized_name$().getMutableMap()\n" |
| 389 " .put(key, $name$ValueConverter.doBackward(value));\n" |
| 390 " return this;\n" |
| 391 "}\n"); |
| 311 WriteFieldDocComment(printer, descriptor_); | 392 WriteFieldDocComment(printer, descriptor_); |
| 312 printer->Print( | 393 printer->Print( |
| 313 variables_, | 394 variables_, |
| 314 "$deprecation$public Builder putAll$capitalized_name$(\n" | 395 "$deprecation$public Builder putAll$capitalized_name$(\n" |
| 315 " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n" | 396 " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n" |
| 316 " getMutable$capitalized_name$().putAll(values);\n" | 397 " internalGetAdapted$capitalized_name$Map(\n" |
| 398 " internalGetMutable$capitalized_name$().getMutableMap())\n" |
| 399 " .putAll(values);\n" |
| 317 " return this;\n" | 400 " return this;\n" |
| 318 "}\n"); | 401 "}\n"); |
| 319 if (SupportUnknownEnumValue(descriptor_->file())) { | 402 if (SupportUnknownEnumValue(descriptor_->file())) { |
| 320 WriteFieldDocComment(printer, descriptor_); | 403 printer->Print( |
| 321 printer->Print( | 404 variables_, |
| 322 variables_, | 405 "/**\n" |
| 323 "$deprecation$\n" | 406 " * Use alternate mutation accessors instead.\n" |
| 324 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" | 407 " */\n" |
| 325 "get$capitalized_name$Value() {\n" | 408 "@java.lang.Deprecated\n" |
| 326 " return internalGet$capitalized_name$().getMap();\n" | |
| 327 "}\n"); | |
| 328 WriteFieldDocComment(printer, descriptor_); | |
| 329 printer->Print( | |
| 330 variables_, | |
| 331 "$deprecation$\n" | |
| 332 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" | 409 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" |
| 333 "getMutable$capitalized_name$Value() {\n" | 410 "getMutable$capitalized_name$Value() {\n" |
| 334 " return internalGetMutable$capitalized_name$().getMutableMap();\n" | 411 " return internalGetMutable$capitalized_name$().getMutableMap();\n" |
| 335 "}\n"); | 412 "}\n"); |
| 336 WriteFieldDocComment(printer, descriptor_); | 413 WriteFieldDocComment(printer, descriptor_); |
| 337 printer->Print( | 414 printer->Print( |
| 338 variables_, | 415 variables_, |
| 416 "$deprecation$public Builder put$capitalized_name$Value(\n" |
| 417 " $key_type$ key,\n" |
| 418 " $value_type$ value) {\n" |
| 419 " $key_null_check$\n" |
| 420 " if ($value_enum_type$.forNumber(value) == null) {\n" |
| 421 " throw new java.lang.IllegalArgumentException();\n" |
| 422 " }\n" |
| 423 " internalGetMutable$capitalized_name$().getMutableMap()\n" |
| 424 " .put(key, value);\n" |
| 425 " return this;\n" |
| 426 "}\n"); |
| 427 WriteFieldDocComment(printer, descriptor_); |
| 428 printer->Print( |
| 429 variables_, |
| 339 "$deprecation$public Builder putAll$capitalized_name$Value(\n" | 430 "$deprecation$public Builder putAll$capitalized_name$Value(\n" |
| 340 " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n" | 431 " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n" |
| 341 " getMutable$capitalized_name$Value().putAll(values);\n" | 432 " internalGetMutable$capitalized_name$().getMutableMap()\n" |
| 433 " .putAll(values);\n" |
| 342 " return this;\n" | 434 " return this;\n" |
| 343 "}\n"); | 435 "}\n"); |
| 344 } | 436 } |
| 345 } else { | 437 } else { |
| 346 WriteFieldDocComment(printer, descriptor_); | 438 printer->Print( |
| 347 printer->Print( | 439 variables_, |
| 348 variables_, | 440 "/**\n" |
| 349 "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n" | 441 " * Use alternate mutation accessors instead.\n" |
| 350 " return internalGet$capitalized_name$().getMap();\n" | 442 " */\n" |
| 351 "}\n"); | 443 "@java.lang.Deprecated\n" |
| 352 WriteFieldDocComment(printer, descriptor_); | |
| 353 printer->Print( | |
| 354 variables_, | |
| 355 "public java.util.Map<$type_parameters$>\n" | 444 "public java.util.Map<$type_parameters$>\n" |
| 356 "getMutable$capitalized_name$() {\n" | 445 "getMutable$capitalized_name$() {\n" |
| 357 " return internalGetMutable$capitalized_name$().getMutableMap();\n" | 446 " return internalGetMutable$capitalized_name$().getMutableMap();\n" |
| 358 "}\n"); | 447 "}\n"); |
| 359 WriteFieldDocComment(printer, descriptor_); | 448 WriteFieldDocComment(printer, descriptor_); |
| 360 printer->Print( | 449 printer->Print(variables_, |
| 361 variables_, | 450 "$deprecation$" |
| 362 "$deprecation$public Builder putAll$capitalized_name$(\n" | 451 "public Builder put$capitalized_name$(\n" |
| 363 " java.util.Map<$type_parameters$> values) {\n" | 452 " $key_type$ key,\n" |
| 364 " getMutable$capitalized_name$().putAll(values);\n" | 453 " $value_type$ value) {\n" |
| 365 " return this;\n" | 454 " $key_null_check$\n" |
| 366 "}\n"); | 455 " $value_null_check$\n" |
| 456 " internalGetMutable$capitalized_name$().getMutableMap()\n" |
| 457 " .put(key, value);\n" |
| 458 " return this;\n" |
| 459 "}\n"); |
| 460 WriteFieldDocComment(printer, descriptor_); |
| 461 printer->Print(variables_, |
| 462 "$deprecation$\n" |
| 463 "public Builder putAll$capitalized_name$(\n" |
| 464 " java.util.Map<$type_parameters$> values) {\n" |
| 465 " internalGetMutable$capitalized_name$().getMutableMap()\n" |
| 466 " .putAll(values);\n" |
| 467 " return this;\n" |
| 468 "}\n"); |
| 367 } | 469 } |
| 368 } | 470 } |
| 471 |
| 472 void ImmutableMapFieldGenerator:: |
| 473 GenerateMapGetters(io::Printer* printer) const { |
| 474 printer->Print( |
| 475 variables_, |
| 476 "$deprecation$\n" |
| 477 "public int get$capitalized_name$Count() {\n" |
| 478 " return internalGet$capitalized_name$().getMap().size();\n" |
| 479 "}\n"); |
| 480 WriteFieldDocComment(printer, descriptor_); |
| 481 printer->Print( |
| 482 variables_, |
| 483 "$deprecation$\n" |
| 484 "public boolean contains$capitalized_name$(\n" |
| 485 " $key_type$ key) {\n" |
| 486 " $key_null_check$\n" |
| 487 " return internalGet$capitalized_name$().getMap().containsKey(key);\n" |
| 488 "}\n"); |
| 489 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { |
| 490 printer->Print( |
| 491 variables_, |
| 492 "/**\n" |
| 493 " * Use {@link #get$capitalized_name$Map()} instead.\n" |
| 494 " */\n" |
| 495 "@java.lang.Deprecated\n" |
| 496 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" |
| 497 "get$capitalized_name$() {\n" |
| 498 " return get$capitalized_name$Map();\n" |
| 499 "}\n"); |
| 500 WriteFieldDocComment(printer, descriptor_); |
| 501 printer->Print(variables_, |
| 502 "$deprecation$\n" |
| 503 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" |
| 504 "get$capitalized_name$Map() {\n" |
| 505 " return internalGetAdapted$capitalized_name$Map(\n" |
| 506 " internalGet$capitalized_name$().getMap());" |
| 507 "}\n"); |
| 508 WriteFieldDocComment(printer, descriptor_); |
| 509 printer->Print( |
| 510 variables_, |
| 511 "$deprecation$\n" |
| 512 "public $value_enum_type$ get$capitalized_name$OrDefault(\n" |
| 513 " $key_type$ key,\n" |
| 514 " $value_enum_type$ defaultValue) {\n" |
| 515 " $key_null_check$\n" |
| 516 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n" |
| 517 " internalGet$capitalized_name$().getMap();\n" |
| 518 " return map.containsKey(key)\n" |
| 519 " ? $name$ValueConverter.doForward(map.get(key))\n" |
| 520 " : defaultValue;\n" |
| 521 "}\n"); |
| 522 WriteFieldDocComment(printer, descriptor_); |
| 523 printer->Print( |
| 524 variables_, |
| 525 "$deprecation$\n" |
| 526 "public $value_enum_type$ get$capitalized_name$OrThrow(\n" |
| 527 " $key_type$ key) {\n" |
| 528 " $key_null_check$\n" |
| 529 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n" |
| 530 " internalGet$capitalized_name$().getMap();\n" |
| 531 " if (!map.containsKey(key)) {\n" |
| 532 " throw new java.lang.IllegalArgumentException();\n" |
| 533 " }\n" |
| 534 " return $name$ValueConverter.doForward(map.get(key));\n" |
| 535 "}\n"); |
| 536 if (SupportUnknownEnumValue(descriptor_->file())) { |
| 537 printer->Print( |
| 538 variables_, |
| 539 "/**\n" |
| 540 " * Use {@link #get$capitalized_name$ValueMap()} instead.\n" |
| 541 " */\n" |
| 542 "@java.lang.Deprecated\n" |
| 543 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" |
| 544 "get$capitalized_name$Value() {\n" |
| 545 " return get$capitalized_name$ValueMap();\n" |
| 546 "}\n"); |
| 547 WriteFieldDocComment(printer, descriptor_); |
| 548 printer->Print( |
| 549 variables_, |
| 550 "$deprecation$\n" |
| 551 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" |
| 552 "get$capitalized_name$ValueMap() {\n" |
| 553 " return internalGet$capitalized_name$().getMap();\n" |
| 554 "}\n"); |
| 555 WriteFieldDocComment(printer, descriptor_); |
| 556 printer->Print( |
| 557 variables_, |
| 558 "$deprecation$\n" |
| 559 "public $value_type$ get$capitalized_name$ValueOrDefault(\n" |
| 560 " $key_type$ key,\n" |
| 561 " $value_type$ defaultValue) {\n" |
| 562 " $key_null_check$\n" |
| 563 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n" |
| 564 " internalGet$capitalized_name$().getMap();\n" |
| 565 " return map.containsKey(key) ? map.get(key) : defaultValue;\n" |
| 566 "}\n"); |
| 567 WriteFieldDocComment(printer, descriptor_); |
| 568 printer->Print( |
| 569 variables_, |
| 570 "$deprecation$\n" |
| 571 "public $value_type$ get$capitalized_name$ValueOrThrow(\n" |
| 572 " $key_type$ key) {\n" |
| 573 " $key_null_check$\n" |
| 574 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n" |
| 575 " internalGet$capitalized_name$().getMap();\n" |
| 576 " if (!map.containsKey(key)) {\n" |
| 577 " throw new java.lang.IllegalArgumentException();\n" |
| 578 " }\n" |
| 579 " return map.get(key);\n" |
| 580 "}\n"); |
| 581 } |
| 582 } else { |
| 583 printer->Print( |
| 584 variables_, |
| 585 "/**\n" |
| 586 " * Use {@link #get$capitalized_name$Map()} instead.\n" |
| 587 " */\n" |
| 588 "@java.lang.Deprecated\n" |
| 589 "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n" |
| 590 " return get$capitalized_name$Map();\n" |
| 591 "}\n"); |
| 592 WriteFieldDocComment(printer, descriptor_); |
| 593 printer->Print( |
| 594 variables_, |
| 595 "$deprecation$\n" |
| 596 "public java.util.Map<$type_parameters$> get$capitalized_name$Map() {\n" |
| 597 " return internalGet$capitalized_name$().getMap();\n" |
| 598 "}\n"); |
| 599 WriteFieldDocComment(printer, descriptor_); |
| 600 printer->Print( |
| 601 variables_, |
| 602 "$deprecation$\n" |
| 603 "public $value_type$ get$capitalized_name$OrDefault(\n" |
| 604 " $key_type$ key,\n" |
| 605 " $value_type$ defaultValue) {\n" |
| 606 " $key_null_check$\n" |
| 607 " java.util.Map<$type_parameters$> map =\n" |
| 608 " internalGet$capitalized_name$().getMap();\n" |
| 609 " return map.containsKey(key) ? map.get(key) : defaultValue;\n" |
| 610 "}\n"); |
| 611 WriteFieldDocComment(printer, descriptor_); |
| 612 printer->Print( |
| 613 variables_, |
| 614 "$deprecation$\n" |
| 615 "public $value_type$ get$capitalized_name$OrThrow(\n" |
| 616 " $key_type$ key) {\n" |
| 617 " $key_null_check$\n" |
| 618 " java.util.Map<$type_parameters$> map =\n" |
| 619 " internalGet$capitalized_name$().getMap();\n" |
| 620 " if (!map.containsKey(key)) {\n" |
| 621 " throw new java.lang.IllegalArgumentException();\n" |
| 622 " }\n" |
| 623 " return map.get(key);\n" |
| 624 "}\n"); |
| 625 } |
| 626 } |
| 369 | 627 |
| 370 void ImmutableMapFieldGenerator:: | 628 void ImmutableMapFieldGenerator:: |
| 371 GenerateFieldBuilderInitializationCode(io::Printer* printer) const { | 629 GenerateFieldBuilderInitializationCode(io::Printer* printer) const { |
| 372 // Nothing to initialize. | 630 // Nothing to initialize. |
| 373 } | 631 } |
| 374 | 632 |
| 375 void ImmutableMapFieldGenerator:: | 633 void ImmutableMapFieldGenerator:: |
| 376 GenerateInitializationCode(io::Printer* printer) const { | 634 GenerateInitializationCode(io::Printer* printer) const { |
| 377 // Nothing to initialize. | 635 // Nothing to initialize. |
| 378 } | 636 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 398 variables_, | 656 variables_, |
| 399 "result.$name$_ = internalGet$capitalized_name$();\n" | 657 "result.$name$_ = internalGet$capitalized_name$();\n" |
| 400 "result.$name$_.makeImmutable();\n"); | 658 "result.$name$_.makeImmutable();\n"); |
| 401 } | 659 } |
| 402 | 660 |
| 403 void ImmutableMapFieldGenerator:: | 661 void ImmutableMapFieldGenerator:: |
| 404 GenerateParsingCode(io::Printer* printer) const { | 662 GenerateParsingCode(io::Printer* printer) const { |
| 405 printer->Print( | 663 printer->Print( |
| 406 variables_, | 664 variables_, |
| 407 "if (!$get_mutable_bit_parser$) {\n" | 665 "if (!$get_mutable_bit_parser$) {\n" |
| 408 " $name$_ = com.google.protobuf.MapField$lite$.newMapField(\n" | 666 " $name$_ = com.google.protobuf.MapField.newMapField(\n" |
| 409 " $map_field_parameter$);\n" | 667 " $map_field_parameter$);\n" |
| 410 " $set_mutable_bit_parser$;\n" | 668 " $set_mutable_bit_parser$;\n" |
| 411 "}\n"); | 669 "}\n"); |
| 412 if (!SupportUnknownEnumValue(descriptor_->file()) && | 670 if (!SupportUnknownEnumValue(descriptor_->file()) && |
| 413 GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { | 671 GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { |
| 414 printer->Print( | 672 printer->Print( |
| 415 variables_, | 673 variables_, |
| 416 "com.google.protobuf.ByteString bytes = input.readBytes();\n" | 674 "com.google.protobuf.ByteString bytes = input.readBytes();\n" |
| 417 "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" | 675 "com.google.protobuf.MapEntry<$type_parameters$>\n" |
| 418 "$name$ = $default_entry$.getParserForType().parseFrom(bytes);\n"); | 676 "$name$__ = $default_entry$.getParserForType().parseFrom(bytes);\n"); |
| 419 printer->Print( | 677 printer->Print( |
| 420 variables_, | 678 variables_, |
| 421 "if ($value_enum_type$.forNumber($name$.getValue()) == null) {\n" | 679 "if ($value_enum_type$.forNumber($name$__.getValue()) == null) {\n" |
| 422 " unknownFields.mergeLengthDelimitedField($number$, bytes);\n" | 680 " unknownFields.mergeLengthDelimitedField($number$, bytes);\n" |
| 423 "} else {\n" | 681 "} else {\n" |
| 424 " $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n" | 682 " $name$_.getMutableMap().put(\n" |
| 683 " $name$__.getKey(), $name$__.getValue());\n" |
| 425 "}\n"); | 684 "}\n"); |
| 426 } else { | 685 } else { |
| 427 printer->Print( | 686 printer->Print( |
| 428 variables_, | 687 variables_, |
| 429 "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" | 688 "com.google.protobuf.MapEntry<$type_parameters$>\n" |
| 430 "$name$ = input.readMessage(\n" | 689 "$name$__ = input.readMessage(\n" |
| 431 " $default_entry$.getParserForType(), extensionRegistry);\n" | 690 " $default_entry$.getParserForType(), extensionRegistry);\n" |
| 432 "$name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n"); | 691 "$name$_.getMutableMap().put(\n" |
| 692 " $name$__.getKey(), $name$__.getValue());\n"); |
| 433 } | 693 } |
| 434 } | 694 } |
| 435 | 695 |
| 436 void ImmutableMapFieldGenerator:: | 696 void ImmutableMapFieldGenerator:: |
| 437 GenerateParsingDoneCode(io::Printer* printer) const { | 697 GenerateParsingDoneCode(io::Printer* printer) const { |
| 438 // Nothing to do here. | 698 // Nothing to do here. |
| 439 } | 699 } |
| 440 | 700 |
| 441 void ImmutableMapFieldGenerator:: | 701 void ImmutableMapFieldGenerator:: |
| 442 GenerateSerializationCode(io::Printer* printer) const { | 702 GenerateSerializationCode(io::Printer* printer) const { |
| 443 printer->Print( | 703 printer->Print( |
| 444 variables_, | 704 variables_, |
| 445 "for (java.util.Map.Entry<$type_parameters$> entry\n" | 705 "com.google.protobuf.GeneratedMessage$ver$\n" |
| 446 " : internalGet$capitalized_name$().getMap().entrySet()) {\n" | 706 " .serialize$short_key_type$MapTo(\n" |
| 447 " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" | 707 " output,\n" |
| 448 " $name$ = $default_entry$.newBuilderForType()\n" | 708 " internalGet$capitalized_name$(),\n" |
| 449 " .setKey(entry.getKey())\n" | 709 " $default_entry$,\n" |
| 450 " .setValue(entry.getValue())\n" | 710 " $number$);\n"); |
| 451 " .build();\n" | |
| 452 " output.writeMessage($number$, $name$);\n" | |
| 453 "}\n"); | |
| 454 } | 711 } |
| 455 | 712 |
| 456 void ImmutableMapFieldGenerator:: | 713 void ImmutableMapFieldGenerator:: |
| 457 GenerateSerializedSizeCode(io::Printer* printer) const { | 714 GenerateSerializedSizeCode(io::Printer* printer) const { |
| 458 printer->Print( | 715 printer->Print( |
| 459 variables_, | 716 variables_, |
| 460 "for (java.util.Map.Entry<$type_parameters$> entry\n" | 717 "for (java.util.Map.Entry<$type_parameters$> entry\n" |
| 461 " : internalGet$capitalized_name$().getMap().entrySet()) {\n" | 718 " : internalGet$capitalized_name$().getMap().entrySet()) {\n" |
| 462 " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" | 719 " com.google.protobuf.MapEntry<$type_parameters$>\n" |
| 463 " $name$ = $default_entry$.newBuilderForType()\n" | 720 " $name$__ = $default_entry$.newBuilderForType()\n" |
| 464 " .setKey(entry.getKey())\n" | 721 " .setKey(entry.getKey())\n" |
| 465 " .setValue(entry.getValue())\n" | 722 " .setValue(entry.getValue())\n" |
| 466 " .build();\n" | 723 " .build();\n" |
| 467 " size += com.google.protobuf.CodedOutputStream\n" | 724 " size += com.google.protobuf.CodedOutputStream\n" |
| 468 " .computeMessageSize($number$, $name$);\n" | 725 " .computeMessageSize($number$, $name$__);\n" |
| 469 "}\n"); | 726 "}\n"); |
| 470 } | 727 } |
| 471 | 728 |
| 472 void ImmutableMapFieldGenerator:: | 729 void ImmutableMapFieldGenerator:: |
| 473 GenerateEqualsCode(io::Printer* printer) const { | 730 GenerateEqualsCode(io::Printer* printer) const { |
| 474 printer->Print( | 731 printer->Print( |
| 475 variables_, | 732 variables_, |
| 476 "result = result && internalGet$capitalized_name$().equals(\n" | 733 "result = result && internalGet$capitalized_name$().equals(\n" |
| 477 " other.internalGet$capitalized_name$());\n"); | 734 " other.internalGet$capitalized_name$());\n"); |
| 478 } | 735 } |
| 479 | 736 |
| 480 void ImmutableMapFieldGenerator:: | 737 void ImmutableMapFieldGenerator:: |
| 481 GenerateHashCode(io::Printer* printer) const { | 738 GenerateHashCode(io::Printer* printer) const { |
| 482 printer->Print( | 739 printer->Print( |
| 483 variables_, | 740 variables_, |
| 484 "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n" | 741 "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n" |
| 485 " hash = (37 * hash) + $constant_name$;\n" | 742 " hash = (37 * hash) + $constant_name$;\n" |
| 486 " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n" | 743 " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n" |
| 487 "}\n"); | 744 "}\n"); |
| 488 } | 745 } |
| 489 | 746 |
| 490 string ImmutableMapFieldGenerator::GetBoxedType() const { | 747 string ImmutableMapFieldGenerator::GetBoxedType() const { |
| 491 return name_resolver_->GetImmutableClassName(descriptor_->message_type()); | 748 return name_resolver_->GetImmutableClassName(descriptor_->message_type()); |
| 492 } | 749 } |
| 493 | 750 |
| 494 } // namespace java | 751 } // namespace java |
| 495 } // namespace compiler | 752 } // namespace compiler |
| 496 } // namespace protobuf | 753 } // namespace protobuf |
| 497 } // namespace google | 754 } // namespace google |
| OLD | NEW |