From: David Reiss Date: Mon, 14 Jul 2008 19:35:50 +0000 (+0000) Subject: java: Add nocamel option to not CamelCase field accessors [THRIFT-42] X-Git-Tag: 0.2.0~471 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=70e329f0b8ed79df2c7b1de0366a8841eeeabd85;p=common%2Fthrift.git java: Add nocamel option to not CamelCase field accessors [THRIFT-42] git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@676699 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 0c0f2871..37af482c 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -35,6 +35,9 @@ class t_java_generator : public t_oop_generator { iter = parsed_options.find("beans"); bean_style_ = (iter != parsed_options.end()); + iter = parsed_options.find("nocamel"); + nocamel_style_ = (iter != parsed_options.end()); + iter = parsed_options.find("hashcode"); gen_hash_code_ = (iter != parsed_options.end()); @@ -179,6 +182,7 @@ class t_java_generator : public t_oop_generator { std::string package_dir_; bool bean_style_; + bool nocamel_style_; bool gen_hash_code_; }; @@ -391,7 +395,11 @@ void t_java_generator::print_const_value(std::ofstream& out, string name, t_type indent(out) << name << "."; if (bean_style_) { std::string cap_name = v_iter->first->get_string(); - cap_name[0] = toupper(cap_name[0]); + if (nocamel_style_) { + cap_name = "_" + cap_name; + } else { + cap_name[0] = toupper(cap_name[0]); + } out << "set" << cap_name << "(" << val << ")"; } else { out << v_iter->first->get_string() << " = " << val; @@ -1033,7 +1041,11 @@ void t_java_generator::generate_java_bean_boilerplate(ofstream& out, t_type* type = get_true_type(field->get_type()); std::string field_name = field->get_name(); std::string cap_name = field_name; - cap_name[0] = toupper(cap_name[0]); + if (nocamel_style_) { + cap_name = "_" + cap_name; + } else { + cap_name[0] = toupper(cap_name[0]); + } if (type->is_container()) { // Method to return the size of the collection @@ -2352,5 +2364,6 @@ void t_java_generator::generate_java_doc(ofstream &out, THRIFT_REGISTER_GENERATOR(java, "Java", " beans: Generate bean-style output files.\n" +" nocamel: Do not use CamelCase field accessors with beans.\n" " hashcode: Generate quality hashCode methods.\n" );