Prechádzať zdrojové kódy

Equals for message oneof field in nano.

Jisi Liu 10 rokov pred
rodič
commit
06a2e29855

+ 10 - 0
src/google/protobuf/compiler/javanano/javanano_message_field.cc

@@ -214,6 +214,16 @@ GenerateSerializedSizeCode(io::Printer* printer) const {
 
 void MessageOneofFieldGenerator::
 GenerateEqualsCode(io::Printer* printer) const {
+  printer->Print(variables_,
+    "if (this.has$capitalized_name$()) {\n"
+    "  if (!this.$oneof_name$_.equals(other.$oneof_name$_)) {\n"
+    "    return false;\n"
+    "  }\n"
+    "} else {\n"
+    "  if (other.has$capitalized_name$()) {\n"
+    "    return false;\n"
+    "  }\n"
+    "}\n");
 }
 
 void MessageOneofFieldGenerator::