am 829f6c01: Merge "Adds --ignore_service nano proto compiler flag"

* commit '829f6c014ce69d04593d30652c8acc2f7a793851':
  Adds --ignore_service nano proto compiler flag
pull/91/head
Max Cai 11 years ago committed by Android Git Automerger
commit 5cc8a31ea1
  1. 8
      java/README.txt
  2. 2
      src/google/protobuf/compiler/javanano/javanano_file.cc
  3. 2
      src/google/protobuf/compiler/javanano/javanano_generator.cc
  4. 11
      src/google/protobuf/compiler/javanano/javanano_params.h

@ -475,6 +475,7 @@ java_multiple_files -> true or false
java_nano_generate_has -> true or false [DEPRECATED]
optional_field_style -> default or accessors
enum_style -> c or java
ignore_services -> true or false
java_package:
java_outer_classname:
@ -580,6 +581,13 @@ enum_style={c,java} (default: c)
compiler inlines all referenced enum constants into the call sites,
the interface remains unused and can be removed by ProGuard.
ignore_services={true,false} (default: false)
Skips services definitions.
Nano doesn't support services. By default, if a service is defined
it will generate a compilation error. If this flag is set to true,
services will be silently ignored, instead.
To use nano protobufs within the Android repo:

@ -105,7 +105,7 @@ bool FileGenerator::Validate(string* error) {
return false;
}
if (file_->service_count() != 0) {
if (file_->service_count() != 0 && !params_.ignore_services()) {
error->assign(file_->name());
error->append(
": Java NANO_RUNTIME does not support services\"");

@ -142,6 +142,8 @@ bool JavaNanoGenerator::Generate(const FileDescriptor* file,
params.set_use_reference_types_for_primitives(option_value == "reftypes");
} else if (option_name == "generate_equals") {
params.set_generate_equals(option_value == "true");
} else if (option_name == "ignore_services") {
params.set_ignore_services(option_value == "true");
} else {
*error = "Ignore unknown javanano generator option: " + option_name;
}

@ -62,6 +62,7 @@ class Params {
bool optional_field_accessors_;
bool use_reference_types_for_primitives_;
bool generate_equals_;
bool ignore_services_;
public:
Params(const string & base_name) :
@ -73,7 +74,8 @@ class Params {
java_enum_style_(false),
optional_field_accessors_(false),
use_reference_types_for_primitives_(false),
generate_equals_(false) {
generate_equals_(false),
ignore_services_(false) {
}
const string& base_name() const {
@ -195,6 +197,13 @@ class Params {
bool generate_equals() const {
return generate_equals_;
}
void set_ignore_services(bool value) {
ignore_services_ = value;
}
bool ignore_services() const {
return ignore_services_;
}
};
} // namespace javanano

Loading…
Cancel
Save