diff options
Diffstat (limited to 'src/google/protobuf/compiler/javanano/javanano_generator.cc')
-rw-r--r-- | src/google/protobuf/compiler/javanano/javanano_generator.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/google/protobuf/compiler/javanano/javanano_generator.cc b/src/google/protobuf/compiler/javanano/javanano_generator.cc index 8ba3f50..48c3a21 100644 --- a/src/google/protobuf/compiler/javanano/javanano_generator.cc +++ b/src/google/protobuf/compiler/javanano/javanano_generator.cc @@ -124,15 +124,21 @@ bool JavaNanoGenerator::Generate(const FileDescriptor* file, params.set_java_enum_style(options[i].second == "java"); } else if (options[i].first == "optional_field_style") { params.set_optional_field_accessors(options[i].second == "accessors"); + params.set_use_reference_types_for_primitives(options[i].second == "reftypes"); } else { *error = "Ignore unknown javanano generator option: " + options[i].first; } } // Check illegal parameter combinations - if (params.generate_has() && params.optional_field_accessors()) { + // Note: the enum-like optional_field_style generator param ensures + // that we can never have illegal combinations of field styles + // (e.g. reftypes and accessors can't be on at the same time). + if (params.generate_has() + && (params.optional_field_accessors() + || params.use_reference_types_for_primitives())) { error->assign("java_nano_generate_has=true cannot be used in conjunction" - " with optional_field_style=accessors"); + " with optional_field_style=accessors or optional_field_style=reftypes"); return false; } |