Author: bryanduxbury
Date: Fri Mar 13 18:28:40 2009
New Revision: 753337
URL: http://svn.apache.org/viewvc?rev=753337&view=rev
Log:
THRIFT-368. java: setFieldValue should allow nulls for all field types
After this patch, setFieldValue will treat a set with a null as an unset.
Modified:
incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
Modified: incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
URL:
http://svn.apache.org/viewvc/incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc?rev=753337&r1=753336&r2=753337&view=diff
==============================================================================
--- incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
(original)
+++ incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc Fri
Mar 13 18:28:40 2009
@@ -1194,8 +1194,11 @@
void t_java_generator::generate_reflection_setters(ostringstream& out, t_type*
type, string field_name, string cap_name) {
indent(out) << "case " << upcase_string(field_name) << ":" << endl;
indent_up();
-
- indent(out) << "set" << cap_name << "((" << type_name(type, true, false) <<
")value);" << endl;
+ indent(out) << "if (value == null) {" << endl;
+ indent(out) << " unset" << get_cap_name(field_name) << "();" << endl;
+ indent(out) << "} else {" << endl;
+ indent(out) << " set" << cap_name << "((" << type_name(type, true, false)
<< ")value);" << endl;
+ indent(out) << "}" << endl;
indent(out) << "break;" << endl << endl;
indent_down();