| Index: third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc
|
| index cb4503f63768657c42bec7051947e123aa3f9006..c53aae6b6ac01c82e3b08e4e36199d0b46eb0bfb 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc
|
| @@ -90,7 +90,7 @@ bool CollectExtensions(const Message& message,
|
| // There are unknown fields that could be extensions, thus this call fails.
|
| if (reflection->GetUnknownFields(message).field_count() > 0) return false;
|
|
|
| - std::vector<const FieldDescriptor*> fields;
|
| + vector<const FieldDescriptor*> fields;
|
| reflection->ListFields(message, &fields);
|
|
|
| for (int i = 0; i < fields.size(); i++) {
|
| @@ -189,21 +189,23 @@ void MaybeRestartJavaMethod(io::Printer* printer,
|
| *bytecode_estimate = 0;
|
| }
|
| }
|
| +
|
| +
|
| } // namespace
|
|
|
| -FileGenerator::FileGenerator(const FileDescriptor* file, const Options& options,
|
| - bool immutable_api)
|
| +FileGenerator::FileGenerator(const FileDescriptor* file, bool immutable_api,
|
| + bool enforce_lite)
|
| : file_(file),
|
| java_package_(FileJavaPackage(file, immutable_api)),
|
| message_generators_(
|
| new google::protobuf::scoped_ptr<MessageGenerator>[file->message_type_count()]),
|
| extension_generators_(
|
| new google::protobuf::scoped_ptr<ExtensionGenerator>[file->extension_count()]),
|
| - context_(new Context(file, options)),
|
| + context_(new Context(file)),
|
| name_resolver_(context_->GetNameResolver()),
|
| - options_(options),
|
| immutable_api_(immutable_api) {
|
| classname_ = name_resolver_->GetFileClassName(file, immutable_api);
|
| + context_->SetEnforceLite(enforce_lite);
|
| generator_factory_.reset(
|
| new ImmutableGeneratorFactory(context_.get()));
|
| for (int i = 0; i < file_->message_type_count(); ++i) {
|
| @@ -251,20 +253,19 @@ void FileGenerator::Generate(io::Printer* printer) {
|
| "\n",
|
| "package", java_package_);
|
| }
|
| - PrintGeneratedAnnotation(
|
| - printer, '$', options_.annotate_code ? classname_ + ".java.pb.meta" : "");
|
| printer->Print(
|
| - "public final class $classname$ {\n"
|
| - " private $ctor$() {}\n",
|
| - "classname", classname_, "ctor", classname_);
|
| - printer->Annotate("classname", file_->name());
|
| + "public final class $classname$ {\n"
|
| + " private $classname$() {}\n",
|
| + "classname", classname_);
|
| printer->Indent();
|
|
|
| // -----------------------------------------------------------------
|
|
|
| printer->Print(
|
| "public static void registerAllExtensions(\n"
|
| - " com.google.protobuf.ExtensionRegistryLite registry) {\n");
|
| + " com.google.protobuf.ExtensionRegistry$lite$ registry) {\n",
|
| + "lite",
|
| + HasDescriptorMethods(file_, context_->EnforceLite()) ? "" : "Lite");
|
|
|
| printer->Indent();
|
|
|
| @@ -279,20 +280,6 @@ void FileGenerator::Generate(io::Printer* printer) {
|
| printer->Outdent();
|
| printer->Print(
|
| "}\n");
|
| - if (HasDescriptorMethods(file_, context_->EnforceLite())) {
|
| - // Overload registerAllExtensions for the non-lite usage to
|
| - // redundantly maintain the original signature (this is
|
| - // redundant because ExtensionRegistryLite now invokes
|
| - // ExtensionRegistry in the non-lite usage). Intent is
|
| - // to remove this in the future.
|
| - printer->Print(
|
| - "\n"
|
| - "public static void registerAllExtensions(\n"
|
| - " com.google.protobuf.ExtensionRegistry registry) {\n"
|
| - " registerAllExtensions(\n"
|
| - " (com.google.protobuf.ExtensionRegistryLite) registry);\n"
|
| - "}\n");
|
| - }
|
|
|
| // -----------------------------------------------------------------
|
|
|
| @@ -385,7 +372,7 @@ void FileGenerator::GenerateDescriptorInitializationCodeForImmutable(
|
| "final", "");
|
| printer->Indent();
|
|
|
| - SharedCodeGenerator shared_code_generator(file_, options_);
|
| + SharedCodeGenerator shared_code_generator(file_);
|
| shared_code_generator.GenerateDescriptors(printer);
|
|
|
| int bytecode_estimate = 0;
|
| @@ -536,26 +523,20 @@ void FileGenerator::GenerateDescriptorInitializationCodeForMutable(io::Printer*
|
| "}\n");
|
| }
|
|
|
| -template <typename GeneratorClass, typename DescriptorClass>
|
| +template<typename GeneratorClass, typename DescriptorClass>
|
| static void GenerateSibling(const string& package_dir,
|
| const string& java_package,
|
| const DescriptorClass* descriptor,
|
| GeneratorContext* context,
|
| - std::vector<string>* file_list, bool annotate_code,
|
| - std::vector<string>* annotation_list,
|
| + vector<string>* file_list,
|
| const string& name_suffix,
|
| GeneratorClass* generator,
|
| void (GeneratorClass::*pfn)(io::Printer* printer)) {
|
| string filename = package_dir + descriptor->name() + name_suffix + ".java";
|
| file_list->push_back(filename);
|
| - string info_full_path = filename + ".pb.meta";
|
| - GeneratedCodeInfo annotations;
|
| - io::AnnotationProtoCollector<GeneratedCodeInfo> annotation_collector(
|
| - &annotations);
|
|
|
| google::protobuf::scoped_ptr<io::ZeroCopyOutputStream> output(context->Open(filename));
|
| - io::Printer printer(output.get(), '$',
|
| - annotate_code ? &annotation_collector : NULL);
|
| + io::Printer printer(output.get(), '$');
|
|
|
| printer.Print(
|
| "// Generated by the protocol buffer compiler. DO NOT EDIT!\n"
|
| @@ -570,57 +551,55 @@ static void GenerateSibling(const string& package_dir,
|
| }
|
|
|
| (generator->*pfn)(&printer);
|
| -
|
| - if (annotate_code) {
|
| - google::protobuf::scoped_ptr<io::ZeroCopyOutputStream> info_output(
|
| - context->Open(info_full_path));
|
| - annotations.SerializeToZeroCopyStream(info_output.get());
|
| - annotation_list->push_back(info_full_path);
|
| - }
|
| }
|
|
|
| void FileGenerator::GenerateSiblings(const string& package_dir,
|
| GeneratorContext* context,
|
| - std::vector<string>* file_list,
|
| - std::vector<string>* annotation_list) {
|
| + vector<string>* file_list) {
|
| if (MultipleJavaFiles(file_, immutable_api_)) {
|
| for (int i = 0; i < file_->enum_type_count(); i++) {
|
| if (HasDescriptorMethods(file_, context_->EnforceLite())) {
|
| EnumGenerator generator(file_->enum_type(i), immutable_api_,
|
| context_.get());
|
| - GenerateSibling<EnumGenerator>(
|
| - package_dir, java_package_, file_->enum_type(i), context, file_list,
|
| - options_.annotate_code, annotation_list, "", &generator,
|
| - &EnumGenerator::Generate);
|
| + GenerateSibling<EnumGenerator>(package_dir, java_package_,
|
| + file_->enum_type(i),
|
| + context, file_list, "",
|
| + &generator,
|
| + &EnumGenerator::Generate);
|
| } else {
|
| EnumLiteGenerator generator(file_->enum_type(i), immutable_api_,
|
| context_.get());
|
| - GenerateSibling<EnumLiteGenerator>(
|
| - package_dir, java_package_, file_->enum_type(i), context, file_list,
|
| - options_.annotate_code, annotation_list, "", &generator,
|
| - &EnumLiteGenerator::Generate);
|
| + GenerateSibling<EnumLiteGenerator>(package_dir, java_package_,
|
| + file_->enum_type(i),
|
| + context, file_list, "",
|
| + &generator,
|
| + &EnumLiteGenerator::Generate);
|
| }
|
| }
|
| for (int i = 0; i < file_->message_type_count(); i++) {
|
| if (immutable_api_) {
|
| - GenerateSibling<MessageGenerator>(
|
| - package_dir, java_package_, file_->message_type(i), context,
|
| - file_list, options_.annotate_code, annotation_list, "OrBuilder",
|
| - message_generators_[i].get(), &MessageGenerator::GenerateInterface);
|
| + GenerateSibling<MessageGenerator>(package_dir, java_package_,
|
| + file_->message_type(i),
|
| + context, file_list,
|
| + "OrBuilder",
|
| + message_generators_[i].get(),
|
| + &MessageGenerator::GenerateInterface);
|
| }
|
| - GenerateSibling<MessageGenerator>(
|
| - package_dir, java_package_, file_->message_type(i), context,
|
| - file_list, options_.annotate_code, annotation_list, "",
|
| - message_generators_[i].get(), &MessageGenerator::Generate);
|
| + GenerateSibling<MessageGenerator>(package_dir, java_package_,
|
| + file_->message_type(i),
|
| + context, file_list, "",
|
| + message_generators_[i].get(),
|
| + &MessageGenerator::Generate);
|
| }
|
| if (HasGenericServices(file_, context_->EnforceLite())) {
|
| for (int i = 0; i < file_->service_count(); i++) {
|
| google::protobuf::scoped_ptr<ServiceGenerator> generator(
|
| generator_factory_->NewServiceGenerator(file_->service(i)));
|
| - GenerateSibling<ServiceGenerator>(
|
| - package_dir, java_package_, file_->service(i), context, file_list,
|
| - options_.annotate_code, annotation_list, "", generator.get(),
|
| - &ServiceGenerator::Generate);
|
| + GenerateSibling<ServiceGenerator>(package_dir, java_package_,
|
| + file_->service(i),
|
| + context, file_list, "",
|
| + generator.get(),
|
| + &ServiceGenerator::Generate);
|
| }
|
| }
|
| }
|
|
|