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

Side by Side Diff: third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.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 85
86 ClassNameResolver* name_resolver = context->GetNameResolver(); 86 ClassNameResolver* name_resolver = context->GetNameResolver();
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 (*variables)["boxed_key_type"] = TypeName(key, name_resolver, true);
93 (*variables)["key_wire_type"] = WireType(key); 96 (*variables)["key_wire_type"] = WireType(key);
94 (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver); 97 (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver);
98 (*variables)["key_null_check"] = IsReferenceType(keyJavaType) ?
99 "if (key == null) { throw new java.lang.NullPointerException(); }" : "";
100 (*variables)["value_null_check"] = IsReferenceType(valueJavaType) ?
101 "if (value == null) { throw new java.lang.NullPointerException(); }" : "";
102
95 if (GetJavaType(value) == JAVATYPE_ENUM) { 103 if (GetJavaType(value) == JAVATYPE_ENUM) {
96 // We store enums as Integers internally. 104 // We store enums as Integers internally.
97 (*variables)["value_type"] = "int"; 105 (*variables)["value_type"] = "int";
98 (*variables)["boxed_value_type"] = "java.lang.Integer"; 106 (*variables)["boxed_value_type"] = "java.lang.Integer";
99 (*variables)["value_wire_type"] = WireType(value); 107 (*variables)["value_wire_type"] = WireType(value);
100 (*variables)["value_default_value"] = 108 (*variables)["value_default_value"] =
101 DefaultValue(value, true, name_resolver) + ".getNumber()"; 109 DefaultValue(value, true, name_resolver) + ".getNumber()";
102 110
103 (*variables)["value_enum_type"] = TypeName(value, name_resolver, false); 111 (*variables)["value_enum_type"] = TypeName(value, name_resolver, false);
104 112
(...skipping 15 matching lines...) Expand all
120 } 128 }
121 (*variables)["type_parameters"] = 129 (*variables)["type_parameters"] =
122 (*variables)["boxed_key_type"] + ", " + (*variables)["boxed_value_type"]; 130 (*variables)["boxed_key_type"] + ", " + (*variables)["boxed_value_type"];
123 // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported 131 // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
124 // by the proto compiler 132 // by the proto compiler
125 (*variables)["deprecation"] = descriptor->options().deprecated() 133 (*variables)["deprecation"] = descriptor->options().deprecated()
126 ? "@java.lang.Deprecated " : ""; 134 ? "@java.lang.Deprecated " : "";
127 135
128 (*variables)["default_entry"] = (*variables)["capitalized_name"] + 136 (*variables)["default_entry"] = (*variables)["capitalized_name"] +
129 "DefaultEntryHolder.defaultEntry"; 137 "DefaultEntryHolder.defaultEntry";
130 (*variables)["lite"] = "Lite";
131 (*variables)["descriptor"] = "";
132 } 138 }
133 139
134 } // namespace 140 } // namespace
135 141
136 ImmutableMapFieldLiteGenerator:: 142 ImmutableMapFieldLiteGenerator::
137 ImmutableMapFieldLiteGenerator(const FieldDescriptor* descriptor, 143 ImmutableMapFieldLiteGenerator(const FieldDescriptor* descriptor,
138 int messageBitIndex, 144 int messageBitIndex,
139 int builderBitIndex, 145 int builderBitIndex,
140 Context* context) 146 Context* context)
141 : descriptor_(descriptor), name_resolver_(context->GetNameResolver()) { 147 : descriptor_(descriptor), name_resolver_(context->GetNameResolver()) {
142 SetMessageVariables(descriptor, messageBitIndex, builderBitIndex, 148 SetMessageVariables(descriptor, messageBitIndex, builderBitIndex,
143 context->GetFieldGeneratorInfo(descriptor), 149 context->GetFieldGeneratorInfo(descriptor),
144 context, &variables_); 150 context, &variables_);
145 } 151 }
146 152
147 ImmutableMapFieldLiteGenerator:: 153 ImmutableMapFieldLiteGenerator::
148 ~ImmutableMapFieldLiteGenerator() {} 154 ~ImmutableMapFieldLiteGenerator() {}
149 155
150 int ImmutableMapFieldLiteGenerator::GetNumBitsForMessage() const { 156 int ImmutableMapFieldLiteGenerator::GetNumBitsForMessage() const {
151 return 0; 157 return 0;
152 } 158 }
153 159
154 int ImmutableMapFieldLiteGenerator::GetNumBitsForBuilder() const { 160 int ImmutableMapFieldLiteGenerator::GetNumBitsForBuilder() const {
155 return 0; 161 return 0;
156 } 162 }
157 163
158 void ImmutableMapFieldLiteGenerator:: 164 void ImmutableMapFieldLiteGenerator::
159 GenerateInterfaceMembers(io::Printer* printer) const { 165 GenerateInterfaceMembers(io::Printer* printer) const {
166 WriteFieldDocComment(printer, descriptor_);
167 printer->Print(
168 variables_,
169 "$deprecation$int get$capitalized_name$Count();\n");
170 WriteFieldDocComment(printer, descriptor_);
171 printer->Print(
172 variables_,
173 "$deprecation$boolean contains$capitalized_name$(\n"
174 " $key_type$ key);\n");
160 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 175 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
176 printer->Print(
177 variables_,
178 "/**\n"
179 " * Use {@link #get$capitalized_name$Map()} instead.\n"
180 " */\n"
181 "@java.lang.Deprecated\n"
182 "java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
183 "get$capitalized_name$();\n");
161 WriteFieldDocComment(printer, descriptor_); 184 WriteFieldDocComment(printer, descriptor_);
162 printer->Print( 185 printer->Print(
163 variables_, 186 variables_,
164 "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n" 187 "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
165 "get$capitalized_name$();\n"); 188 "get$capitalized_name$Map();\n");
189 WriteFieldDocComment(printer, descriptor_);
190 printer->Print(
191 variables_,
192 "$deprecation$$value_enum_type$ get$capitalized_name$OrDefault(\n"
193 " $key_type$ key,\n"
194 " $value_enum_type$ defaultValue);\n");
195 WriteFieldDocComment(printer, descriptor_);
196 printer->Print(
197 variables_,
198 "$deprecation$$value_enum_type$ get$capitalized_name$OrThrow(\n"
199 " $key_type$ key);\n");
166 if (SupportUnknownEnumValue(descriptor_->file())) { 200 if (SupportUnknownEnumValue(descriptor_->file())) {
201 printer->Print(
202 variables_,
203 "/**\n"
204 " * Use {@link #get$capitalized_name$ValueMap()} instead.\n"
205 " */\n"
206 "@java.lang.Deprecated\n"
207 "java.util.Map<$type_parameters$>\n"
208 "get$capitalized_name$Value();\n");
167 WriteFieldDocComment(printer, descriptor_); 209 WriteFieldDocComment(printer, descriptor_);
168 printer->Print( 210 printer->Print(
169 variables_, 211 variables_,
170 "$deprecation$java.util.Map<$type_parameters$>\n" 212 "$deprecation$java.util.Map<$type_parameters$>\n"
171 "get$capitalized_name$Value();\n"); 213 "get$capitalized_name$ValueMap();\n");
214 WriteFieldDocComment(printer, descriptor_);
215 printer->Print(
216 variables_,
217 "$deprecation$\n"
218 "$value_type$ get$capitalized_name$ValueOrDefault(\n"
219 " $key_type$ key,\n"
220 " $value_type$ defaultValue);\n");
221 WriteFieldDocComment(printer, descriptor_);
222 printer->Print(
223 variables_,
224 "$deprecation$\n"
225 "$value_type$ get$capitalized_name$ValueOrThrow(\n"
226 " $key_type$ key);\n");
172 } 227 }
173 } else { 228 } else {
229 printer->Print(
230 variables_,
231 "/**\n"
232 " * Use {@link #get$capitalized_name$Map()} instead.\n"
233 " */\n"
234 "@java.lang.Deprecated\n"
235 "java.util.Map<$type_parameters$>\n"
236 "get$capitalized_name$();\n");
174 WriteFieldDocComment(printer, descriptor_); 237 WriteFieldDocComment(printer, descriptor_);
175 printer->Print( 238 printer->Print(
176 variables_, 239 variables_,
177 "$deprecation$java.util.Map<$type_parameters$>\n" 240 "$deprecation$java.util.Map<$type_parameters$>\n"
178 "get$capitalized_name$();\n"); 241 "get$capitalized_name$Map();\n");
242 WriteFieldDocComment(printer, descriptor_);
243 printer->Print(
244 variables_,
245 "$deprecation$\n"
246 "$value_type$ get$capitalized_name$OrDefault(\n"
247 " $key_type$ key,\n"
248 " $value_type$ defaultValue);\n");
249 WriteFieldDocComment(printer, descriptor_);
250 printer->Print(
251 variables_,
252 "$deprecation$\n"
253 "$value_type$ get$capitalized_name$OrThrow(\n"
254 " $key_type$ key);\n");
179 } 255 }
180 } 256 }
181 257
182 void ImmutableMapFieldLiteGenerator:: 258 void ImmutableMapFieldLiteGenerator::
183 GenerateMembers(io::Printer* printer) const { 259 GenerateMembers(io::Printer* printer) const {
184 printer->Print( 260 printer->Print(
185 variables_, 261 variables_,
186 "private static final class $capitalized_name$DefaultEntryHolder {\n" 262 "private static final class $capitalized_name$DefaultEntryHolder {\n"
187 " static final com.google.protobuf.MapEntry$lite$<\n" 263 " static final com.google.protobuf.MapEntryLite<\n"
188 " $type_parameters$> defaultEntry =\n" 264 " $type_parameters$> defaultEntry =\n"
189 " com.google.protobuf.MapEntry$lite$\n" 265 " com.google.protobuf.MapEntryLite\n"
190 " .<$type_parameters$>newDefaultInstance(\n" 266 " .<$type_parameters$>newDefaultInstance(\n"
191 " $descriptor$\n"
192 " $key_wire_type$,\n" 267 " $key_wire_type$,\n"
193 " $key_default_value$,\n" 268 " $key_default_value$,\n"
194 " $value_wire_type$,\n" 269 " $value_wire_type$,\n"
195 " $value_default_value$);\n" 270 " $value_default_value$);\n"
196 "}\n"); 271 "}\n");
197 printer->Print( 272 printer->Print(
198 variables_, 273 variables_,
199 "private com.google.protobuf.MapField$lite$<\n" 274 "private com.google.protobuf.MapFieldLite<\n"
200 " $type_parameters$> $name$_ =\n" 275 " $type_parameters$> $name$_ =\n"
201 " com.google.protobuf.MapField$lite$.emptyMapField();\n" 276 " com.google.protobuf.MapFieldLite.emptyMapField();\n"
202 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n" 277 "private com.google.protobuf.MapFieldLite<$type_parameters$>\n"
203 "internalGet$capitalized_name$() {\n" 278 "internalGet$capitalized_name$() {\n"
204 " return $name$_;\n" 279 " return $name$_;\n"
205 "}\n" 280 "}\n"
206 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n" 281 "private com.google.protobuf.MapFieldLite<$type_parameters$>\n"
207 "internalGetMutable$capitalized_name$() {\n" 282 "internalGetMutable$capitalized_name$() {\n"
208 " if (!$name$_.isMutable()) {\n" 283 " if (!$name$_.isMutable()) {\n"
209 " $name$_ = $name$_.copy();\n" 284 " $name$_ = $name$_.mutableCopy();\n"
210 " }\n" 285 " }\n"
211 " return $name$_;\n" 286 " return $name$_;\n"
212 "}\n"); 287 "}\n");
288 printer->Print(
289 variables_,
290 "$deprecation$\n"
291 "public int get$capitalized_name$Count() {\n"
292 " return internalGet$capitalized_name$().size();\n"
293 "}\n");
294 WriteFieldDocComment(printer, descriptor_);
295 printer->Print(
296 variables_,
297 "$deprecation$\n"
298 "public boolean contains$capitalized_name$(\n"
299 " $key_type$ key) {\n"
300 " $key_null_check$\n"
301 " return internalGet$capitalized_name$().containsKey(key);\n"
302 "}\n");
213 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 303 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
214 printer->Print( 304 printer->Print(
215 variables_, 305 variables_,
216 "private static final\n" 306 "private static final\n"
217 "com.google.protobuf.Internal.MapAdapter.Converter<\n" 307 "com.google.protobuf.Internal.MapAdapter.Converter<\n"
218 " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n" 308 " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n"
219 " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n" 309 " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n"
220 " $value_enum_type$.internalGetValueMap(),\n" 310 " $value_enum_type$.internalGetValueMap(),\n"
221 " $unrecognized_value$);\n"); 311 " $unrecognized_value$);\n");
312 printer->Print(
313 variables_,
314 "/**\n"
315 " * Use {@link #get$capitalized_name$Map()} instead.\n"
316 " */\n"
317 "@java.lang.Deprecated\n"
318 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
319 "get$capitalized_name$() {\n"
320 " return get$capitalized_name$Map();\n"
321 "}\n");
322 WriteFieldDocComment(printer, descriptor_);
323 printer->Print(
324 variables_,
325 "$deprecation$\n"
326 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
327 "get$capitalized_name$Map() {\n"
328 " return java.util.Collections.unmodifiableMap(\n"
329 " new com.google.protobuf.Internal.MapAdapter<\n"
330 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
331 " internalGet$capitalized_name$(),\n"
332 " $name$ValueConverter));\n"
333 "}\n");
334 WriteFieldDocComment(printer, descriptor_);
335 printer->Print(
336 variables_,
337 "$deprecation$\n"
338 "public $value_enum_type$ get$capitalized_name$OrDefault(\n"
339 " $key_type$ key,\n"
340 " $value_enum_type$ defaultValue) {\n"
341 " $key_null_check$\n"
342 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
343 " internalGet$capitalized_name$();\n"
344 " return map.containsKey(key)\n"
345 " ? $name$ValueConverter.doForward(map.get(key))\n"
346 " : defaultValue;\n"
347 "}\n");
348 WriteFieldDocComment(printer, descriptor_);
349 printer->Print(
350 variables_,
351 "$deprecation$\n"
352 "public $value_enum_type$ get$capitalized_name$OrThrow(\n"
353 " $key_type$ key) {\n"
354 " $key_null_check$\n"
355 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
356 " internalGet$capitalized_name$();\n"
357 " if (!map.containsKey(key)) {\n"
358 " throw new java.lang.IllegalArgumentException();\n"
359 " }\n"
360 " return $name$ValueConverter.doForward(map.get(key));\n"
361 "}\n");
222 if (SupportUnknownEnumValue(descriptor_->file())) { 362 if (SupportUnknownEnumValue(descriptor_->file())) {
363 printer->Print(
364 variables_,
365 "/**\n"
366 " * Use {@link #get$capitalized_name$ValueMap()} instead.\n"
367 " */\n"
368 "@java.lang.Deprecated\n"
369 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
370 "get$capitalized_name$Value() {\n"
371 " return get$capitalized_name$ValueMap();\n"
372 "}\n");
223 WriteFieldDocComment(printer, descriptor_); 373 WriteFieldDocComment(printer, descriptor_);
224 printer->Print( 374 printer->Print(
225 variables_, 375 variables_,
226 "$deprecation$\n" 376 "$deprecation$\n"
227 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" 377 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
228 "get$capitalized_name$Value() {\n" 378 "get$capitalized_name$ValueMap() {\n"
229 " return internalGet$capitalized_name$().getMap();\n" 379 " return java.util.Collections.unmodifiableMap(\n"
380 " internalGet$capitalized_name$());\n"
381 "}\n");
382 WriteFieldDocComment(printer, descriptor_);
383 printer->Print(
384 variables_,
385 "$deprecation$\n"
386 "public $value_type$ get$capitalized_name$ValueOrDefault(\n"
387 " $key_type$ key,\n"
388 " $value_type$ defaultValue) {\n"
389 " $key_null_check$\n"
390 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
391 " internalGet$capitalized_name$();\n"
392 " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
393 "}\n");
394 WriteFieldDocComment(printer, descriptor_);
395 printer->Print(
396 variables_,
397 "$deprecation$\n"
398 "public $value_type$ get$capitalized_name$ValueOrThrow(\n"
399 " $key_type$ key) {\n"
400 " $key_null_check$\n"
401 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
402 " internalGet$capitalized_name$();\n"
403 " if (!map.containsKey(key)) {\n"
404 " throw new java.lang.IllegalArgumentException();\n"
405 " }\n"
406 " return map.get(key);\n"
230 "}\n"); 407 "}\n");
231 } 408 }
409 } else {
410 printer->Print(
411 variables_,
412 "/**\n"
413 " * Use {@link #get$capitalized_name$Map()} instead.\n"
414 " */\n"
415 "@java.lang.Deprecated\n"
416 "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n"
417 " return get$capitalized_name$Map();\n"
418 "}\n");
232 WriteFieldDocComment(printer, descriptor_); 419 WriteFieldDocComment(printer, descriptor_);
233 printer->Print( 420 printer->Print(
234 variables_, 421 variables_,
235 "$deprecation$\n" 422 "$deprecation$\n"
236 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" 423 "public java.util.Map<$type_parameters$> get$capitalized_name$Map() {\n"
237 "get$capitalized_name$() {\n" 424 " return java.util.Collections.unmodifiableMap(\n"
238 " return new com.google.protobuf.Internal.MapAdapter<\n" 425 " internalGet$capitalized_name$());\n"
239 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
240 " internalGet$capitalized_name$().getMap(),\n"
241 " $name$ValueConverter);\n"
242 "}\n"); 426 "}\n");
243 } else {
244 WriteFieldDocComment(printer, descriptor_); 427 WriteFieldDocComment(printer, descriptor_);
245 printer->Print( 428 printer->Print(
246 variables_, 429 variables_,
247 "$deprecation$\n" 430 "$deprecation$\n"
248 "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n" 431 "public $value_type$ get$capitalized_name$OrDefault(\n"
249 " return internalGet$capitalized_name$().getMap();\n" 432 " $key_type$ key,\n"
433 " $value_type$ defaultValue) {\n"
434 " $key_null_check$\n"
435 " java.util.Map<$type_parameters$> map =\n"
436 " internalGet$capitalized_name$();\n"
437 " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
438 "}\n");
439 WriteFieldDocComment(printer, descriptor_);
440 printer->Print(
441 variables_,
442 "$deprecation$\n"
443 "public $value_type$ get$capitalized_name$OrThrow(\n"
444 " $key_type$ key) {\n"
445 " $key_null_check$\n"
446 " java.util.Map<$type_parameters$> map =\n"
447 " internalGet$capitalized_name$();\n"
448 " if (!map.containsKey(key)) {\n"
449 " throw new java.lang.IllegalArgumentException();\n"
450 " }\n"
451 " return map.get(key);\n"
250 "}\n"); 452 "}\n");
251 } 453 }
252 454
253 // Generate private setters for the builder to proxy into. 455 // Generate private setters for the builder to proxy into.
254 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 456 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
255 WriteFieldDocComment(printer, descriptor_); 457 WriteFieldDocComment(printer, descriptor_);
256 printer->Print( 458 printer->Print(
257 variables_, 459 variables_,
258 "private java.util.Map<$boxed_key_type$, $value_enum_type$>\n" 460 "private java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
259 "getMutable$capitalized_name$() {\n" 461 "getMutable$capitalized_name$Map() {\n"
260 " return new com.google.protobuf.Internal.MapAdapter<\n" 462 " return new com.google.protobuf.Internal.MapAdapter<\n"
261 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n" 463 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
262 " internalGetMutable$capitalized_name$().getMutableMap(),\n" 464 " internalGetMutable$capitalized_name$(),\n"
263 " $name$ValueConverter);\n" 465 " $name$ValueConverter);\n"
264 "}\n"); 466 "}\n");
265 if (SupportUnknownEnumValue(descriptor_->file())) { 467 if (SupportUnknownEnumValue(descriptor_->file())) {
266 WriteFieldDocComment(printer, descriptor_); 468 WriteFieldDocComment(printer, descriptor_);
267 printer->Print( 469 printer->Print(
268 variables_, 470 variables_,
269 "private java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" 471 "private java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
270 "getMutable$capitalized_name$Value() {\n" 472 "getMutable$capitalized_name$ValueMap() {\n"
271 " return internalGetMutable$capitalized_name$().getMutableMap();\n" 473 " return internalGetMutable$capitalized_name$();\n"
272 "}\n"); 474 "}\n");
273 } 475 }
274 } else { 476 } else {
275 WriteFieldDocComment(printer, descriptor_); 477 WriteFieldDocComment(printer, descriptor_);
276 printer->Print( 478 printer->Print(
277 variables_, 479 variables_,
278 "private java.util.Map<$type_parameters$>\n" 480 "private java.util.Map<$type_parameters$>\n"
279 "getMutable$capitalized_name$() {\n" 481 "getMutable$capitalized_name$Map() {\n"
280 " return internalGetMutable$capitalized_name$().getMutableMap();\n" 482 " return internalGetMutable$capitalized_name$();\n"
281 "}\n"); 483 "}\n");
282 } 484 }
283 } 485 }
284 486
285 void ImmutableMapFieldLiteGenerator:: 487 void ImmutableMapFieldLiteGenerator::
286 GenerateBuilderMembers(io::Printer* printer) const { 488 GenerateBuilderMembers(io::Printer* printer) const {
489 printer->Print(
490 variables_,
491 "$deprecation$\n"
492 "public int get$capitalized_name$Count() {\n"
493 " return instance.get$capitalized_name$Map().size();\n"
494 "}\n");
495 WriteFieldDocComment(printer, descriptor_);
496 printer->Print(
497 variables_,
498 "$deprecation$\n"
499 "public boolean contains$capitalized_name$(\n"
500 " $key_type$ key) {\n"
501 " $key_null_check$\n"
502 " return instance.get$capitalized_name$Map().containsKey(key);\n"
503 "}\n");
504 printer->Print(
505 variables_,
506 "$deprecation$\n"
507 "public Builder clear$capitalized_name$() {\n"
508 " copyOnWrite();\n"
509 " instance.getMutable$capitalized_name$Map().clear();\n"
510 " return this;\n"
511 "}\n");
512 WriteFieldDocComment(printer, descriptor_);
513 printer->Print(
514 variables_,
515 "$deprecation$\n"
516 "public Builder remove$capitalized_name$(\n"
517 " $key_type$ key) {\n"
518 " $key_null_check$\n"
519 " copyOnWrite();\n"
520 " instance.getMutable$capitalized_name$Map().remove(key);\n"
521 " return this;\n"
522 "}\n");
287 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 523 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
288 WriteFieldDocComment(printer, descriptor_); 524 printer->Print(
289 printer->Print( 525 variables_,
290 variables_, 526 "/**\n"
291 "$deprecation$\n" 527 " * Use {@link #get$capitalized_name$Map()} instead.\n"
528 " */\n"
529 "@java.lang.Deprecated\n"
292 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" 530 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
293 "get$capitalized_name$() {\n" 531 "get$capitalized_name$() {\n"
294 " return instance.get$capitalized_name$();\n" 532 " return get$capitalized_name$Map();\n"
295 "}\n"); 533 "}\n");
296 WriteFieldDocComment(printer, descriptor_); 534 WriteFieldDocComment(printer, descriptor_);
297 printer->Print( 535 printer->Print(
298 variables_, 536 variables_,
299 "$deprecation$\n" 537 "$deprecation$\n"
300 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" 538 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
301 "getMutable$capitalized_name$() {\n" 539 "get$capitalized_name$Map() {\n"
302 " copyOnWrite();\n" 540 " return java.util.Collections.unmodifiableMap(\n"
303 " return instance.getMutable$capitalized_name$();\n" 541 " instance.get$capitalized_name$Map());\n"
542 "}\n");
543 WriteFieldDocComment(printer, descriptor_);
544 printer->Print(
545 variables_,
546 "$deprecation$\n"
547 "public $value_enum_type$ get$capitalized_name$OrDefault(\n"
548 " $key_type$ key,\n"
549 " $value_enum_type$ defaultValue) {\n"
550 " $key_null_check$\n"
551 " java.util.Map<$boxed_key_type$, $value_enum_type$> map =\n"
552 " instance.get$capitalized_name$Map();\n"
553 " return map.containsKey(key)\n"
554 " ? map.get(key)\n"
555 " : defaultValue;\n"
556 "}\n");
557 WriteFieldDocComment(printer, descriptor_);
558 printer->Print(
559 variables_,
560 "$deprecation$\n"
561 "public $value_enum_type$ get$capitalized_name$OrThrow(\n"
562 " $key_type$ key) {\n"
563 " $key_null_check$\n"
564 " java.util.Map<$boxed_key_type$, $value_enum_type$> map =\n"
565 " instance.get$capitalized_name$Map();\n"
566 " if (!map.containsKey(key)) {\n"
567 " throw new java.lang.IllegalArgumentException();\n"
568 " }\n"
569 " return map.get(key);\n"
570 "}\n");
571 WriteFieldDocComment(printer, descriptor_);
572 printer->Print(
573 variables_,
574 "$deprecation$public Builder put$capitalized_name$(\n"
575 " $key_type$ key,\n"
576 " $value_enum_type$ value) {\n"
577 " $key_null_check$\n"
578 " $value_null_check$\n"
579 " copyOnWrite();\n"
580 " instance.getMutable$capitalized_name$Map().put(key, value);\n"
581 " return this;\n"
304 "}\n"); 582 "}\n");
305 WriteFieldDocComment(printer, descriptor_); 583 WriteFieldDocComment(printer, descriptor_);
306 printer->Print( 584 printer->Print(
307 variables_, 585 variables_,
308 "$deprecation$public Builder putAll$capitalized_name$(\n" 586 "$deprecation$public Builder putAll$capitalized_name$(\n"
309 " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n" 587 " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n"
310 " getMutable$capitalized_name$().putAll(values);\n" 588 " copyOnWrite();\n"
589 " instance.getMutable$capitalized_name$Map().putAll(values);\n"
311 " return this;\n" 590 " return this;\n"
312 "}\n"); 591 "}\n");
313 if (SupportUnknownEnumValue(descriptor_->file())) { 592 if (SupportUnknownEnumValue(descriptor_->file())) {
593 printer->Print(
594 variables_,
595 "/**\n"
596 " * Use {@link #get$capitalized_name$ValueMap()} instead.\n"
597 " */\n"
598 "@java.lang.Deprecated\n"
599 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
600 "get$capitalized_name$Value() {\n"
601 " return get$capitalized_name$ValueMap();\n"
602 "}\n");
314 WriteFieldDocComment(printer, descriptor_); 603 WriteFieldDocComment(printer, descriptor_);
315 printer->Print( 604 printer->Print(
316 variables_, 605 variables_,
317 "$deprecation$\n" 606 "$deprecation$\n"
318 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" 607 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
319 "get$capitalized_name$Value() {\n" 608 "get$capitalized_name$ValueMap() {\n"
320 " return instance.get$capitalized_name$Value();\n" 609 " return java.util.Collections.unmodifiableMap(\n"
610 " instance.get$capitalized_name$ValueMap());\n"
321 "}\n"); 611 "}\n");
322 WriteFieldDocComment(printer, descriptor_); 612 WriteFieldDocComment(printer, descriptor_);
323 printer->Print( 613 printer->Print(
324 variables_, 614 variables_,
325 "$deprecation$\n" 615 "$deprecation$\n"
326 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" 616 "public $value_type$ get$capitalized_name$ValueOrDefault(\n"
327 "getMutable$capitalized_name$Value() {\n" 617 " $key_type$ key,\n"
618 " $value_type$ defaultValue) {\n"
619 " $key_null_check$\n"
620 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
621 " instance.get$capitalized_name$ValueMap();\n"
622 " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
623 "}\n");
624 WriteFieldDocComment(printer, descriptor_);
625 printer->Print(
626 variables_,
627 "$deprecation$\n"
628 "public $value_type$ get$capitalized_name$ValueOrThrow(\n"
629 " $key_type$ key) {\n"
630 " $key_null_check$\n"
631 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map =\n"
632 " instance.get$capitalized_name$ValueMap();\n"
633 " if (!map.containsKey(key)) {\n"
634 " throw new java.lang.IllegalArgumentException();\n"
635 " }\n"
636 " return map.get(key);\n"
637 "}\n");
638 WriteFieldDocComment(printer, descriptor_);
639 printer->Print(
640 variables_,
641 "$deprecation$public Builder put$capitalized_name$Value(\n"
642 " $key_type$ key,\n"
643 " $value_type$ value) {\n"
644 " $key_null_check$\n"
645 " if ($value_enum_type$.forNumber(value) == null) {\n"
646 " throw new java.lang.IllegalArgumentException();\n"
647 " }\n"
328 " copyOnWrite();\n" 648 " copyOnWrite();\n"
329 " return instance.getMutable$capitalized_name$Value();\n" 649 " instance.getMutable$capitalized_name$ValueMap().put(key, value);\n"
650 " return this;\n"
330 "}\n"); 651 "}\n");
331 WriteFieldDocComment(printer, descriptor_); 652 WriteFieldDocComment(printer, descriptor_);
332 printer->Print( 653 printer->Print(
333 variables_, 654 variables_,
334 "$deprecation$public Builder putAll$capitalized_name$Value(\n" 655 "$deprecation$public Builder putAll$capitalized_name$Value(\n"
335 " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n" 656 " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n"
336 " getMutable$capitalized_name$Value().putAll(values);\n" 657 " copyOnWrite();\n"
658 " instance.getMutable$capitalized_name$ValueMap().putAll(values);\n"
337 " return this;\n" 659 " return this;\n"
338 "}\n"); 660 "}\n");
339 } 661 }
340 } else { 662 } else {
341 WriteFieldDocComment(printer, descriptor_); 663 printer->Print(
342 printer->Print( 664 variables_,
343 variables_, 665 "/**\n"
666 " * Use {@link #get$capitalized_name$Map()} instead.\n"
667 " */\n"
668 "@java.lang.Deprecated\n"
344 "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n" 669 "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n"
345 " return instance.get$capitalized_name$();\n" 670 " return get$capitalized_name$Map();\n"
346 "}\n"); 671 "}\n");
347 WriteFieldDocComment(printer, descriptor_); 672 WriteFieldDocComment(printer, descriptor_);
348 printer->Print( 673 printer->Print(
349 variables_, 674 variables_,
350 "public java.util.Map<$type_parameters$>\n" 675 "$deprecation$"
351 "getMutable$capitalized_name$() {\n" 676 "public java.util.Map<$type_parameters$> get$capitalized_name$Map() {\n"
352 " copyOnWrite();\n" 677 " return java.util.Collections.unmodifiableMap(\n"
353 " return instance.getMutable$capitalized_name$();\n" 678 " instance.get$capitalized_name$Map());\n"
354 "}\n"); 679 "}\n");
355 WriteFieldDocComment(printer, descriptor_); 680 WriteFieldDocComment(printer, descriptor_);
356 printer->Print( 681 printer->Print(
357 variables_, 682 variables_,
683 "$deprecation$\n"
684 "public $value_type$ get$capitalized_name$OrDefault(\n"
685 " $key_type$ key,\n"
686 " $value_type$ defaultValue) {\n"
687 " $key_null_check$\n"
688 " java.util.Map<$type_parameters$> map =\n"
689 " instance.get$capitalized_name$Map();\n"
690 " return map.containsKey(key) ? map.get(key) : defaultValue;\n"
691 "}\n");
692 WriteFieldDocComment(printer, descriptor_);
693 printer->Print(
694 variables_,
695 "$deprecation$\n"
696 "public $value_type$ get$capitalized_name$OrThrow(\n"
697 " $key_type$ key) {\n"
698 " $key_null_check$\n"
699 " java.util.Map<$type_parameters$> map =\n"
700 " instance.get$capitalized_name$Map();\n"
701 " if (!map.containsKey(key)) {\n"
702 " throw new java.lang.IllegalArgumentException();\n"
703 " }\n"
704 " return map.get(key);\n"
705 "}\n");
706 WriteFieldDocComment(printer, descriptor_);
707 printer->Print(
708 variables_,
709 "$deprecation$"
710 "public Builder put$capitalized_name$(\n"
711 " $key_type$ key,\n"
712 " $value_type$ value) {\n"
713 " $key_null_check$\n"
714 " $value_null_check$\n"
715 " copyOnWrite();\n"
716 " instance.getMutable$capitalized_name$Map().put(key, value);\n"
717 " return this;\n"
718 "}\n");
719 WriteFieldDocComment(printer, descriptor_);
720 printer->Print(
721 variables_,
722 "$deprecation$"
358 "public Builder putAll$capitalized_name$(\n" 723 "public Builder putAll$capitalized_name$(\n"
359 " java.util.Map<$type_parameters$> values) {\n" 724 " java.util.Map<$type_parameters$> values) {\n"
360 " getMutable$capitalized_name$().putAll(values);\n" 725 " copyOnWrite();\n"
726 " instance.getMutable$capitalized_name$Map().putAll(values);\n"
361 " return this;\n" 727 " return this;\n"
362 "}\n"); 728 "}\n");
363 } 729 }
364 } 730 }
365 731
366 void ImmutableMapFieldLiteGenerator:: 732 void ImmutableMapFieldLiteGenerator::
367 GenerateFieldBuilderInitializationCode(io::Printer* printer) const { 733 GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
368 // Nothing to initialize. 734 // Nothing to initialize.
369 } 735 }
370 736
371 void ImmutableMapFieldLiteGenerator:: 737 void ImmutableMapFieldLiteGenerator::
372 GenerateInitializationCode(io::Printer* printer) const { 738 GenerateInitializationCode(io::Printer* printer) const {
373 // Nothing to initialize. 739 // Nothing to initialize.
374 } 740 }
375 741
376 void ImmutableMapFieldLiteGenerator:: 742 void ImmutableMapFieldLiteGenerator::
377 GenerateVisitCode(io::Printer* printer) const { 743 GenerateVisitCode(io::Printer* printer) const {
378 printer->Print( 744 printer->Print(
379 variables_, 745 variables_,
380 "$name$_ = visitor.visitMap(internalGetMutable$capitalized_name$(),\n" 746 "$name$_ = visitor.visitMap(\n"
381 " other.internalGet$capitalized_name$());\n"); 747 " $name$_, other.internalGet$capitalized_name$());\n");
382 } 748 }
383 749
384 void ImmutableMapFieldLiteGenerator:: 750 void ImmutableMapFieldLiteGenerator::
385 GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const { 751 GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
386 printer->Print(variables_, 752 printer->Print(variables_,
387 "$name$_.makeImmutable();\n"); 753 "$name$_.makeImmutable();\n");
388 } 754 }
389 755
390 void ImmutableMapFieldLiteGenerator:: 756 void ImmutableMapFieldLiteGenerator::
391 GenerateParsingCode(io::Printer* printer) const { 757 GenerateParsingCode(io::Printer* printer) const {
392 printer->Print( 758 printer->Print(
393 variables_, 759 variables_,
394 "if (!$name$_.isMutable()) {\n" 760 "if (!$name$_.isMutable()) {\n"
395 " $name$_ = $name$_.copy();\n" 761 " $name$_ = $name$_.mutableCopy();\n"
396 "}\n"); 762 "}\n");
397 if (!SupportUnknownEnumValue(descriptor_->file()) && 763 if (!SupportUnknownEnumValue(descriptor_->file()) &&
398 GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 764 GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
399 printer->Print( 765 printer->Print(
400 variables_, 766 variables_,
401 "com.google.protobuf.ByteString bytes = input.readBytes();\n" 767 "com.google.protobuf.ByteString bytes = input.readBytes();\n"
402 "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" 768 "java.util.Map.Entry<$type_parameters$> $name$__ =\n"
403 "$name$ = $default_entry$.getParserForType().parseFrom(bytes);\n"); 769 " $default_entry$.parseEntry(bytes, extensionRegistry);\n");
404 printer->Print( 770 printer->Print(
405 variables_, 771 variables_,
406 "if ($value_enum_type$.forNumber($name$.getValue()) == null) {\n" 772 "if ($value_enum_type$.forNumber($name$__.getValue()) == null) {\n"
407 " super.mergeLengthDelimitedField($number$, bytes);\n" 773 " super.mergeLengthDelimitedField($number$, bytes);\n"
408 "} else {\n" 774 "} else {\n"
409 " $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n" 775 " $name$_.put($name$__);\n"
410 "}\n"); 776 "}\n");
411 } else { 777 } else {
412 printer->Print( 778 printer->Print(
413 variables_, 779 variables_,
414 "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" 780 "$default_entry$.parseInto($name$_, input, extensionRegistry);");
415 "$name$ = input.readMessage(\n"
416 " $default_entry$.getParserForType(), extensionRegistry);\n"
417 "$name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n");
418 } 781 }
419 } 782 }
420 783
421 void ImmutableMapFieldLiteGenerator:: 784 void ImmutableMapFieldLiteGenerator::
422 GenerateParsingDoneCode(io::Printer* printer) const { 785 GenerateParsingDoneCode(io::Printer* printer) const {
423 // Nothing to do here. 786 // Nothing to do here.
424 } 787 }
425 788
426 void ImmutableMapFieldLiteGenerator:: 789 void ImmutableMapFieldLiteGenerator::
427 GenerateSerializationCode(io::Printer* printer) const { 790 GenerateSerializationCode(io::Printer* printer) const {
428 printer->Print( 791 printer->Print(
429 variables_, 792 variables_,
430 "for (java.util.Map.Entry<$type_parameters$> entry\n" 793 "for (java.util.Map.Entry<$type_parameters$> entry\n"
431 " : internalGet$capitalized_name$().getMap().entrySet()) {\n" 794 " : internalGet$capitalized_name$().entrySet()) {\n"
432 " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" 795 " $default_entry$.serializeTo(\n"
433 " $name$ = $default_entry$.newBuilderForType()\n" 796 " output, $number$, entry.getKey(), entry.getValue());\n"
434 " .setKey(entry.getKey())\n"
435 " .setValue(entry.getValue())\n"
436 " .build();\n"
437 " output.writeMessage($number$, $name$);\n"
438 "}\n"); 797 "}\n");
439 } 798 }
440 799
441 void ImmutableMapFieldLiteGenerator:: 800 void ImmutableMapFieldLiteGenerator::
442 GenerateSerializedSizeCode(io::Printer* printer) const { 801 GenerateSerializedSizeCode(io::Printer* printer) const {
443 printer->Print( 802 printer->Print(
444 variables_, 803 variables_,
445 "for (java.util.Map.Entry<$type_parameters$> entry\n" 804 "for (java.util.Map.Entry<$type_parameters$> entry\n"
446 " : internalGet$capitalized_name$().getMap().entrySet()) {\n" 805 " : internalGet$capitalized_name$().entrySet()) {\n"
447 " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n" 806 " size += $default_entry$.computeMessageSize(\n"
448 " $name$ = $default_entry$.newBuilderForType()\n" 807 " $number$, entry.getKey(), entry.getValue());\n"
449 " .setKey(entry.getKey())\n"
450 " .setValue(entry.getValue())\n"
451 " .build();\n"
452 " size += com.google.protobuf.CodedOutputStream\n"
453 " .computeMessageSize($number$, $name$);\n"
454 "}\n"); 808 "}\n");
455 } 809 }
456 810
457 void ImmutableMapFieldLiteGenerator:: 811 void ImmutableMapFieldLiteGenerator::
458 GenerateEqualsCode(io::Printer* printer) const { 812 GenerateEqualsCode(io::Printer* printer) const {
459 printer->Print( 813 printer->Print(
460 variables_, 814 variables_,
461 "result = result && internalGet$capitalized_name$().equals(\n" 815 "result = result && internalGet$capitalized_name$().equals(\n"
462 " other.internalGet$capitalized_name$());\n"); 816 " other.internalGet$capitalized_name$());\n");
463 } 817 }
464 818
465 void ImmutableMapFieldLiteGenerator:: 819 void ImmutableMapFieldLiteGenerator::
466 GenerateHashCode(io::Printer* printer) const { 820 GenerateHashCode(io::Printer* printer) const {
467 printer->Print( 821 printer->Print(
468 variables_, 822 variables_,
469 "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n" 823 "if (!internalGet$capitalized_name$().isEmpty()) {\n"
470 " hash = (37 * hash) + $constant_name$;\n" 824 " hash = (37 * hash) + $constant_name$;\n"
471 " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n" 825 " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n"
472 "}\n"); 826 "}\n");
473 } 827 }
474 828
475 string ImmutableMapFieldLiteGenerator::GetBoxedType() const { 829 string ImmutableMapFieldLiteGenerator::GetBoxedType() const {
476 return name_resolver_->GetImmutableClassName(descriptor_->message_type()); 830 return name_resolver_->GetImmutableClassName(descriptor_->message_type());
477 } 831 }
478 832
479 } // namespace java 833 } // namespace java
480 } // namespace compiler 834 } // namespace compiler
481 } // namespace protobuf 835 } // namespace protobuf
482 } // namespace google 836 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698