Make the Java generator respect the optional keyword in struct writers
Reviewed By: dreiss
Test Plan: Generate Java code. Check functionality and safe compile
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665308 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index ea27854..0bfab75 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -566,6 +566,11 @@
indent() << "if (this." << (*f_iter)->get_name() << " != null) {" << endl;
indent_up();
}
+ bool optional = bean_style_ && (*f_iter)->get_req() == t_field::OPTIONAL;
+ if (optional) {
+ out <<
+ indent() << "if (this.__isset." << (*f_iter)->get_name() << ") {" << endl;
+ }
out <<
indent() << "field.name = \"" << (*f_iter)->get_name() << "\";" << endl <<
@@ -580,6 +585,10 @@
indent(out) <<
"oprot.writeFieldEnd();" << endl;
+ if (optional) {
+ indent_down();
+ indent(out) << "}" << endl;
+ }
if (null_allowed) {
indent_down();
indent(out) << "}" << endl;