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

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

Issue 2590803003: Revert "third_party/protobuf: Update to HEAD (83d681ee2c)" (Closed)
Patch Set: Created 3 years, 12 months 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 std::map<string, string>* variables) { 83 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
94 (*variables)["key_type"] = TypeName(key, name_resolver, false); 91 (*variables)["key_type"] = TypeName(key, name_resolver, false);
95 string boxed_key_type = TypeName(key, name_resolver, true); 92 (*variables)["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);
100 (*variables)["key_wire_type"] = WireType(key); 93 (*variables)["key_wire_type"] = WireType(key);
101 (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver); 94 (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver);
102 (*variables)["key_null_check"] = IsReferenceType(keyJavaType) ? 95 if (GetJavaType(value) == JAVATYPE_ENUM) {
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) {
107 // We store enums as Integers internally. 96 // We store enums as Integers internally.
108 (*variables)["value_type"] = "int"; 97 (*variables)["value_type"] = "int";
109 (*variables)["boxed_value_type"] = "java.lang.Integer"; 98 (*variables)["boxed_value_type"] = "java.lang.Integer";
110 (*variables)["value_wire_type"] = WireType(value); 99 (*variables)["value_wire_type"] = WireType(value);
111 (*variables)["value_default_value"] = 100 (*variables)["value_default_value"] =
112 DefaultValue(value, true, name_resolver) + ".getNumber()"; 101 DefaultValue(value, true, name_resolver) + ".getNumber()";
113 102
114 (*variables)["value_enum_type"] = TypeName(value, name_resolver, false); 103 (*variables)["value_enum_type"] = TypeName(value, name_resolver, false);
115 104
116 if (SupportUnknownEnumValue(descriptor->file())) { 105 if (SupportUnknownEnumValue(descriptor->file())) {
(...skipping 22 matching lines...) Expand all
139 128
140 // For repeated fields, one bit is used for whether the array is immutable 129 // For repeated fields, one bit is used for whether the array is immutable
141 // in the parsing constructor. 130 // in the parsing constructor.
142 (*variables)["get_mutable_bit_parser"] = 131 (*variables)["get_mutable_bit_parser"] =
143 GenerateGetBitMutableLocal(builderBitIndex); 132 GenerateGetBitMutableLocal(builderBitIndex);
144 (*variables)["set_mutable_bit_parser"] = 133 (*variables)["set_mutable_bit_parser"] =
145 GenerateSetBitMutableLocal(builderBitIndex); 134 GenerateSetBitMutableLocal(builderBitIndex);
146 135
147 (*variables)["default_entry"] = (*variables)["capitalized_name"] + 136 (*variables)["default_entry"] = (*variables)["capitalized_name"] +
148 "DefaultEntryHolder.defaultEntry"; 137 "DefaultEntryHolder.defaultEntry";
138 (*variables)["lite"] = "";
149 (*variables)["map_field_parameter"] = (*variables)["default_entry"]; 139 (*variables)["map_field_parameter"] = (*variables)["default_entry"];
150 (*variables)["descriptor"] = 140 (*variables)["descriptor"] =
151 name_resolver->GetImmutableClassName(descriptor->file()) + 141 name_resolver->GetImmutableClassName(descriptor->file()) +
152 ".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) + 142 ".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) +
153 "_descriptor, "; 143 "_descriptor, ";
154 (*variables)["ver"] = GeneratedCodeVersionSuffix();
155 } 144 }
156 145
157 } // namespace 146 } // namespace
158 147
159 ImmutableMapFieldGenerator:: 148 ImmutableMapFieldGenerator::
160 ImmutableMapFieldGenerator(const FieldDescriptor* descriptor, 149 ImmutableMapFieldGenerator(const FieldDescriptor* descriptor,
161 int messageBitIndex, 150 int messageBitIndex,
162 int builderBitIndex, 151 int builderBitIndex,
163 Context* context) 152 Context* context)
164 : descriptor_(descriptor), name_resolver_(context->GetNameResolver()) { 153 : descriptor_(descriptor), name_resolver_(context->GetNameResolver()) {
165 SetMessageVariables(descriptor, messageBitIndex, builderBitIndex, 154 SetMessageVariables(descriptor, messageBitIndex, builderBitIndex,
166 context->GetFieldGeneratorInfo(descriptor), 155 context->GetFieldGeneratorInfo(descriptor),
167 context, &variables_); 156 context, &variables_);
168 } 157 }
169 158
170 ImmutableMapFieldGenerator:: 159 ImmutableMapFieldGenerator::
171 ~ImmutableMapFieldGenerator() {} 160 ~ImmutableMapFieldGenerator() {}
172 161
173 int ImmutableMapFieldGenerator::GetNumBitsForMessage() const { 162 int ImmutableMapFieldGenerator::GetNumBitsForMessage() const {
174 return 0; 163 return 0;
175 } 164 }
176 165
177 int ImmutableMapFieldGenerator::GetNumBitsForBuilder() const { 166 int ImmutableMapFieldGenerator::GetNumBitsForBuilder() const {
178 return 1; 167 return 1;
179 } 168 }
180 169
181 void ImmutableMapFieldGenerator:: 170 void ImmutableMapFieldGenerator::
182 GenerateInterfaceMembers(io::Printer* printer) const { 171 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");
192 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 172 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");
201 WriteFieldDocComment(printer, descriptor_); 173 WriteFieldDocComment(printer, descriptor_);
202 printer->Print( 174 printer->Print(
203 variables_, 175 variables_,
204 "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n" 176 "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
205 "get$capitalized_name$Map();\n"); 177 "get$capitalized_name$();\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");
217 if (SupportUnknownEnumValue(descriptor_->file())) { 178 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");
226 WriteFieldDocComment(printer, descriptor_); 179 WriteFieldDocComment(printer, descriptor_);
227 printer->Print( 180 printer->Print(
228 variables_, 181 variables_,
229 "$deprecation$java.util.Map<$type_parameters$>\n" 182 "$deprecation$java.util.Map<$type_parameters$>\n"
230 "get$capitalized_name$ValueMap();\n"); 183 "get$capitalized_name$Value();\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");
244 } 184 }
245 } else { 185 } 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");
254 WriteFieldDocComment(printer, descriptor_); 186 WriteFieldDocComment(printer, descriptor_);
255 printer->Print( 187 printer->Print(
256 variables_, 188 variables_,
257 "$deprecation$java.util.Map<$type_parameters$>\n" 189 "$deprecation$java.util.Map<$type_parameters$>\n"
258 "get$capitalized_name$Map();\n"); 190 "get$capitalized_name$();\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");
272 } 191 }
273 } 192 }
274 193
275 void ImmutableMapFieldGenerator:: 194 void ImmutableMapFieldGenerator::
276 GenerateMembers(io::Printer* printer) const { 195 GenerateMembers(io::Printer* printer) const {
277 printer->Print( 196 printer->Print(
278 variables_, 197 variables_,
279 "private static final class $capitalized_name$DefaultEntryHolder {\n" 198 "private static final class $capitalized_name$DefaultEntryHolder {\n"
280 " static final com.google.protobuf.MapEntry<\n" 199 " static final com.google.protobuf.MapEntry$lite$<\n"
281 " $type_parameters$> defaultEntry =\n" 200 " $type_parameters$> defaultEntry =\n"
282 " com.google.protobuf.MapEntry\n" 201 " com.google.protobuf.MapEntry$lite$\n"
283 " .<$type_parameters$>newDefaultInstance(\n" 202 " .<$type_parameters$>newDefaultInstance(\n"
284 " $descriptor$\n" 203 " $descriptor$\n"
285 " $key_wire_type$,\n" 204 " $key_wire_type$,\n"
286 " $key_default_value$,\n" 205 " $key_default_value$,\n"
287 " $value_wire_type$,\n" 206 " $value_wire_type$,\n"
288 " $value_default_value$);\n" 207 " $value_default_value$);\n"
289 "}\n"); 208 "}\n");
290 printer->Print( 209 printer->Print(
291 variables_, 210 variables_,
292 "private com.google.protobuf.MapField<\n" 211 "private com.google.protobuf.MapField$lite$<\n"
293 " $type_parameters$> $name$_;\n" 212 " $type_parameters$> $name$_;\n"
294 "private com.google.protobuf.MapField<$type_parameters$>\n" 213 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
295 "internalGet$capitalized_name$() {\n" 214 "internalGet$capitalized_name$() {\n"
296 " if ($name$_ == null) {\n" 215 " if ($name$_ == null) {\n"
297 " return com.google.protobuf.MapField.emptyMapField(\n" 216 " return com.google.protobuf.MapField$lite$.emptyMapField(\n"
298 " $map_field_parameter$);\n" 217 " $map_field_parameter$);\n"
299 " }\n" 218 " }\n"
300 " return $name$_;\n" 219 " return $name$_;\n"
301 "}\n"); 220 "}\n");
302 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 221 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
303 printer->Print( 222 printer->Print(
304 variables_, 223 variables_,
305 "private static final\n" 224 "private static final\n"
306 "com.google.protobuf.Internal.MapAdapter.Converter<\n" 225 "com.google.protobuf.Internal.MapAdapter.Converter<\n"
307 " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n" 226 " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n"
308 " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n" 227 " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n"
309 " $value_enum_type$.internalGetValueMap(),\n" 228 " $value_enum_type$.internalGetValueMap(),\n"
310 " $unrecognized_value$);\n"); 229 " $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_);
311 printer->Print( 241 printer->Print(
312 variables_, 242 variables_,
313 "private static final java.util.Map<$boxed_key_type$, " 243 "$deprecation$\n"
314 "$value_enum_type$>\n" 244 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
315 "internalGetAdapted$capitalized_name$Map(\n" 245 "get$capitalized_name$() {\n"
316 " java.util.Map<$boxed_key_type$, $boxed_value_type$> map) {\n"
317 " return new com.google.protobuf.Internal.MapAdapter<\n" 246 " return new com.google.protobuf.Internal.MapAdapter<\n"
318 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n" 247 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
319 " map, $name$ValueConverter);\n" 248 " internalGet$capitalized_name$().getMap(),\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"
320 "}\n"); 258 "}\n");
321 } 259 }
322 GenerateMapGetters(printer);
323 } 260 }
324 261
325 void ImmutableMapFieldGenerator:: 262 void ImmutableMapFieldGenerator::
326 GenerateBuilderMembers(io::Printer* printer) const { 263 GenerateBuilderMembers(io::Printer* printer) const {
327 printer->Print( 264 printer->Print(
328 variables_, 265 variables_,
329 "private com.google.protobuf.MapField<\n" 266 "private com.google.protobuf.MapField$lite$<\n"
330 " $type_parameters$> $name$_;\n" 267 " $type_parameters$> $name$_;\n"
331 "private com.google.protobuf.MapField<$type_parameters$>\n" 268 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
332 "internalGet$capitalized_name$() {\n" 269 "internalGet$capitalized_name$() {\n"
333 " if ($name$_ == null) {\n" 270 " if ($name$_ == null) {\n"
334 " return com.google.protobuf.MapField.emptyMapField(\n" 271 " return com.google.protobuf.MapField$lite$.emptyMapField(\n"
335 " $map_field_parameter$);\n" 272 " $map_field_parameter$);\n"
336 " }\n" 273 " }\n"
337 " return $name$_;\n" 274 " return $name$_;\n"
338 "}\n" 275 "}\n"
339 "private com.google.protobuf.MapField<$type_parameters$>\n" 276 "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
340 "internalGetMutable$capitalized_name$() {\n" 277 "internalGetMutable$capitalized_name$() {\n"
341 " $on_changed$;\n" 278 " $on_changed$;\n"
342 " if ($name$_ == null) {\n" 279 " if ($name$_ == null) {\n"
343 " $name$_ = com.google.protobuf.MapField.newMapField(\n" 280 " $name$_ = com.google.protobuf.MapField$lite$.newMapField(\n"
344 " $map_field_parameter$);\n" 281 " $map_field_parameter$);\n"
345 " }\n" 282 " }\n"
346 " if (!$name$_.isMutable()) {\n" 283 " if (!$name$_.isMutable()) {\n"
347 " $name$_ = $name$_.copy();\n" 284 " $name$_ = $name$_.copy();\n"
348 " }\n" 285 " }\n"
349 " return $name$_;\n" 286 " return $name$_;\n"
350 "}\n"); 287 "}\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");
369 if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 288 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"
376 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n" 304 "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
377 "getMutable$capitalized_name$() {\n" 305 "getMutable$capitalized_name$() {\n"
378 " return internalGetAdapted$capitalized_name$Map(\n" 306 " return new com.google.protobuf.Internal.MapAdapter<\n"
379 " internalGetMutable$capitalized_name$().getMutableMap());\n" 307 " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
308 " internalGetMutable$capitalized_name$().getMutableMap(),\n"
309 " $name$ValueConverter);\n"
380 "}\n"); 310 "}\n");
381 WriteFieldDocComment(printer, descriptor_); 311 WriteFieldDocComment(printer, descriptor_);
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");
392 WriteFieldDocComment(printer, descriptor_);
393 printer->Print( 312 printer->Print(
394 variables_, 313 variables_,
395 "$deprecation$public Builder putAll$capitalized_name$(\n" 314 "$deprecation$public Builder putAll$capitalized_name$(\n"
396 " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n" 315 " java.util.Map<$boxed_key_type$, $value_enum_type$> values) {\n"
397 " internalGetAdapted$capitalized_name$Map(\n" 316 " getMutable$capitalized_name$().putAll(values);\n"
398 " internalGetMutable$capitalized_name$().getMutableMap())\n"
399 " .putAll(values);\n"
400 " return this;\n" 317 " return this;\n"
401 "}\n"); 318 "}\n");
402 if (SupportUnknownEnumValue(descriptor_->file())) { 319 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"
409 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n" 332 "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
410 "getMutable$capitalized_name$Value() {\n" 333 "getMutable$capitalized_name$Value() {\n"
411 " return internalGetMutable$capitalized_name$().getMutableMap();\n" 334 " return internalGetMutable$capitalized_name$().getMutableMap();\n"
412 "}\n"); 335 "}\n");
413 WriteFieldDocComment(printer, descriptor_); 336 WriteFieldDocComment(printer, descriptor_);
414 printer->Print( 337 printer->Print(
415 variables_, 338 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_,
430 "$deprecation$public Builder putAll$capitalized_name$Value(\n" 339 "$deprecation$public Builder putAll$capitalized_name$Value(\n"
431 " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n" 340 " java.util.Map<$boxed_key_type$, $boxed_value_type$> values) {\n"
432 " internalGetMutable$capitalized_name$().getMutableMap()\n" 341 " getMutable$capitalized_name$Value().putAll(values);\n"
433 " .putAll(values);\n"
434 " return this;\n" 342 " return this;\n"
435 "}\n"); 343 "}\n");
436 } 344 }
437 } else { 345 } 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_,
444 "public java.util.Map<$type_parameters$>\n" 355 "public java.util.Map<$type_parameters$>\n"
445 "getMutable$capitalized_name$() {\n" 356 "getMutable$capitalized_name$() {\n"
446 " return internalGetMutable$capitalized_name$().getMutableMap();\n" 357 " return internalGetMutable$capitalized_name$().getMutableMap();\n"
447 "}\n"); 358 "}\n");
448 WriteFieldDocComment(printer, descriptor_); 359 WriteFieldDocComment(printer, descriptor_);
449 printer->Print(variables_,
450 "$deprecation$"
451 "public Builder put$capitalized_name$(\n"
452 " $key_type$ key,\n"
453 " $value_type$ value) {\n"
454 " $key_null_check$\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");
469 }
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( 360 printer->Print(
491 variables_, 361 variables_,
492 "/**\n" 362 "$deprecation$public Builder putAll$capitalized_name$(\n"
493 " * Use {@link #get$capitalized_name$Map()} instead.\n" 363 " java.util.Map<$type_parameters$> values) {\n"
494 " */\n" 364 " getMutable$capitalized_name$().putAll(values);\n"
495 "@java.lang.Deprecated\n" 365 " return this;\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"); 366 "}\n");
625 } 367 }
626 } 368 }
627 369
628 void ImmutableMapFieldGenerator:: 370 void ImmutableMapFieldGenerator::
629 GenerateFieldBuilderInitializationCode(io::Printer* printer) const { 371 GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
630 // Nothing to initialize. 372 // Nothing to initialize.
631 } 373 }
632 374
633 void ImmutableMapFieldGenerator:: 375 void ImmutableMapFieldGenerator::
(...skipping 22 matching lines...) Expand all
656 variables_, 398 variables_,
657 "result.$name$_ = internalGet$capitalized_name$();\n" 399 "result.$name$_ = internalGet$capitalized_name$();\n"
658 "result.$name$_.makeImmutable();\n"); 400 "result.$name$_.makeImmutable();\n");
659 } 401 }
660 402
661 void ImmutableMapFieldGenerator:: 403 void ImmutableMapFieldGenerator::
662 GenerateParsingCode(io::Printer* printer) const { 404 GenerateParsingCode(io::Printer* printer) const {
663 printer->Print( 405 printer->Print(
664 variables_, 406 variables_,
665 "if (!$get_mutable_bit_parser$) {\n" 407 "if (!$get_mutable_bit_parser$) {\n"
666 " $name$_ = com.google.protobuf.MapField.newMapField(\n" 408 " $name$_ = com.google.protobuf.MapField$lite$.newMapField(\n"
667 " $map_field_parameter$);\n" 409 " $map_field_parameter$);\n"
668 " $set_mutable_bit_parser$;\n" 410 " $set_mutable_bit_parser$;\n"
669 "}\n"); 411 "}\n");
670 if (!SupportUnknownEnumValue(descriptor_->file()) && 412 if (!SupportUnknownEnumValue(descriptor_->file()) &&
671 GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) { 413 GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
672 printer->Print( 414 printer->Print(
673 variables_, 415 variables_,
674 "com.google.protobuf.ByteString bytes = input.readBytes();\n" 416 "com.google.protobuf.ByteString bytes = input.readBytes();\n"
675 "com.google.protobuf.MapEntry<$type_parameters$>\n" 417 "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
676 "$name$__ = $default_entry$.getParserForType().parseFrom(bytes);\n"); 418 "$name$ = $default_entry$.getParserForType().parseFrom(bytes);\n");
677 printer->Print( 419 printer->Print(
678 variables_, 420 variables_,
679 "if ($value_enum_type$.forNumber($name$__.getValue()) == null) {\n" 421 "if ($value_enum_type$.forNumber($name$.getValue()) == null) {\n"
680 " unknownFields.mergeLengthDelimitedField($number$, bytes);\n" 422 " unknownFields.mergeLengthDelimitedField($number$, bytes);\n"
681 "} else {\n" 423 "} else {\n"
682 " $name$_.getMutableMap().put(\n" 424 " $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n"
683 " $name$__.getKey(), $name$__.getValue());\n"
684 "}\n"); 425 "}\n");
685 } else { 426 } else {
686 printer->Print( 427 printer->Print(
687 variables_, 428 variables_,
688 "com.google.protobuf.MapEntry<$type_parameters$>\n" 429 "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
689 "$name$__ = input.readMessage(\n" 430 "$name$ = input.readMessage(\n"
690 " $default_entry$.getParserForType(), extensionRegistry);\n" 431 " $default_entry$.getParserForType(), extensionRegistry);\n"
691 "$name$_.getMutableMap().put(\n" 432 "$name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n");
692 " $name$__.getKey(), $name$__.getValue());\n");
693 } 433 }
694 } 434 }
695 435
696 void ImmutableMapFieldGenerator:: 436 void ImmutableMapFieldGenerator::
697 GenerateParsingDoneCode(io::Printer* printer) const { 437 GenerateParsingDoneCode(io::Printer* printer) const {
698 // Nothing to do here. 438 // Nothing to do here.
699 } 439 }
700 440
701 void ImmutableMapFieldGenerator:: 441 void ImmutableMapFieldGenerator::
702 GenerateSerializationCode(io::Printer* printer) const { 442 GenerateSerializationCode(io::Printer* printer) const {
703 printer->Print( 443 printer->Print(
704 variables_, 444 variables_,
705 "com.google.protobuf.GeneratedMessage$ver$\n" 445 "for (java.util.Map.Entry<$type_parameters$> entry\n"
706 " .serialize$short_key_type$MapTo(\n" 446 " : internalGet$capitalized_name$().getMap().entrySet()) {\n"
707 " output,\n" 447 " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
708 " internalGet$capitalized_name$(),\n" 448 " $name$ = $default_entry$.newBuilderForType()\n"
709 " $default_entry$,\n" 449 " .setKey(entry.getKey())\n"
710 " $number$);\n"); 450 " .setValue(entry.getValue())\n"
451 " .build();\n"
452 " output.writeMessage($number$, $name$);\n"
453 "}\n");
711 } 454 }
712 455
713 void ImmutableMapFieldGenerator:: 456 void ImmutableMapFieldGenerator::
714 GenerateSerializedSizeCode(io::Printer* printer) const { 457 GenerateSerializedSizeCode(io::Printer* printer) const {
715 printer->Print( 458 printer->Print(
716 variables_, 459 variables_,
717 "for (java.util.Map.Entry<$type_parameters$> entry\n" 460 "for (java.util.Map.Entry<$type_parameters$> entry\n"
718 " : internalGet$capitalized_name$().getMap().entrySet()) {\n" 461 " : internalGet$capitalized_name$().getMap().entrySet()) {\n"
719 " com.google.protobuf.MapEntry<$type_parameters$>\n" 462 " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
720 " $name$__ = $default_entry$.newBuilderForType()\n" 463 " $name$ = $default_entry$.newBuilderForType()\n"
721 " .setKey(entry.getKey())\n" 464 " .setKey(entry.getKey())\n"
722 " .setValue(entry.getValue())\n" 465 " .setValue(entry.getValue())\n"
723 " .build();\n" 466 " .build();\n"
724 " size += com.google.protobuf.CodedOutputStream\n" 467 " size += com.google.protobuf.CodedOutputStream\n"
725 " .computeMessageSize($number$, $name$__);\n" 468 " .computeMessageSize($number$, $name$);\n"
726 "}\n"); 469 "}\n");
727 } 470 }
728 471
729 void ImmutableMapFieldGenerator:: 472 void ImmutableMapFieldGenerator::
730 GenerateEqualsCode(io::Printer* printer) const { 473 GenerateEqualsCode(io::Printer* printer) const {
731 printer->Print( 474 printer->Print(
732 variables_, 475 variables_,
733 "result = result && internalGet$capitalized_name$().equals(\n" 476 "result = result && internalGet$capitalized_name$().equals(\n"
734 " other.internalGet$capitalized_name$());\n"); 477 " other.internalGet$capitalized_name$());\n");
735 } 478 }
736 479
737 void ImmutableMapFieldGenerator:: 480 void ImmutableMapFieldGenerator::
738 GenerateHashCode(io::Printer* printer) const { 481 GenerateHashCode(io::Printer* printer) const {
739 printer->Print( 482 printer->Print(
740 variables_, 483 variables_,
741 "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n" 484 "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n"
742 " hash = (37 * hash) + $constant_name$;\n" 485 " hash = (37 * hash) + $constant_name$;\n"
743 " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n" 486 " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n"
744 "}\n"); 487 "}\n");
745 } 488 }
746 489
747 string ImmutableMapFieldGenerator::GetBoxedType() const { 490 string ImmutableMapFieldGenerator::GetBoxedType() const {
748 return name_resolver_->GetImmutableClassName(descriptor_->message_type()); 491 return name_resolver_->GetImmutableClassName(descriptor_->message_type());
749 } 492 }
750 493
751 } // namespace java 494 } // namespace java
752 } // namespace compiler 495 } // namespace compiler
753 } // namespace protobuf 496 } // namespace protobuf
754 } // namespace google 497 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698