Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698