Fix Java generator for javabean target to construct maps and lists properly
authorMark Slee <mcslee@apache.org>
Wed, 13 Feb 2008 22:03:15 +0000 (22:03 +0000)
committerMark Slee <mcslee@apache.org>
Wed, 13 Feb 2008 22:03:15 +0000 (22:03 +0000)
Summary: From Johann Oskarsson

Reviewed By: dreiss

Test Plan: Generate javabean code

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665476 13f79535-47bb-0310-9956-ffa450edef68

compiler/cpp/src/generate/t_java_generator.cc

index 0440222..ea91f66 100644 (file)
@@ -188,7 +188,7 @@ void t_java_generator::print_const_value(std::ofstream& out, string name, t_type
     vector<t_field*>::const_iterator f_iter;
     const map<t_const_value*, t_const_value*>& val = value->get_map();
     map<t_const_value*, t_const_value*>::const_iterator v_iter;
-    out << name << " = new " << type_name(type) << "();" << endl;
+    out << name << " = new " << type_name(type, false, true) << "();" << endl;
     if (!in_static) {
       indent(out) << "static {" << endl;
       indent_up();
@@ -213,7 +213,7 @@ void t_java_generator::print_const_value(std::ofstream& out, string name, t_type
     }
     out << endl;
   } else if (type->is_map()) {
-    out << name << " = new " << type_name(type, true, true) << "();" << endl;
+    out << name << " = new " << type_name(type, false, true) << "();" << endl;
     if (!in_static) {
       indent(out) << "static {" << endl;
       indent_up();
@@ -233,7 +233,7 @@ void t_java_generator::print_const_value(std::ofstream& out, string name, t_type
     }
     out << endl;
   } else if (type->is_list() || type->is_set()) {
-    out << name << " = new " << type_name(type) << "();" << endl;
+    out << name << " = new " << type_name(type, false, true) << "();" << endl;
     if (!in_static) {
       indent(out) << "static {" << endl;
       indent_up();
@@ -739,7 +739,7 @@ void t_java_generator::generate_java_bean_boilerplate(ofstream& out,
       indent_up();
       indent(out) << "if (this." << field_name << " == null) {" << endl;
       indent_up();
-      indent(out) << "this." << field_name << " = new " << type_name(type) <<
+      indent(out) << "this." << field_name << " = new " << type_name(type, false, true) <<
         "();" << endl;
       indent_down();
       indent(out) << "}" << endl;