diff options
author | Max Cai <maxtroy@google.com> | 2013-10-16 18:02:22 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-10-16 18:02:22 +0000 |
commit | 461d4ac87a5a6dee584da0c8451cdaae253f3873 (patch) | |
tree | 8c1814b47c7f8838295c60ef894e429bcda8b376 /src/google | |
parent | 10040938289f723102c2e3d4823623c4d6cd016a (diff) | |
parent | fba329d6d51220f9e70c0c24919a84379772d5c0 (diff) | |
download | protobuf-461d4ac87a5a6dee584da0c8451cdaae253f3873.tar.gz protobuf-461d4ac87a5a6dee584da0c8451cdaae253f3873.tar.bz2 protobuf-461d4ac87a5a6dee584da0c8451cdaae253f3873.zip |
Merge "Feature request: set() and clear() accessors return this"
Diffstat (limited to 'src/google')
3 files changed, 27 insertions, 17 deletions
diff --git a/src/google/protobuf/compiler/javanano/javanano_enum_field.cc b/src/google/protobuf/compiler/javanano/javanano_enum_field.cc index 43661617..3c4b9789 100644 --- a/src/google/protobuf/compiler/javanano/javanano_enum_field.cc +++ b/src/google/protobuf/compiler/javanano/javanano_enum_field.cc @@ -182,16 +182,18 @@ GenerateMembers(io::Printer* printer) const { "public int get$capitalized_name$() {\n" " return $name$_;\n" "}\n" - "public void set$capitalized_name$(int value) {\n" + "public $message_name$ set$capitalized_name$(int value) {\n" " $name$_ = value;\n" " $set_has$;\n" + " return this;\n" "}\n" "public boolean has$capitalized_name$() {\n" " return $get_has$;\n" "}\n" - "public void clear$capitalized_name$() {\n" + "public $message_name$ clear$capitalized_name$() {\n" " $name$_ = $default$;\n" " $clear_has$;\n" + " return this;\n" "}\n"); } @@ -204,13 +206,14 @@ GenerateClearCode(io::Printer* printer) const { void AccessorEnumFieldGenerator:: GenerateMergingCode(io::Printer* printer) const { printer->Print(variables_, - "set$capitalized_name$(input.readInt32());\n"); + "$name$_ = input.readInt32();\n" + "$set_has$;\n"); } void AccessorEnumFieldGenerator:: GenerateSerializationCode(io::Printer* printer) const { printer->Print(variables_, - "if (has$capitalized_name$()) {\n" + "if ($get_has$) {\n" " output.writeInt32($number$, $name$_);\n" "}\n"); } @@ -218,7 +221,7 @@ GenerateSerializationCode(io::Printer* printer) const { void AccessorEnumFieldGenerator:: GenerateSerializedSizeCode(io::Printer* printer) const { printer->Print(variables_, - "if (has$capitalized_name$()) {\n" + "if ($get_has$) {\n" " size += com.google.protobuf.nano.CodedOutputByteBufferNano\n" " .computeInt32Size($number$, $name$_);\n" "}\n"); diff --git a/src/google/protobuf/compiler/javanano/javanano_message_field.cc b/src/google/protobuf/compiler/javanano/javanano_message_field.cc index 225cf42c..02253f97 100644 --- a/src/google/protobuf/compiler/javanano/javanano_message_field.cc +++ b/src/google/protobuf/compiler/javanano/javanano_message_field.cc @@ -148,17 +148,19 @@ GenerateMembers(io::Printer* printer) const { "public $type$ get$capitalized_name$() {\n" " return $name$_;\n" "}\n" - "public void set$capitalized_name$($type$ value) {\n" + "public $message_name$ set$capitalized_name$($type$ value) {\n" " if (value == null) {\n" " throw new java.lang.NullPointerException();\n" " }\n" " $name$_ = value;\n" + " return this;\n" "}\n" "public boolean has$capitalized_name$() {\n" " return $name$_ != null;\n" "}\n" - "public void clear$capitalized_name$() {\n" + "public $message_name$ clear$capitalized_name$() {\n" " $name$_ = null;\n" + " return this;" "}\n"); } @@ -171,8 +173,8 @@ GenerateClearCode(io::Printer* printer) const { void AccessorMessageFieldGenerator:: GenerateMergingCode(io::Printer* printer) const { printer->Print(variables_, - "if (!has$capitalized_name$()) {\n" - " set$capitalized_name$(new $type$());\n" + "if ($name$_ == null) {\n" + " $name$_ = new $type$();\n" "}\n"); if (descriptor_->type() == FieldDescriptor::TYPE_GROUP) { @@ -187,7 +189,7 @@ GenerateMergingCode(io::Printer* printer) const { void AccessorMessageFieldGenerator:: GenerateSerializationCode(io::Printer* printer) const { printer->Print(variables_, - "if (has$capitalized_name$()) {\n" + "if ($name$_ != null) {\n" " output.write$group_or_message$($number$, $name$_);\n" "}\n"); } @@ -195,7 +197,7 @@ GenerateSerializationCode(io::Printer* printer) const { void AccessorMessageFieldGenerator:: GenerateSerializedSizeCode(io::Printer* printer) const { printer->Print(variables_, - "if (has$capitalized_name$()) {\n" + "if ($name$_ != null) {\n" " size += com.google.protobuf.nano.CodedOutputByteBufferNano\n" " .compute$group_or_message$Size($number$, $name$_);\n" "}\n"); diff --git a/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc b/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc index 0562a6e0..0f7512a2 100644 --- a/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc +++ b/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc @@ -431,21 +431,25 @@ GenerateMembers(io::Printer* printer) const { "public $type$ get$capitalized_name$() {\n" " return $name$_;\n" "}\n" - "public void set$capitalized_name$($type$ value) {\n"); + "public $message_name$ set$capitalized_name$($type$ value) {\n"); if (IsReferenceType(GetJavaType(descriptor_))) { printer->Print(variables_, - " if (value == null) throw new java.lang.NullPointerException();\n"); + " if (value == null) {\n" + " throw new java.lang.NullPointerException();\n" + " }\n"); } printer->Print(variables_, " $name$_ = value;\n" " $set_has$;\n" + " return this;\n" "}\n" "public boolean has$capitalized_name$() {\n" " return $get_has$;\n" "}\n" - "public void clear$capitalized_name$() {\n" + "public $message_name$ clear$capitalized_name$() {\n" " $name$_ = $default_copy_if_needed$;\n" " $clear_has$;\n" + " return this;\n" "}\n"); } @@ -458,13 +462,14 @@ GenerateClearCode(io::Printer* printer) const { void AccessorPrimitiveFieldGenerator:: GenerateMergingCode(io::Printer* printer) const { printer->Print(variables_, - "set$capitalized_name$(input.read$capitalized_type$());\n"); + "$name$_ = input.read$capitalized_type$();\n" + "$set_has$;\n"); } void AccessorPrimitiveFieldGenerator:: GenerateSerializationCode(io::Printer* printer) const { printer->Print(variables_, - "if (has$capitalized_name$()) {\n" + "if ($get_has$) {\n" " output.write$capitalized_type$($number$, $name$_);\n" "}\n"); } @@ -472,7 +477,7 @@ GenerateSerializationCode(io::Printer* printer) const { void AccessorPrimitiveFieldGenerator:: GenerateSerializedSizeCode(io::Printer* printer) const { printer->Print(variables_, - "if (has$capitalized_name$()) {\n" + "if ($get_has$) {\n" " size += com.google.protobuf.nano.CodedOutputByteBufferNano\n" " .compute$capitalized_type$Size($number$, $name$_);\n" "}\n"); |