You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2014/10/21 21:54:00 UTC

git commit: format: spaces instead of tabs

Repository: thrift
Updated Branches:
  refs/heads/master cb0754db1 -> d5c7a0f6f


format: spaces instead of tabs


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/d5c7a0f6
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/d5c7a0f6
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/d5c7a0f6

Branch: refs/heads/master
Commit: d5c7a0f6f7e20bd1cddf98e61a2d1173669206ae
Parents: cb0754d
Author: Roger Meier <ro...@apache.org>
Authored: Tue Oct 21 21:53:05 2014 +0200
Committer: Roger Meier <ro...@apache.org>
Committed: Tue Oct 21 21:53:05 2014 +0200

----------------------------------------------------------------------
 compiler/cpp/src/generate/t_json_generator.cc | 696 ++++++++++-----------
 1 file changed, 348 insertions(+), 348 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/d5c7a0f6/compiler/cpp/src/generate/t_json_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/generate/t_json_generator.cc b/compiler/cpp/src/generate/t_json_generator.cc
index 794e69e..14a2f89 100644
--- a/compiler/cpp/src/generate/t_json_generator.cc
+++ b/compiler/cpp/src/generate/t_json_generator.cc
@@ -45,429 +45,429 @@ static const string quot = "\"";
 
 class t_json_generator : public t_generator {
 public:
-	t_json_generator(
-		t_program* program,
-		const std::map<std::string, std::string>& parsed_options,
-		const std::string& option_string)
-		: t_generator(program)
-	{
-		out_dir_base_ = "gen-json";
-	}
-
-	virtual ~t_json_generator() {}
-
-	/**
-	* Init and close methods
-	*/
-
-	void init_generator();
-	void close_generator();
-
-	void generate_typedef(t_typedef* ttypedef);
-	void generate_enum(t_enum* tenum);
-	void generate_program();
-	void generate_consts(vector<t_const*>);
-	void generate_function(t_function * tfunc);
-	void generate_field(t_field * field);
-
-	void generate_service(t_service* tservice);
-	void generate_struct(t_struct* tstruct);
+  t_json_generator(
+    t_program* program,
+    const std::map<std::string, std::string>& parsed_options,
+    const std::string& option_string)
+    : t_generator(program)
+  {
+    out_dir_base_ = "gen-json";
+  }
+
+  virtual ~t_json_generator() {}
+
+  /**
+  * Init and close methods
+  */
+
+  void init_generator();
+  void close_generator();
+
+  void generate_typedef(t_typedef* ttypedef);
+  void generate_enum(t_enum* tenum);
+  void generate_program();
+  void generate_consts(vector<t_const*>);
+  void generate_function(t_function * tfunc);
+  void generate_field(t_field * field);
+
+  void generate_service(t_service* tservice);
+  void generate_struct(t_struct* tstruct);
 
 private:
-	std::ofstream f_json_;
-	std::stack<bool> _commaNeeded;
-	string get_type_name(t_type* type);
-	string get_const_value(t_const_value* val);
-
-	void start_object();
-	void start_array();
-	void write_key(string key, string val);
-	void write_key_int(string key, int val);
-	void end_object(bool newLine);
-	void end_array(bool newLine);
-	void write_comma_if_needed();
-	void indicate_comma_needed();
-	string escapeJsonString(const string& input);
-
-	void merge_includes(t_program*);
+  std::ofstream f_json_;
+  std::stack<bool> _commaNeeded;
+  string get_type_name(t_type* type);
+  string get_const_value(t_const_value* val);
+
+  void start_object();
+  void start_array();
+  void write_key(string key, string val);
+  void write_key_int(string key, int val);
+  void end_object(bool newLine);
+  void end_array(bool newLine);
+  void write_comma_if_needed();
+  void indicate_comma_needed();
+  string escapeJsonString(const string& input);
+
+  void merge_includes(t_program*);
 };
 
 void t_json_generator::init_generator() {
-	MKDIR(get_out_dir().c_str());
+  MKDIR(get_out_dir().c_str());
 
-	string f_json_name = get_out_dir() + program_->get_name() + ".json";
-	f_json_.open(f_json_name.c_str());
+  string f_json_name = get_out_dir() + program_->get_name() + ".json";
+  f_json_.open(f_json_name.c_str());
 
-	//Merge all included programs into this one so we can output one big file.
-	merge_includes(program_);
+  //Merge all included programs into this one so we can output one big file.
+  merge_includes(program_);
 }
 
 string t_json_generator::escapeJsonString(const string& input) {
-	std::ostringstream ss;
-	for (std::string::const_iterator iter = input.begin(); iter != input.end(); iter++) {
-		switch (*iter) {
-		case '\\': ss << "\\\\"; break;
-		case '"': ss << "\\\""; break;
-		case '/': ss << "\\/"; break;
-		case '\b': ss << "\\b"; break;
-		case '\f': ss << "\\f"; break;
-		case '\n': ss << "\\n"; break;
-		case '\r': ss << "\\r"; break;
-		case '\t': ss << "\\t"; break;
-		default: ss << *iter; break;
-		}
-	}
-	return ss.str();
+  std::ostringstream ss;
+  for (std::string::const_iterator iter = input.begin(); iter != input.end(); iter++) {
+    switch (*iter) {
+    case '\\': ss << "\\\\"; break;
+    case '"': ss << "\\\""; break;
+    case '/': ss << "\\/"; break;
+    case '\b': ss << "\\b"; break;
+    case '\f': ss << "\\f"; break;
+    case '\n': ss << "\\n"; break;
+    case '\r': ss << "\\r"; break;
+    case '\t': ss << "\\t"; break;
+    default: ss << *iter; break;
+    }
+  }
+  return ss.str();
 }
 
 void t_json_generator::start_object(){
-	f_json_ << "{";
-	_commaNeeded.push(false);
+  f_json_ << "{";
+  _commaNeeded.push(false);
 }
 
 void t_json_generator::start_array(){
-	f_json_ << "[";
-	_commaNeeded.push(false);
+  f_json_ << "[";
+  _commaNeeded.push(false);
 }
 
 void t_json_generator::write_comma_if_needed(){
-	if (_commaNeeded.top()) f_json_ << ",";
+  if (_commaNeeded.top()) f_json_ << ",";
 }
 
 void t_json_generator::indicate_comma_needed(){
-	_commaNeeded.pop();
-	_commaNeeded.push(true);
+  _commaNeeded.pop();
+  _commaNeeded.push(true);
 }
 
 void t_json_generator::write_key(string key, string val){
-	write_comma_if_needed();
-	f_json_ << quot << key << quot << ":" << quot << escapeJsonString(val) << quot;
-	indicate_comma_needed();
+  write_comma_if_needed();
+  f_json_ << quot << key << quot << ":" << quot << escapeJsonString(val) << quot;
+  indicate_comma_needed();
 }
 
 void t_json_generator::write_key_int(string key, int val){
-	write_comma_if_needed();
-	f_json_ << quot << key << quot << ":" << quot << val << quot;
-	indicate_comma_needed();
+  write_comma_if_needed();
+  f_json_ << quot << key << quot << ":" << quot << val << quot;
+  indicate_comma_needed();
 }
 
 void t_json_generator::end_object(bool newLine){
-	f_json_ << "}";
-	if (newLine) f_json_ << endl;
-	_commaNeeded.pop();
+  f_json_ << "}";
+  if (newLine) f_json_ << endl;
+  _commaNeeded.pop();
 }
 
 void t_json_generator::end_array(bool newLine){
-	f_json_ << "]";
-	if (newLine) f_json_ << endl;
-	_commaNeeded.pop();
+  f_json_ << "]";
+  if (newLine) f_json_ << endl;
+  _commaNeeded.pop();
 }
 
 void t_json_generator::close_generator() {
-	f_json_.close();
+  f_json_.close();
 }
 
 void t_json_generator::merge_includes(t_program * program) {
-	vector<t_program*> includes = program->get_includes();
-	vector<t_program*>::iterator inc_iter;
-	for (inc_iter = includes.begin(); inc_iter != includes.end(); ++inc_iter){
-		t_program* include = *inc_iter;
-		//recurse in case we get crazy
-		merge_includes(include);
-		//merge enums
-		vector<t_enum*> enums = include->get_enums();
-		vector<t_enum*>::iterator en_iter;
-		for (en_iter = enums.begin(); en_iter != enums.end(); ++en_iter) {
-			program->add_enum(*en_iter);
-		}
-		//merge typedefs
-		vector<t_typedef*> typedefs = include->get_typedefs();
-		vector<t_typedef*>::iterator td_iter;
-		for (td_iter = typedefs.begin(); td_iter != typedefs.end(); ++td_iter) {
-			program->add_typedef(*td_iter);
-		}
-		//merge structs
-		vector<t_struct*> objects = include->get_objects();
-		vector<t_struct*>::iterator o_iter;
-		for (o_iter = objects.begin(); o_iter != objects.end(); ++o_iter) {
-			program->add_struct(*o_iter);
-		}
-		//merge constants
-		vector<t_const*> consts = include->get_consts();
-		vector<t_const*>::iterator c_iter;
-		for (c_iter = consts.begin(); c_iter != consts.end(); ++c_iter){
-			program->add_const(*c_iter);
-		}
-
-		// Generate services
-		vector<t_service*> services = include->get_services();
-		vector<t_service*>::iterator sv_iter;
-		for (sv_iter = services.begin(); sv_iter != services.end(); ++sv_iter) {
-			program->add_service(*sv_iter);
-		}
-	}
+  vector<t_program*> includes = program->get_includes();
+  vector<t_program*>::iterator inc_iter;
+  for (inc_iter = includes.begin(); inc_iter != includes.end(); ++inc_iter){
+    t_program* include = *inc_iter;
+    //recurse in case we get crazy
+    merge_includes(include);
+    //merge enums
+    vector<t_enum*> enums = include->get_enums();
+    vector<t_enum*>::iterator en_iter;
+    for (en_iter = enums.begin(); en_iter != enums.end(); ++en_iter) {
+      program->add_enum(*en_iter);
+    }
+    //merge typedefs
+    vector<t_typedef*> typedefs = include->get_typedefs();
+    vector<t_typedef*>::iterator td_iter;
+    for (td_iter = typedefs.begin(); td_iter != typedefs.end(); ++td_iter) {
+      program->add_typedef(*td_iter);
+    }
+    //merge structs
+    vector<t_struct*> objects = include->get_objects();
+    vector<t_struct*>::iterator o_iter;
+    for (o_iter = objects.begin(); o_iter != objects.end(); ++o_iter) {
+      program->add_struct(*o_iter);
+    }
+    //merge constants
+    vector<t_const*> consts = include->get_consts();
+    vector<t_const*>::iterator c_iter;
+    for (c_iter = consts.begin(); c_iter != consts.end(); ++c_iter){
+      program->add_const(*c_iter);
+    }
+
+    // Generate services
+    vector<t_service*> services = include->get_services();
+    vector<t_service*>::iterator sv_iter;
+    for (sv_iter = services.begin(); sv_iter != services.end(); ++sv_iter) {
+      program->add_service(*sv_iter);
+    }
+  }
 }
 
 void t_json_generator::generate_program() {
-	// Initialize the generator
-	init_generator();
-	start_object();
-
-	write_key("name", program_->get_name());
-	if (program_->has_doc()) write_key("doc", program_->get_doc());
-
-	// Generate enums
-	vector<t_enum*> enums = program_->get_enums();
-	vector<t_enum*>::iterator en_iter;
-	f_json_ << ",\"enums\":";
-	start_array();
-	f_json_ << endl;
-	for (en_iter = enums.begin(); en_iter != enums.end(); ++en_iter) {
-		write_comma_if_needed();
-		generate_enum(*en_iter);
-		indicate_comma_needed();
-	}
-	end_array(true);
-
-	// Generate typedefs
-	vector<t_typedef*> typedefs = program_->get_typedefs();
-	vector<t_typedef*>::iterator td_iter;
-	f_json_ << ",\"typedefs\":";
-	start_array();
-	f_json_ << endl;
-	for (td_iter = typedefs.begin(); td_iter != typedefs.end(); ++td_iter) {
-		write_comma_if_needed();
-		generate_typedef(*td_iter);
-		indicate_comma_needed();
-	}
-	end_array(true);
-
-	// Generate structs, exceptions, and unions in declared order
-	vector<t_struct*> objects = program_->get_objects();
-	vector<t_struct*>::iterator o_iter;
-	f_json_ << ",\"structs\":";
-	start_array();
-	f_json_ << endl;
-	for (o_iter = objects.begin(); o_iter != objects.end(); ++o_iter) {
-		write_comma_if_needed();
-		if ((*o_iter)->is_xception()) {
-			generate_xception(*o_iter);
-		}
-		else {
-			generate_struct(*o_iter);
-		}
-		indicate_comma_needed();
-	}
-	end_array(true);
-
-	// Generate constants
-	vector<t_const*> consts = program_->get_consts();
-	generate_consts(consts);
-
-	// Generate services
-	vector<t_service*> services = program_->get_services();
-	vector<t_service*>::iterator sv_iter;
-	f_json_ << ",\"services\":";
-	start_array();
-	f_json_ << endl;
-	for (sv_iter = services.begin(); sv_iter != services.end(); ++sv_iter) {
-		write_comma_if_needed();
-		service_name_ = get_service_name(*sv_iter);
-		generate_service(*sv_iter);
-		indicate_comma_needed();
-	}
-	end_array(false);
-	end_object(true);
-	// Close the generator
-	close_generator();
+  // Initialize the generator
+  init_generator();
+  start_object();
+
+  write_key("name", program_->get_name());
+  if (program_->has_doc()) write_key("doc", program_->get_doc());
+
+  // Generate enums
+  vector<t_enum*> enums = program_->get_enums();
+  vector<t_enum*>::iterator en_iter;
+  f_json_ << ",\"enums\":";
+  start_array();
+  f_json_ << endl;
+  for (en_iter = enums.begin(); en_iter != enums.end(); ++en_iter) {
+    write_comma_if_needed();
+    generate_enum(*en_iter);
+    indicate_comma_needed();
+  }
+  end_array(true);
+
+  // Generate typedefs
+  vector<t_typedef*> typedefs = program_->get_typedefs();
+  vector<t_typedef*>::iterator td_iter;
+  f_json_ << ",\"typedefs\":";
+  start_array();
+  f_json_ << endl;
+  for (td_iter = typedefs.begin(); td_iter != typedefs.end(); ++td_iter) {
+    write_comma_if_needed();
+    generate_typedef(*td_iter);
+    indicate_comma_needed();
+  }
+  end_array(true);
+
+  // Generate structs, exceptions, and unions in declared order
+  vector<t_struct*> objects = program_->get_objects();
+  vector<t_struct*>::iterator o_iter;
+  f_json_ << ",\"structs\":";
+  start_array();
+  f_json_ << endl;
+  for (o_iter = objects.begin(); o_iter != objects.end(); ++o_iter) {
+    write_comma_if_needed();
+    if ((*o_iter)->is_xception()) {
+      generate_xception(*o_iter);
+    }
+    else {
+      generate_struct(*o_iter);
+    }
+    indicate_comma_needed();
+  }
+  end_array(true);
+
+  // Generate constants
+  vector<t_const*> consts = program_->get_consts();
+  generate_consts(consts);
+
+  // Generate services
+  vector<t_service*> services = program_->get_services();
+  vector<t_service*>::iterator sv_iter;
+  f_json_ << ",\"services\":";
+  start_array();
+  f_json_ << endl;
+  for (sv_iter = services.begin(); sv_iter != services.end(); ++sv_iter) {
+    write_comma_if_needed();
+    service_name_ = get_service_name(*sv_iter);
+    generate_service(*sv_iter);
+    indicate_comma_needed();
+  }
+  end_array(false);
+  end_object(true);
+  // Close the generator
+  close_generator();
 }
 
 void t_json_generator::generate_typedef(t_typedef* ttypedef){
-	start_object();
-	write_key("name", ttypedef->get_name());
-	write_key("type", get_type_name(ttypedef->get_true_type()));
-	if (ttypedef->has_doc()) write_key("doc", ttypedef->get_doc());
-	end_object(true);
+  start_object();
+  write_key("name", ttypedef->get_name());
+  write_key("type", get_type_name(ttypedef->get_true_type()));
+  if (ttypedef->has_doc()) write_key("doc", ttypedef->get_doc());
+  end_object(true);
 }
 
 void t_json_generator::generate_consts(vector<t_const*> consts){
-	vector<t_const*>::iterator c_iter;
-	f_json_ << ",\"constants\":";
-	start_array();
-	f_json_ << endl;
-	for (c_iter = consts.begin(); c_iter != consts.end(); ++c_iter) {
-		write_comma_if_needed();
-		indicate_comma_needed();
-		start_object();
-		t_const* con = (*c_iter);
-		write_key("name", con->get_name());
-		write_key("type", get_type_name(con->get_type()));
-		if (con->has_doc()) write_key("doc", con->get_doc());
-		write_key("value", get_const_value(con->get_value()));
-		end_object(true);
-	}
-	end_array(true);
+  vector<t_const*>::iterator c_iter;
+  f_json_ << ",\"constants\":";
+  start_array();
+  f_json_ << endl;
+  for (c_iter = consts.begin(); c_iter != consts.end(); ++c_iter) {
+    write_comma_if_needed();
+    indicate_comma_needed();
+    start_object();
+    t_const* con = (*c_iter);
+    write_key("name", con->get_name());
+    write_key("type", get_type_name(con->get_type()));
+    if (con->has_doc()) write_key("doc", con->get_doc());
+    write_key("value", get_const_value(con->get_value()));
+    end_object(true);
+  }
+  end_array(true);
 }
 
 void t_json_generator::generate_enum(t_enum* tenum) {
-	start_object();
-	write_key("name", tenum->get_name());
-	if (tenum->has_doc()) write_key("doc", tenum->get_doc());
-	f_json_ << ",\"members\":";
-	start_array();
-	vector<t_enum_value*> values = tenum->get_constants();
-	vector<t_enum_value*>::iterator val_iter;
-	for (val_iter = values.begin(); val_iter != values.end(); ++val_iter) {
-		t_enum_value* val = (*val_iter);
-		write_comma_if_needed();
-		start_object();
-		write_key("name", val->get_name());
-		write_key_int("value", val->get_value());
-		if (val->has_doc()) write_key("doc", val->get_doc());
-		end_object(false);
-		indicate_comma_needed();
-	}
-	end_array(false);
-	end_object(true);
+  start_object();
+  write_key("name", tenum->get_name());
+  if (tenum->has_doc()) write_key("doc", tenum->get_doc());
+  f_json_ << ",\"members\":";
+  start_array();
+  vector<t_enum_value*> values = tenum->get_constants();
+  vector<t_enum_value*>::iterator val_iter;
+  for (val_iter = values.begin(); val_iter != values.end(); ++val_iter) {
+    t_enum_value* val = (*val_iter);
+    write_comma_if_needed();
+    start_object();
+    write_key("name", val->get_name());
+    write_key_int("value", val->get_value());
+    if (val->has_doc()) write_key("doc", val->get_doc());
+    end_object(false);
+    indicate_comma_needed();
+  }
+  end_array(false);
+  end_object(true);
 }
 
 void t_json_generator::generate_struct(t_struct* tstruct){
-	start_object();
-	write_key("name", tstruct->get_name());
-	if (tstruct->has_doc()) write_key("doc", tstruct->get_doc());
-	if (tstruct->is_xception()) write_key("isException", "true");
-	vector<t_field*> members = tstruct->get_members();
-	vector<t_field*>::iterator mem_iter = members.begin();
-	f_json_ << ",\"fields\":";
-	start_array();
-	for (; mem_iter != members.end(); mem_iter++) {
-		generate_field((*mem_iter));
-	}
-	end_array(false);
-	end_object(true);
+  start_object();
+  write_key("name", tstruct->get_name());
+  if (tstruct->has_doc()) write_key("doc", tstruct->get_doc());
+  if (tstruct->is_xception()) write_key("isException", "true");
+  vector<t_field*> members = tstruct->get_members();
+  vector<t_field*>::iterator mem_iter = members.begin();
+  f_json_ << ",\"fields\":";
+  start_array();
+  for (; mem_iter != members.end(); mem_iter++) {
+    generate_field((*mem_iter));
+  }
+  end_array(false);
+  end_object(true);
 }
 
 void t_json_generator::generate_service(t_service* tservice){
-	start_object();
-	write_key("name", tservice->get_name());
-	if (tservice->get_extends()) write_key("extendsType", tservice->get_extends()->get_name());
-	if (tservice->has_doc()) write_key("doc", tservice->get_doc());
-	vector<t_function*> functions = tservice->get_functions();
-	vector<t_function*>::iterator fn_iter = functions.begin();
-	f_json_ << ",\"functions\":";
-	start_array();
-	for (; fn_iter != functions.end(); fn_iter++) {
-		t_function* func = (*fn_iter);
-		write_comma_if_needed();
-		indicate_comma_needed();
-		generate_function(func);
-	}
-	end_array(false);
-	end_object(true);
+  start_object();
+  write_key("name", tservice->get_name());
+  if (tservice->get_extends()) write_key("extendsType", tservice->get_extends()->get_name());
+  if (tservice->has_doc()) write_key("doc", tservice->get_doc());
+  vector<t_function*> functions = tservice->get_functions();
+  vector<t_function*>::iterator fn_iter = functions.begin();
+  f_json_ << ",\"functions\":";
+  start_array();
+  for (; fn_iter != functions.end(); fn_iter++) {
+    t_function* func = (*fn_iter);
+    write_comma_if_needed();
+    indicate_comma_needed();
+    generate_function(func);
+  }
+  end_array(false);
+  end_object(true);
 }
 
 void t_json_generator::generate_function(t_function* tfunc){
-	start_object();
-	write_key("name", tfunc->get_name());
-	write_key("returnType", get_type_name(tfunc->get_returntype()));
-	if (tfunc->is_oneway()) write_key("oneWay", "true");
-	if (tfunc->has_doc()) write_key("doc", tfunc->get_doc());
-	vector<t_field*> members = tfunc->get_arglist()->get_members();
-	vector<t_field*>::iterator mem_iter = members.begin();
-	f_json_ << ",\"arguments\":";
-	start_array();
-	for (; mem_iter != members.end(); mem_iter++) {
-		generate_field((*mem_iter));
-	}
-	end_array(false);
-
-	vector<t_field*> excepts = tfunc->get_xceptions()->get_members();
-	vector<t_field*>::iterator ex_iter = excepts.begin();
-	f_json_ << ",\"exceptions\":";
-	start_array();
-	for (; ex_iter != excepts.end(); ex_iter++) {
-		generate_field((*ex_iter));
-	}
-	end_array(false);
-	end_object(false);
+  start_object();
+  write_key("name", tfunc->get_name());
+  write_key("returnType", get_type_name(tfunc->get_returntype()));
+  if (tfunc->is_oneway()) write_key("oneWay", "true");
+  if (tfunc->has_doc()) write_key("doc", tfunc->get_doc());
+  vector<t_field*> members = tfunc->get_arglist()->get_members();
+  vector<t_field*>::iterator mem_iter = members.begin();
+  f_json_ << ",\"arguments\":";
+  start_array();
+  for (; mem_iter != members.end(); mem_iter++) {
+    generate_field((*mem_iter));
+  }
+  end_array(false);
+
+  vector<t_field*> excepts = tfunc->get_xceptions()->get_members();
+  vector<t_field*>::iterator ex_iter = excepts.begin();
+  f_json_ << ",\"exceptions\":";
+  start_array();
+  for (; ex_iter != excepts.end(); ex_iter++) {
+    generate_field((*ex_iter));
+  }
+  end_array(false);
+  end_object(false);
 }
 
 void t_json_generator::generate_field(t_field * field){
-	write_comma_if_needed();
-	start_object();
-	write_key_int("index", field->get_key());
-	write_key("name", field->get_name());
-	write_key("type", get_type_name(field->get_type()));
-	if (field->has_doc()) write_key("doc", field->get_doc());
-	switch (field->get_req()) {
+  write_comma_if_needed();
+  start_object();
+  write_key_int("index", field->get_key());
+  write_key("name", field->get_name());
+  write_key("type", get_type_name(field->get_type()));
+  if (field->has_doc()) write_key("doc", field->get_doc());
+  switch (field->get_req()) {
         case t_field::T_REQUIRED:
             write_key("required", "true");
             break;
         default:
             write_key("required", "false");
-	}
-	if (field->get_value())
-		write_key("default", get_const_value(field->get_value()));
+  }
+  if (field->get_value())
+    write_key("default", get_const_value(field->get_value()));
 
-	end_object(false);
-	indicate_comma_needed();
+  end_object(false);
+  indicate_comma_needed();
 }
 string t_json_generator::get_const_value(t_const_value* tvalue){
 
-	switch (tvalue->get_type()) {
-	case t_const_value::CV_INTEGER:
-		return tvalue->get_string();
-	case t_const_value::CV_DOUBLE:
-		return tvalue->get_string();
-	case t_const_value::CV_STRING:
-		return tvalue->get_string();
-	case t_const_value::CV_LIST:
-	{
-		string list = "[";
-		vector<t_const_value*> list_elems = tvalue->get_list();;
-		vector<t_const_value*>::iterator list_iter;
-		bool first = true;
-		for (list_iter = list_elems.begin(); list_iter != list_elems.end(); list_iter++) {
-			if (!first)list += ",";
-			first = false;
-			list += get_const_value(*list_iter);
-		}
-		return list + "]";
-	}
-	case t_const_value::CV_IDENTIFIER:
-		return tvalue->get_identifier_name();
-	case t_const_value::CV_MAP:
-		map<t_const_value*, t_const_value*> map_elems = tvalue->get_map();
-		map<t_const_value*, t_const_value*>::iterator map_iter;
-		string map = "[";
-		bool first = true;
-		for (map_iter = map_elems.begin(); map_iter != map_elems.end(); map_iter++) {
-			if (!first) map += ",";
-			first = false;
-			map += get_const_value(map_iter->first) + ":";
-			map += get_const_value(map_iter->second);
-		}
-		return map + "]";
-	}
-	return "UNKNOWN";
+  switch (tvalue->get_type()) {
+  case t_const_value::CV_INTEGER:
+    return tvalue->get_string();
+  case t_const_value::CV_DOUBLE:
+    return tvalue->get_string();
+  case t_const_value::CV_STRING:
+    return tvalue->get_string();
+  case t_const_value::CV_LIST:
+  {
+    string list = "[";
+    vector<t_const_value*> list_elems = tvalue->get_list();;
+    vector<t_const_value*>::iterator list_iter;
+    bool first = true;
+    for (list_iter = list_elems.begin(); list_iter != list_elems.end(); list_iter++) {
+      if (!first)list += ",";
+      first = false;
+      list += get_const_value(*list_iter);
+    }
+    return list + "]";
+  }
+  case t_const_value::CV_IDENTIFIER:
+    return tvalue->get_identifier_name();
+  case t_const_value::CV_MAP:
+    map<t_const_value*, t_const_value*> map_elems = tvalue->get_map();
+    map<t_const_value*, t_const_value*>::iterator map_iter;
+    string map = "[";
+    bool first = true;
+    for (map_iter = map_elems.begin(); map_iter != map_elems.end(); map_iter++) {
+      if (!first) map += ",";
+      first = false;
+      map += get_const_value(map_iter->first) + ":";
+      map += get_const_value(map_iter->second);
+    }
+    return map + "]";
+  }
+  return "UNKNOWN";
 }
 string t_json_generator::get_type_name(t_type* ttype){
-	if (ttype->is_container()) {
-		if (ttype->is_list()) {
-			return "list<" + get_type_name(((t_list*)ttype)->get_elem_type()) + ">";
-		}
-		else if (ttype->is_set()) {
-			return "set<" + get_type_name(((t_set*)ttype)->get_elem_type()) + ">";
-		}
-		else if (ttype->is_map()) {
-			return "map<" + get_type_name(((t_map*)ttype)->get_key_type()) +
-				+"," + get_type_name(((t_map*)ttype)->get_val_type()) + ">";
-		}
-	}
-	else if (ttype->is_base_type()) {
-		return (((t_base_type*)ttype)->is_binary() ? "binary" : ttype->get_name());
-	}
-	return ttype->get_name();
+  if (ttype->is_container()) {
+    if (ttype->is_list()) {
+      return "list<" + get_type_name(((t_list*)ttype)->get_elem_type()) + ">";
+    }
+    else if (ttype->is_set()) {
+      return "set<" + get_type_name(((t_set*)ttype)->get_elem_type()) + ">";
+    }
+    else if (ttype->is_map()) {
+      return "map<" + get_type_name(((t_map*)ttype)->get_key_type()) +
+        +"," + get_type_name(((t_map*)ttype)->get_val_type()) + ">";
+    }
+  }
+  else if (ttype->is_base_type()) {
+    return (((t_base_type*)ttype)->is_binary() ? "binary" : ttype->get_name());
+  }
+  return ttype->get_name();
 }
 
 THRIFT_REGISTER_GENERATOR(json, "JSON", "")