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] java_nano_generate_has -> true or false [DEPRECATED]
optional_field_style -> default or accessors optional_field_style -> default or accessors
enum_style -> c or java enum_style -> c or java
ignore_services -> true or false
java_package: java_package:
java_outer_classname: java_outer_classname:
@ -580,6 +581,13 @@ enum_style={c,java} (default: c)
compiler inlines all referenced enum constants into the call sites, compiler inlines all referenced enum constants into the call sites,
the interface remains unused and can be removed by ProGuard. 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: To use nano protobufs within the Android repo:

@ -105,7 +105,7 @@ bool FileGenerator::Validate(string* error) {
return false; return false;
} }
if (file_->service_count() != 0) { if (file_->service_count() != 0 && !params_.ignore_services()) {
error->assign(file_->name()); error->assign(file_->name());
error->append( error->append(
": Java NANO_RUNTIME does not support services\""); ": 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"); params.set_use_reference_types_for_primitives(option_value == "reftypes");
} else if (option_name == "generate_equals") { } else if (option_name == "generate_equals") {
params.set_generate_equals(option_value == "true"); params.set_generate_equals(option_value == "true");
} else if (option_name == "ignore_services") {
params.set_ignore_services(option_value == "true");
} else { } else {
*error = "Ignore unknown javanano generator option: " + option_name; *error = "Ignore unknown javanano generator option: " + option_name;
} }

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

Loading…
Cancel
Save