THRIFT-3719: Dart generator should use lowerCamelCase for service names
Client: Dart
Patch: Mark Erickson
This closes #932
diff --git a/compiler/cpp/src/generate/t_dart_generator.cc b/compiler/cpp/src/generate/t_dart_generator.cc
index 1bd2ce6..2931447 100644
--- a/compiler/cpp/src/generate/t_dart_generator.cc
+++ b/compiler/cpp/src/generate/t_dart_generator.cc
@@ -176,11 +176,11 @@
void generate_function_helpers(t_function* tfunction);
std::string get_cap_name(std::string name);
- std::string get_field_name(std::string name);
+ std::string get_member_name(std::string name);
std::string get_args_class_name(std::string name);
std::string get_result_class_name(std::string name);
std::string get_file_name(std::string name);
- std::string get_class_name(std::string name);
+ std::string get_constants_class_name(std::string name);
std::string generate_isset_check(t_field* field);
std::string generate_isset_check(std::string field);
void generate_isset_set(ofstream& out, t_field* field);
@@ -535,7 +535,7 @@
return;
}
- string class_name = get_class_name(program_name_) + "Constants";
+ string class_name = get_constants_class_name(program_name_);
string file_name = get_file_name(class_name);
string f_consts_name = src_dir_ + "/" + file_name + ".dart";
@@ -799,7 +799,7 @@
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
generate_dart_doc(out, *m_iter);
indent(out) << type_name((*m_iter)->get_type()) + " _"
- << get_field_name((*m_iter)->get_name()) << ";" << endl;
+ << get_member_name((*m_iter)->get_name()) << ";" << endl;
indent(out) << "static const int " << upcase_string((*m_iter)->get_name())
<< " = " << (*m_iter)->get_key() << ";" << endl;
@@ -811,7 +811,7 @@
if (members.size() > 0) {
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
if (!type_can_be_null((*m_iter)->get_type())) {
- string field_name = get_field_name((*m_iter)->get_name());
+ string field_name = get_member_name((*m_iter)->get_name());
indent(out) << "bool __isset_" << field_name << " = false;" << endl;
}
}
@@ -826,7 +826,7 @@
t_type* t = get_true_type((*m_iter)->get_type());
if ((*m_iter)->get_value() != NULL) {
print_const_value(out,
- "this." + get_field_name((*m_iter)->get_name()),
+ "this." + get_member_name((*m_iter)->get_name()),
t,
(*m_iter)->get_value(),
true,
@@ -928,7 +928,7 @@
"checked in the validate method" << endl;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
if ((*f_iter)->get_req() == t_field::T_REQUIRED && !type_can_be_null((*f_iter)->get_type())) {
- string field_name = get_field_name((*f_iter)->get_name());
+ string field_name = get_member_name((*f_iter)->get_name());
indent(out) << "if (!__isset_" << field_name << ")";
scope_up(out);
indent(out) << " throw new TProtocolError(TProtocolErrorType.UNKNOWN, \"Required field '"
@@ -956,7 +956,7 @@
indent(out) << "// check for required fields" << endl;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
if ((*f_iter)->get_req() == t_field::T_REQUIRED) {
- string field_name = get_field_name((*f_iter)->get_name());
+ string field_name = get_member_name((*f_iter)->get_name());
if (type_can_be_null((*f_iter)->get_type())) {
indent(out) << "if (" << field_name << " == null)";
scope_up(out);
@@ -978,7 +978,7 @@
t_type* type = field->get_type();
// if field is an enum, check that its value is valid
if (type->is_enum()) {
- string field_name = get_field_name(field->get_name());
+ string field_name = get_member_name(field->get_name());
indent(out) << "if (" << generate_isset_check(field) << " && !" << get_ttype_class_name(type)
<< ".VALID_VALUES.contains(" << field_name << "))";
scope_up(out);
@@ -1001,7 +1001,6 @@
out << indent() << "write(TProtocol oprot)";
scope_up(out);
- string name = tstruct->get_name();
const vector<t_field*>& fields = tstruct->get_sorted_members();
vector<t_field*>::const_iterator f_iter;
@@ -1011,7 +1010,7 @@
indent(out) << "oprot.writeStructBegin(_STRUCT_DESC);" << endl;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
- string field_name = get_field_name((*f_iter)->get_name());
+ string field_name = get_member_name((*f_iter)->get_name());
bool could_be_unset = (*f_iter)->get_req() == t_field::T_OPTIONAL;
if (could_be_unset) {
indent(out) << "if (" << generate_isset_check(*f_iter) << ")";
@@ -1058,7 +1057,6 @@
indent(out) << "write(TProtocol oprot)";
scope_up(out);
- string name = tstruct->get_name();
const vector<t_field*>& fields = tstruct->get_sorted_members();
vector<t_field*>::const_iterator f_iter;
@@ -1109,7 +1107,7 @@
vector<t_field*>::const_iterator f_iter;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
t_field* field = *f_iter;
- std::string field_name = get_field_name(field->get_name());
+ std::string field_name = get_member_name(field->get_name());
indent(out) << "case " << upcase_string(field_name) << ":" << endl;
indent_up();
@@ -1141,7 +1139,7 @@
vector<t_field*>::const_iterator f_iter;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
t_field* field = *f_iter;
- std::string field_name = get_field_name(field->get_name());
+ std::string field_name = get_member_name(field->get_name());
indent(out) << "case " << upcase_string(field_name) << ":" << endl;
indent_up();
@@ -1214,7 +1212,7 @@
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
t_field* field = *f_iter;
t_type* type = get_true_type(field->get_type());
- std::string field_name = get_field_name(field->get_name());
+ std::string field_name = get_member_name(field->get_name());
std::string cap_name = get_cap_name(field_name);
indent(out) << "// " << field_name << endl;
@@ -1276,7 +1274,7 @@
}
t_field* field = (*f_iter);
- std::string field_name = get_field_name(field->get_name());
+ std::string field_name = get_member_name(field->get_name());
if (!first) {
indent(out) << "ret.write(\", \");" << endl;
@@ -1494,8 +1492,6 @@
vector<t_function*> functions = tservice->get_functions();
vector<t_function*>::const_iterator f_iter;
for (f_iter = functions.begin(); f_iter != functions.end(); ++f_iter) {
- string funname = (*f_iter)->get_name();
-
// Open function
indent(f_service_) << function_signature(*f_iter) << " async";
scope_up(f_service_);
@@ -1508,13 +1504,13 @@
const vector<t_field*>& fields = arg_struct->get_members();
// Serialize the request
- indent(f_service_) << "oprot.writeMessageBegin(new TMessage(\"" << funname << "\", "
+ indent(f_service_) << "oprot.writeMessageBegin(new TMessage(\"" << (*f_iter)->get_name() << "\", "
<< ((*f_iter)->is_oneway() ? "TMessageType.ONEWAY" : "TMessageType.CALL")
<< ", nextSeqid()));" << endl;
indent(f_service_) << argsname << " args = new " << argsname << "();" << endl;
for (fld_iter = fields.begin(); fld_iter != fields.end(); ++fld_iter) {
- string arg_field_name = get_field_name((*fld_iter)->get_name());
+ string arg_field_name = get_member_name((*fld_iter)->get_name());
indent(f_service_) << "args." << arg_field_name << " = "
<< arg_field_name << ";" << endl;
}
@@ -1550,7 +1546,7 @@
const std::vector<t_field*>& xceptions = xs->get_members();
vector<t_field*>::const_iterator x_iter;
for (x_iter = xceptions.begin(); x_iter != xceptions.end(); ++x_iter) {
- string result_field_name = get_field_name((*x_iter)->get_name());
+ string result_field_name = get_member_name((*x_iter)->get_name());
indent(f_service_) << "if (result." << result_field_name << " != null)";
scope_up(f_service_);
indent(f_service_) << "throw result." << result_field_name << ";" << endl;
@@ -1614,7 +1610,7 @@
for (f_iter = functions.begin(); f_iter != functions.end(); ++f_iter) {
indent(f_service_) << "PROCESS_MAP[\"" << (*f_iter)->get_name()
- << "\"] = " << (*f_iter)->get_name() << ";" << endl;
+ << "\"] = " << get_member_name((*f_iter)->get_name()) << ";" << endl;
}
scope_down(f_service_, endl2);
@@ -1691,7 +1687,7 @@
bool await_result = (!tfunction->is_oneway() && !tfunction->get_returntype()->is_void());
- indent(f_service_) << tfunction->get_name() << "(int seqid, TProtocol iprot, TProtocol oprot)";
+ indent(f_service_) << get_member_name(tfunction->get_name()) << "(int seqid, TProtocol iprot, TProtocol oprot)";
if (await_result) {
f_service_ << " async";
}
@@ -1726,7 +1722,7 @@
if (await_result) {
f_service_ << "result.success = await ";
}
- f_service_ << "iface_." << tfunction->get_name() << "(";
+ f_service_ << "iface_." << get_member_name(tfunction->get_name()) << "(";
bool first = true;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
if (first) {
@@ -1734,13 +1730,13 @@
} else {
f_service_ << ", ";
}
- f_service_ << "args." << get_field_name((*f_iter)->get_name());
+ f_service_ << "args." << get_member_name((*f_iter)->get_name());
}
f_service_ << ");" << endl;
if (!tfunction->is_oneway() && xceptions.size() > 0) {
for (x_iter = xceptions.begin(); x_iter != xceptions.end(); ++x_iter) {
- string result_field_name = get_field_name((*x_iter)->get_name());
+ string result_field_name = get_member_name((*x_iter)->get_name());
scope_down(f_service_, "");
f_service_ << " on " << type_name((*x_iter)->get_type())
<< " catch(" << result_field_name << ")";
@@ -1787,7 +1783,7 @@
*/
void t_dart_generator::generate_deserialize_field(ofstream& out, t_field* tfield, string prefix) {
t_type* type = get_true_type(tfield->get_type());
- string field_name = get_field_name(tfield->get_name());
+ string field_name = get_member_name(tfield->get_name());
if (type->is_void()) {
throw "CANNOT GENERATE DESERIALIZE CODE FOR void TYPE: " + prefix + field_name;
@@ -1969,7 +1965,7 @@
*/
void t_dart_generator::generate_serialize_field(ofstream& out, t_field* tfield, string prefix) {
t_type* type = get_true_type(tfield->get_type());
- string field_name = get_field_name(tfield->get_name());
+ string field_name = get_member_name(tfield->get_name());
// Do nothing for void types
if (type->is_void()) {
@@ -2190,7 +2186,7 @@
* @param ttype The type
*/
string t_dart_generator::declare_field(t_field* tfield, bool init) {
- string field_name = get_field_name(tfield->get_name());
+ string field_name = get_member_name(tfield->get_name());
string result = type_name(tfield->get_type()) + " " + field_name;
if (init) {
t_type* ttype = get_true_type(tfield->get_type());
@@ -2247,7 +2243,8 @@
returntype = "Future<" + type_name(tfunction->get_returntype()) + ">";
}
- std::string result = returntype + " " + tfunction->get_name() + "(" + arguments + ")";
+ std::string result = returntype + " " + get_member_name(tfunction->get_name()) +
+ "(" + arguments + ")";
return result;
}
@@ -2266,7 +2263,7 @@
} else {
result += ", ";
}
- string field_name = get_field_name((*f_iter)->get_name());
+ string field_name = get_member_name((*f_iter)->get_name());
result += type_name((*f_iter)->get_type()) + " " + field_name;
}
return result;
@@ -2318,7 +2315,7 @@
return name;
}
-std::string t_dart_generator::get_field_name(std::string name) {
+std::string t_dart_generator::get_member_name(std::string name) {
name[0] = tolower(name[0]);
return name;
}
@@ -2361,8 +2358,8 @@
return ret;
}
-std::string t_dart_generator::get_class_name(std::string name) {
- // e.g. change my_great_model to MyGreatModel
+std::string t_dart_generator::get_constants_class_name(std::string name) {
+ // e.g. change my_great_model to MyGreatModelConstants
string ret;
const char* tmp = name.c_str();
bool is_prev_underscore = true;
@@ -2381,7 +2378,7 @@
}
}
- return ret;
+ return ret + "Constants";
}
string t_dart_generator::constant_name(string name) {
@@ -2426,7 +2423,7 @@
vector<t_field*>::const_iterator p_iter;
for (p_iter = fields.begin(); p_iter != fields.end(); ++p_iter) {
t_field* p = *p_iter;
- string field_name = get_field_name(p->get_name());
+ string field_name = get_member_name(p->get_name());
ss << "\n@param " << field_name;
if (p->has_doc()) {
ss << " " << p->get_doc();
@@ -2437,7 +2434,7 @@
}
std::string t_dart_generator::generate_isset_check(t_field* field) {
- string field_name = get_field_name(field->get_name());
+ string field_name = get_member_name(field->get_name());
return generate_isset_check(field_name);
}
@@ -2447,7 +2444,7 @@
void t_dart_generator::generate_isset_set(ofstream& out, t_field* field) {
if (!type_can_be_null(field->get_type())) {
- string field_name = get_field_name(field->get_name());
+ string field_name = get_member_name(field->get_name());
indent(out) << "this.__isset_" << field_name << " = true;" << endl;
}
}