Skip to content

Commit f2955f8

Browse files
compiler/cpp/src/generate/t_json_generator: Output the legacyNames in the json file
1 parent cb17f26 commit f2955f8

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

compiler/cpp/src/generate/t_json_generator.cc

+23
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ class t_json_generator : public t_generator {
120120
void write_type_spec(t_type* ttype);
121121
void write_string(const string& value);
122122
void write_value(t_type* tvalue);
123+
void write_legacy_names(t_type* ttype);
123124
void write_const_value(t_const_value* value, bool force_string = false);
124125
void write_key_and(string key);
125126
void write_key_and_string(string key, string val);
@@ -571,6 +572,22 @@ void t_json_generator::generate_enum(t_enum* tenum) {
571572
end_object();
572573
}
573574

575+
void t_json_generator::write_legacy_names(t_type* ttype) {
576+
start_array();
577+
vector<t_name*> names = ttype->get_legacy_names();
578+
579+
for (vector<t_name*>::iterator it = names.begin(); it != names.end(); ++it) {
580+
write_comma_if_needed();
581+
start_object();
582+
write_key_and_string("namespace", (*it)->get_namespace());
583+
write_key_and_string("name", (*it)->get_name());
584+
end_object();
585+
indicate_comma_needed();
586+
}
587+
588+
end_array();
589+
}
590+
574591
void t_json_generator::generate_struct(t_struct* tstruct) {
575592
start_object();
576593

@@ -584,6 +601,9 @@ void t_json_generator::generate_struct(t_struct* tstruct) {
584601

585602
write_key_and_bool("isUnion", tstruct->is_union());
586603

604+
write_key_and("legacyNames");
605+
write_legacy_names((t_type*)tstruct);
606+
587607
write_key_and("fields");
588608
start_array();
589609
vector<t_field*> members = tstruct->get_members();
@@ -611,6 +631,9 @@ void t_json_generator::generate_service(t_service* tservice) {
611631
write_key_and_string("doc", tservice->get_doc());
612632
}
613633

634+
write_key_and("legacyNames");
635+
write_legacy_names((t_type*)tservice);
636+
614637
write_key_and("functions");
615638
start_array();
616639
vector<t_function*> functions = tservice->get_functions();

0 commit comments

Comments
 (0)