Change reftypes_primitive_enums to reftypes_compat_mode.

Make the clear() method stripped in reftypes_compat_mode.

Change-Id: I0ec35537856f59a6ecf231bfd74df995c858e2b2
This commit is contained in:
Brian Duff 2014-10-01 12:55:00 -07:00
parent 517591b8ea
commit 7fbf654004
3 changed files with 31 additions and 12 deletions

View File

@ -140,9 +140,12 @@ bool JavaNanoGenerator::Generate(const FileDescriptor* file,
} else if (option_name == "optional_field_style") {
params.set_optional_field_accessors(option_value == "accessors");
params.set_use_reference_types_for_primitives(option_value == "reftypes"
|| option_value == "reftypes_primitive_enums");
|| option_value == "reftypes_compat_mode");
params.set_reftypes_primitive_enums(
option_value == "reftypes_primitive_enums");
option_value == "reftypes_compat_mode");
if (option_value == "reftypes_compat_mode") {
params.set_generate_clear(false);
}
} else if (option_name == "generate_equals") {
params.set_generate_equals(option_value == "true");
} else if (option_name == "ignore_services") {

View File

@ -245,16 +245,20 @@ void MessageGenerator::Generate(io::Printer* printer) {
" _classInitialized = true;\n"
" }\n"
" }\n"
" }\n"
" clear();\n"
"}\n");
" }\n");
if (params_.generate_clear()) {
printer->Print(" clear();\n");
}
printer->Print("}\n");
} else {
printer->Print(
"\n"
"public $classname$() {\n"
" clear();\n"
"}\n",
"classname", descriptor_->name());
if (params_.generate_clear()) {
printer->Print(
"\n"
"public $classname$() {\n"
" clear();\n"
"}\n",
"classname", descriptor_->name());
}
}
// Other methods in this class
@ -440,6 +444,9 @@ void MessageGenerator::GenerateSerializeOneField(
}
void MessageGenerator::GenerateClear(io::Printer* printer) {
if (!params_.generate_clear()) {
return;
}
printer->Print(
"\n"
"public $classname$ clear() {\n",

View File

@ -65,6 +65,7 @@ class Params {
bool ignore_services_;
bool parcelable_messages_;
bool reftypes_primitive_enums_;
bool generate_clear_;
public:
Params(const string & base_name) :
@ -79,7 +80,8 @@ class Params {
generate_equals_(false),
ignore_services_(false),
parcelable_messages_(false),
reftypes_primitive_enums_(false) {
reftypes_primitive_enums_(false),
generate_clear_(true) {
}
const string& base_name() const {
@ -222,6 +224,13 @@ class Params {
bool reftypes_primitive_enums() const {
return reftypes_primitive_enums_;
}
void set_generate_clear(bool value) {
generate_clear_ = value;
}
bool generate_clear() const {
return generate_clear_;
}
};
} // namespace javanano