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); |
} |
} |
} |