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

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

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Update to new HEAD (b7632464b4) + restore GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER Created 4 years, 1 month 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 (*variables)["default_number"] = SimpleItoa( 69 (*variables)["default_number"] = SimpleItoa(
70 descriptor->default_value_enum()->number()); 70 descriptor->default_value_enum()->number());
71 (*variables)["tag"] = SimpleItoa(internal::WireFormat::MakeTag(descriptor)); 71 (*variables)["tag"] = SimpleItoa(internal::WireFormat::MakeTag(descriptor));
72 (*variables)["tag_size"] = SimpleItoa( 72 (*variables)["tag_size"] = SimpleItoa(
73 internal::WireFormat::TagSize(descriptor->number(), GetType(descriptor))); 73 internal::WireFormat::TagSize(descriptor->number(), GetType(descriptor)));
74 // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported 74 // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
75 // by the proto compiler 75 // by the proto compiler
76 (*variables)["deprecation"] = descriptor->options().deprecated() 76 (*variables)["deprecation"] = descriptor->options().deprecated()
77 ? "@java.lang.Deprecated " : ""; 77 ? "@java.lang.Deprecated " : "";
78 (*variables)["on_changed"] = "onChanged();"; 78 (*variables)["on_changed"] = "onChanged();";
79 // Use deprecated valueOf() method to be compatible with old generated code
80 // for v2.5.0/v2.6.1.
81 // TODO(xiaofeng): Use "forNumber" when we no longer support compatibility
82 // with v2.5.0/v2.6.1.
83 (*variables)["for_number"] = "valueOf";
79 84
80 if (SupportFieldPresence(descriptor->file())) { 85 if (SupportFieldPresence(descriptor->file())) {
81 // For singular messages and builders, one bit is used for the hasField bit. 86 // For singular messages and builders, one bit is used for the hasField bit.
82 (*variables)["get_has_field_bit_message"] = GenerateGetBit(messageBitIndex); 87 (*variables)["get_has_field_bit_message"] = GenerateGetBit(messageBitIndex);
83 (*variables)["get_has_field_bit_builder"] = GenerateGetBit(builderBitIndex); 88 (*variables)["get_has_field_bit_builder"] = GenerateGetBit(builderBitIndex);
84 89
85 // Note that these have a trailing ";". 90 // Note that these have a trailing ";".
86 (*variables)["set_has_field_bit_message"] = 91 (*variables)["set_has_field_bit_message"] =
87 GenerateSetBit(messageBitIndex) + ";"; 92 GenerateSetBit(messageBitIndex) + ";";
88 (*variables)["set_has_field_bit_builder"] = 93 (*variables)["set_has_field_bit_builder"] =
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 if (SupportUnknownEnumValue(descriptor_->file())) { 189 if (SupportUnknownEnumValue(descriptor_->file())) {
185 WriteFieldDocComment(printer, descriptor_); 190 WriteFieldDocComment(printer, descriptor_);
186 printer->Print(variables_, 191 printer->Print(variables_,
187 "$deprecation$public int get$capitalized_name$Value() {\n" 192 "$deprecation$public int get$capitalized_name$Value() {\n"
188 " return $name$_;\n" 193 " return $name$_;\n"
189 "}\n"); 194 "}\n");
190 } 195 }
191 WriteFieldDocComment(printer, descriptor_); 196 WriteFieldDocComment(printer, descriptor_);
192 printer->Print(variables_, 197 printer->Print(variables_,
193 "$deprecation$public $type$ get$capitalized_name$() {\n" 198 "$deprecation$public $type$ get$capitalized_name$() {\n"
194 " $type$ result = $type$.forNumber($name$_);\n" 199 " $type$ result = $type$.$for_number$($name$_);\n"
195 " return result == null ? $unknown$ : result;\n" 200 " return result == null ? $unknown$ : result;\n"
196 "}\n"); 201 "}\n");
197 } 202 }
198 203
199 void ImmutableEnumFieldGenerator:: 204 void ImmutableEnumFieldGenerator::
200 GenerateBuilderMembers(io::Printer* printer) const { 205 GenerateBuilderMembers(io::Printer* printer) const {
201 printer->Print(variables_, 206 printer->Print(variables_,
202 "private int $name$_ = $default_number$;\n"); 207 "private int $name$_ = $default_number$;\n");
203 if (SupportFieldPresence(descriptor_->file())) { 208 if (SupportFieldPresence(descriptor_->file())) {
204 WriteFieldDocComment(printer, descriptor_); 209 WriteFieldDocComment(printer, descriptor_);
(...skipping 12 matching lines...) Expand all
217 printer->Print(variables_, 222 printer->Print(variables_,
218 "$deprecation$public Builder set$capitalized_name$Value(int value) {\n" 223 "$deprecation$public Builder set$capitalized_name$Value(int value) {\n"
219 " $name$_ = value;\n" 224 " $name$_ = value;\n"
220 " $on_changed$\n" 225 " $on_changed$\n"
221 " return this;\n" 226 " return this;\n"
222 "}\n"); 227 "}\n");
223 } 228 }
224 WriteFieldDocComment(printer, descriptor_); 229 WriteFieldDocComment(printer, descriptor_);
225 printer->Print(variables_, 230 printer->Print(variables_,
226 "$deprecation$public $type$ get$capitalized_name$() {\n" 231 "$deprecation$public $type$ get$capitalized_name$() {\n"
227 " $type$ result = $type$.forNumber($name$_);\n" 232 " $type$ result = $type$.$for_number$($name$_);\n"
228 " return result == null ? $unknown$ : result;\n" 233 " return result == null ? $unknown$ : result;\n"
229 "}\n"); 234 "}\n");
230 WriteFieldDocComment(printer, descriptor_); 235 WriteFieldDocComment(printer, descriptor_);
231 printer->Print(variables_, 236 printer->Print(variables_,
232 "$deprecation$public Builder set$capitalized_name$($type$ value) {\n" 237 "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
233 " if (value == null) {\n" 238 " if (value == null) {\n"
234 " throw new NullPointerException();\n" 239 " throw new NullPointerException();\n"
235 " }\n" 240 " }\n"
236 " $set_has_field_bit_builder$\n" 241 " $set_has_field_bit_builder$\n"
237 " $name$_ = value.getNumber();\n" 242 " $name$_ = value.getNumber();\n"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 void ImmutableEnumFieldGenerator:: 302 void ImmutableEnumFieldGenerator::
298 GenerateParsingCode(io::Printer* printer) const { 303 GenerateParsingCode(io::Printer* printer) const {
299 if (SupportUnknownEnumValue(descriptor_->file())) { 304 if (SupportUnknownEnumValue(descriptor_->file())) {
300 printer->Print(variables_, 305 printer->Print(variables_,
301 "int rawValue = input.readEnum();\n" 306 "int rawValue = input.readEnum();\n"
302 "$set_has_field_bit_message$\n" 307 "$set_has_field_bit_message$\n"
303 "$name$_ = rawValue;\n"); 308 "$name$_ = rawValue;\n");
304 } else { 309 } else {
305 printer->Print(variables_, 310 printer->Print(variables_,
306 "int rawValue = input.readEnum();\n" 311 "int rawValue = input.readEnum();\n"
307 "$type$ value = $type$.forNumber(rawValue);\n" 312 "$type$ value = $type$.$for_number$(rawValue);\n"
308 "if (value == null) {\n"); 313 "if (value == null) {\n");
309 if (PreserveUnknownFields(descriptor_->containing_type())) { 314 if (PreserveUnknownFields(descriptor_->containing_type())) {
310 printer->Print(variables_, 315 printer->Print(variables_,
311 " unknownFields.mergeVarintField($number$, rawValue);\n"); 316 " unknownFields.mergeVarintField($number$, rawValue);\n");
312 } 317 }
313 printer->Print(variables_, 318 printer->Print(variables_,
314 "} else {\n" 319 "} else {\n"
315 " $set_has_field_bit_message$\n" 320 " $set_has_field_bit_message$\n"
316 " $name$_ = rawValue;\n" 321 " $name$_ = rawValue;\n"
317 "}\n"); 322 "}\n");
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 " if ($has_oneof_case_message$) {\n" 396 " if ($has_oneof_case_message$) {\n"
392 " return (java.lang.Integer) $oneof_name$_;\n" 397 " return (java.lang.Integer) $oneof_name$_;\n"
393 " }\n" 398 " }\n"
394 " return $default_number$;\n" 399 " return $default_number$;\n"
395 "}\n"); 400 "}\n");
396 } 401 }
397 WriteFieldDocComment(printer, descriptor_); 402 WriteFieldDocComment(printer, descriptor_);
398 printer->Print(variables_, 403 printer->Print(variables_,
399 "$deprecation$public $type$ get$capitalized_name$() {\n" 404 "$deprecation$public $type$ get$capitalized_name$() {\n"
400 " if ($has_oneof_case_message$) {\n" 405 " if ($has_oneof_case_message$) {\n"
401 " $type$ result = $type$.forNumber((java.lang.Integer) $oneof_name$_);\n" 406 " $type$ result = $type$.$for_number$(\n"
407 " (java.lang.Integer) $oneof_name$_);\n"
402 " return result == null ? $unknown$ : result;\n" 408 " return result == null ? $unknown$ : result;\n"
403 " }\n" 409 " }\n"
404 " return $default$;\n" 410 " return $default$;\n"
405 "}\n"); 411 "}\n");
406 } 412 }
407 413
408 void ImmutableEnumOneofFieldGenerator:: 414 void ImmutableEnumOneofFieldGenerator::
409 GenerateBuilderMembers(io::Printer* printer) const { 415 GenerateBuilderMembers(io::Printer* printer) const {
410 if (SupportFieldPresence(descriptor_->file())) { 416 if (SupportFieldPresence(descriptor_->file())) {
411 WriteFieldDocComment(printer, descriptor_); 417 WriteFieldDocComment(printer, descriptor_);
(...skipping 17 matching lines...) Expand all
429 " $set_oneof_case_message$;\n" 435 " $set_oneof_case_message$;\n"
430 " $oneof_name$_ = value;\n" 436 " $oneof_name$_ = value;\n"
431 " $on_changed$\n" 437 " $on_changed$\n"
432 " return this;\n" 438 " return this;\n"
433 "}\n"); 439 "}\n");
434 } 440 }
435 WriteFieldDocComment(printer, descriptor_); 441 WriteFieldDocComment(printer, descriptor_);
436 printer->Print(variables_, 442 printer->Print(variables_,
437 "$deprecation$public $type$ get$capitalized_name$() {\n" 443 "$deprecation$public $type$ get$capitalized_name$() {\n"
438 " if ($has_oneof_case_message$) {\n" 444 " if ($has_oneof_case_message$) {\n"
439 " $type$ result = $type$.forNumber((java.lang.Integer) $oneof_name$_);\n" 445 " $type$ result = $type$.$for_number$(\n"
446 " (java.lang.Integer) $oneof_name$_);\n"
440 " return result == null ? $unknown$ : result;\n" 447 " return result == null ? $unknown$ : result;\n"
441 " }\n" 448 " }\n"
442 " return $default$;\n" 449 " return $default$;\n"
443 "}\n"); 450 "}\n");
444 WriteFieldDocComment(printer, descriptor_); 451 WriteFieldDocComment(printer, descriptor_);
445 printer->Print(variables_, 452 printer->Print(variables_,
446 "$deprecation$public Builder set$capitalized_name$($type$ value) {\n" 453 "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
447 " if (value == null) {\n" 454 " if (value == null) {\n"
448 " throw new NullPointerException();\n" 455 " throw new NullPointerException();\n"
449 " }\n" 456 " }\n"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 void ImmutableEnumOneofFieldGenerator:: 493 void ImmutableEnumOneofFieldGenerator::
487 GenerateParsingCode(io::Printer* printer) const { 494 GenerateParsingCode(io::Printer* printer) const {
488 if (SupportUnknownEnumValue(descriptor_->file())) { 495 if (SupportUnknownEnumValue(descriptor_->file())) {
489 printer->Print(variables_, 496 printer->Print(variables_,
490 "int rawValue = input.readEnum();\n" 497 "int rawValue = input.readEnum();\n"
491 "$set_oneof_case_message$;\n" 498 "$set_oneof_case_message$;\n"
492 "$oneof_name$_ = rawValue;\n"); 499 "$oneof_name$_ = rawValue;\n");
493 } else { 500 } else {
494 printer->Print(variables_, 501 printer->Print(variables_,
495 "int rawValue = input.readEnum();\n" 502 "int rawValue = input.readEnum();\n"
496 "$type$ value = $type$.forNumber(rawValue);\n" 503 "$type$ value = $type$.$for_number$(rawValue);\n"
497 "if (value == null) {\n"); 504 "if (value == null) {\n");
498 if (PreserveUnknownFields(descriptor_->containing_type())) { 505 if (PreserveUnknownFields(descriptor_->containing_type())) {
499 printer->Print(variables_, 506 printer->Print(variables_,
500 " unknownFields.mergeVarintField($number$, rawValue);\n"); 507 " unknownFields.mergeVarintField($number$, rawValue);\n");
501 } 508 }
502 printer->Print(variables_, 509 printer->Print(variables_,
503 "} else {\n" 510 "} else {\n"
504 " $set_oneof_case_message$;\n" 511 " $set_oneof_case_message$;\n"
505 " $oneof_name$_ = rawValue;\n" 512 " $oneof_name$_ = rawValue;\n"
506 "}\n"); 513 "}\n");
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 606
600 void RepeatedImmutableEnumFieldGenerator:: 607 void RepeatedImmutableEnumFieldGenerator::
601 GenerateMembers(io::Printer* printer) const { 608 GenerateMembers(io::Printer* printer) const {
602 printer->Print(variables_, 609 printer->Print(variables_,
603 "private java.util.List<java.lang.Integer> $name$_;\n" 610 "private java.util.List<java.lang.Integer> $name$_;\n"
604 "private static final com.google.protobuf.Internal.ListAdapter.Converter<\n" 611 "private static final com.google.protobuf.Internal.ListAdapter.Converter<\n"
605 " java.lang.Integer, $type$> $name$_converter_ =\n" 612 " java.lang.Integer, $type$> $name$_converter_ =\n"
606 " new com.google.protobuf.Internal.ListAdapter.Converter<\n" 613 " new com.google.protobuf.Internal.ListAdapter.Converter<\n"
607 " java.lang.Integer, $type$>() {\n" 614 " java.lang.Integer, $type$>() {\n"
608 " public $type$ convert(java.lang.Integer from) {\n" 615 " public $type$ convert(java.lang.Integer from) {\n"
609 " $type$ result = $type$.forNumber(from);\n" 616 " $type$ result = $type$.$for_number$(from);\n"
610 " return result == null ? $unknown$ : result;\n" 617 " return result == null ? $unknown$ : result;\n"
611 " }\n" 618 " }\n"
612 " };\n"); 619 " };\n");
613 PrintExtraFieldInfo(variables_, printer); 620 PrintExtraFieldInfo(variables_, printer);
614 WriteFieldDocComment(printer, descriptor_); 621 WriteFieldDocComment(printer, descriptor_);
615 printer->Print(variables_, 622 printer->Print(variables_,
616 "$deprecation$public java.util.List<$type$> get$capitalized_name$List() {\n" 623 "$deprecation$public java.util.List<$type$> get$capitalized_name$List() {\n"
617 " return new com.google.protobuf.Internal.ListAdapter<\n" 624 " return new com.google.protobuf.Internal.ListAdapter<\n"
618 " java.lang.Integer, $type$>($name$_, $name$_converter_);\n" 625 " java.lang.Integer, $type$>($name$_, $name$_converter_);\n"
619 "}\n"); 626 "}\n");
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 printer->Print(variables_, 839 printer->Print(variables_,
833 "int rawValue = input.readEnum();\n" 840 "int rawValue = input.readEnum();\n"
834 "if (!$get_mutable_bit_parser$) {\n" 841 "if (!$get_mutable_bit_parser$) {\n"
835 " $name$_ = new java.util.ArrayList<java.lang.Integer>();\n" 842 " $name$_ = new java.util.ArrayList<java.lang.Integer>();\n"
836 " $set_mutable_bit_parser$;\n" 843 " $set_mutable_bit_parser$;\n"
837 "}\n" 844 "}\n"
838 "$name$_.add(rawValue);\n"); 845 "$name$_.add(rawValue);\n");
839 } else { 846 } else {
840 printer->Print(variables_, 847 printer->Print(variables_,
841 "int rawValue = input.readEnum();\n" 848 "int rawValue = input.readEnum();\n"
842 "$type$ value = $type$.forNumber(rawValue);\n" 849 "$type$ value = $type$.$for_number$(rawValue);\n"
843 "if (value == null) {\n"); 850 "if (value == null) {\n");
844 if (PreserveUnknownFields(descriptor_->containing_type())) { 851 if (PreserveUnknownFields(descriptor_->containing_type())) {
845 printer->Print(variables_, 852 printer->Print(variables_,
846 " unknownFields.mergeVarintField($number$, rawValue);\n"); 853 " unknownFields.mergeVarintField($number$, rawValue);\n");
847 } 854 }
848 printer->Print(variables_, 855 printer->Print(variables_,
849 "} else {\n" 856 "} else {\n"
850 " if (!$get_mutable_bit_parser$) {\n" 857 " if (!$get_mutable_bit_parser$) {\n"
851 " $name$_ = new java.util.ArrayList<java.lang.Integer>();\n" 858 " $name$_ = new java.util.ArrayList<java.lang.Integer>();\n"
852 " $set_mutable_bit_parser$;\n" 859 " $set_mutable_bit_parser$;\n"
(...skipping 27 matching lines...) Expand all
880 "if ($get_mutable_bit_parser$) {\n" 887 "if ($get_mutable_bit_parser$) {\n"
881 " $name$_ = java.util.Collections.unmodifiableList($name$_);\n" 888 " $name$_ = java.util.Collections.unmodifiableList($name$_);\n"
882 "}\n"); 889 "}\n");
883 } 890 }
884 891
885 void RepeatedImmutableEnumFieldGenerator:: 892 void RepeatedImmutableEnumFieldGenerator::
886 GenerateSerializationCode(io::Printer* printer) const { 893 GenerateSerializationCode(io::Printer* printer) const {
887 if (descriptor_->is_packed()) { 894 if (descriptor_->is_packed()) {
888 printer->Print(variables_, 895 printer->Print(variables_,
889 "if (get$capitalized_name$List().size() > 0) {\n" 896 "if (get$capitalized_name$List().size() > 0) {\n"
890 " output.writeRawVarint32($tag$);\n" 897 " output.writeUInt32NoTag($tag$);\n"
891 " output.writeRawVarint32($name$MemoizedSerializedSize);\n" 898 " output.writeUInt32NoTag($name$MemoizedSerializedSize);\n"
892 "}\n" 899 "}\n"
893 "for (int i = 0; i < $name$_.size(); i++) {\n" 900 "for (int i = 0; i < $name$_.size(); i++) {\n"
894 " output.writeEnumNoTag($name$_.get(i));\n" 901 " output.writeEnumNoTag($name$_.get(i));\n"
895 "}\n"); 902 "}\n");
896 } else { 903 } else {
897 printer->Print(variables_, 904 printer->Print(variables_,
898 "for (int i = 0; i < $name$_.size(); i++) {\n" 905 "for (int i = 0; i < $name$_.size(); i++) {\n"
899 " output.writeEnum($number$, $name$_.get(i));\n" 906 " output.writeEnum($number$, $name$_.get(i));\n"
900 "}\n"); 907 "}\n");
901 } 908 }
(...skipping 11 matching lines...) Expand all
913 " dataSize += com.google.protobuf.CodedOutputStream\n" 920 " dataSize += com.google.protobuf.CodedOutputStream\n"
914 " .computeEnumSizeNoTag($name$_.get(i));\n" 921 " .computeEnumSizeNoTag($name$_.get(i));\n"
915 "}\n"); 922 "}\n");
916 printer->Print( 923 printer->Print(
917 "size += dataSize;\n"); 924 "size += dataSize;\n");
918 if (descriptor_->is_packed()) { 925 if (descriptor_->is_packed()) {
919 printer->Print(variables_, 926 printer->Print(variables_,
920 "if (!get$capitalized_name$List().isEmpty()) {" 927 "if (!get$capitalized_name$List().isEmpty()) {"
921 " size += $tag_size$;\n" 928 " size += $tag_size$;\n"
922 " size += com.google.protobuf.CodedOutputStream\n" 929 " size += com.google.protobuf.CodedOutputStream\n"
923 " .computeRawVarint32Size(dataSize);\n" 930 " .computeUInt32SizeNoTag(dataSize);\n"
924 "}"); 931 "}");
925 } else { 932 } else {
926 printer->Print(variables_, 933 printer->Print(variables_,
927 "size += $tag_size$ * $name$_.size();\n"); 934 "size += $tag_size$ * $name$_.size();\n");
928 } 935 }
929 936
930 // cache the data size for packed fields. 937 // cache the data size for packed fields.
931 if (descriptor_->is_packed()) { 938 if (descriptor_->is_packed()) {
932 printer->Print(variables_, 939 printer->Print(variables_,
933 "$name$MemoizedSerializedSize = dataSize;\n"); 940 "$name$MemoizedSerializedSize = dataSize;\n");
(...skipping 19 matching lines...) Expand all
953 } 960 }
954 961
955 string RepeatedImmutableEnumFieldGenerator::GetBoxedType() const { 962 string RepeatedImmutableEnumFieldGenerator::GetBoxedType() const {
956 return name_resolver_->GetImmutableClassName(descriptor_->enum_type()); 963 return name_resolver_->GetImmutableClassName(descriptor_->enum_type());
957 } 964 }
958 965
959 } // namespace java 966 } // namespace java
960 } // namespace compiler 967 } // namespace compiler
961 } // namespace protobuf 968 } // namespace protobuf
962 } // namespace google 969 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698