Imported Upstream version 3.8.0
[platform/upstream/protobuf.git] / src / google / protobuf / compiler / java / java_generator.cc
index a5b2e78..5045cfd 100644 (file)
@@ -34,6 +34,7 @@
 
 #include <google/protobuf/compiler/java/java_generator.h>
 
+
 #include <memory>
 
 #include <google/protobuf/compiler/java/java_file.h>
@@ -58,14 +59,13 @@ JavaGenerator::JavaGenerator() {}
 JavaGenerator::~JavaGenerator() {}
 
 bool JavaGenerator::Generate(const FileDescriptor* file,
-                             const string& parameter,
+                             const std::string& parameter,
                              GeneratorContext* context,
-                             string* error) const {
+                             std::string* error) const {
   // -----------------------------------------------------------------
   // parse generator options
 
-
-  std::vector<std::pair<string, string> > options;
+  std::vector<std::pair<std::string, std::string> > options;
   ParseGeneratorParameter(parameter, &options);
   Options file_options;
 
@@ -78,6 +78,10 @@ bool JavaGenerator::Generate(const FileDescriptor* file,
       file_options.generate_mutable_code = true;
     } else if (options[i].first == "shared") {
       file_options.generate_shared_code = true;
+    } else if (options[i].first == "lite") {
+      // Note: Java Lite does not guarantee API/ABI stability. We may choose to
+      // break existing API in order to boost performance / reduce code size.
+      file_options.enforce_lite = true;
     } else if (options[i].first == "annotate_code") {
       file_options.annotate_code = true;
     } else if (options[i].first == "annotation_list_file") {
@@ -104,8 +108,8 @@ bool JavaGenerator::Generate(const FileDescriptor* file,
   // -----------------------------------------------------------------
 
 
-  std::vector<string> all_files;
-  std::vector<string> all_annotations;
+  std::vector<std::string> all_files;
+  std::vector<std::string> all_annotations;
 
 
   std::vector<FileGenerator*> file_generators;
@@ -117,6 +121,7 @@ bool JavaGenerator::Generate(const FileDescriptor* file,
     file_generators.push_back(new FileGenerator(file, file_options,
                                                 /* mutable = */ false));
   }
+
   for (int i = 0; i < file_generators.size(); ++i) {
     if (!file_generators[i]->Validate(error)) {
       for (int j = 0; j < file_generators.size(); ++j) {
@@ -129,13 +134,13 @@ bool JavaGenerator::Generate(const FileDescriptor* file,
   for (int i = 0; i < file_generators.size(); ++i) {
     FileGenerator* file_generator = file_generators[i];
 
-    string package_dir = JavaPackageToDir(file_generator->java_package());
+    std::string package_dir = JavaPackageToDir(file_generator->java_package());
 
-    string java_filename = package_dir;
+    std::string java_filename = package_dir;
     java_filename += file_generator->classname();
     java_filename += ".java";
     all_files.push_back(java_filename);
-    string info_full_path = java_filename + ".pb.meta";
+    std::string info_full_path = java_filename + ".pb.meta";
     if (file_options.annotate_code) {
       all_annotations.push_back(info_full_path);
     }
@@ -146,9 +151,9 @@ bool JavaGenerator::Generate(const FileDescriptor* file,
     GeneratedCodeInfo annotations;
     io::AnnotationProtoCollector<GeneratedCodeInfo> annotation_collector(
         &annotations);
-    io::Printer printer(output.get(), '$', file_options.annotate_code
-                                               ? &annotation_collector
-                                               : NULL);
+    io::Printer printer(
+        output.get(), '$',
+        file_options.annotate_code ? &annotation_collector : NULL);
 
     file_generator->Generate(&printer);
 
@@ -163,6 +168,7 @@ bool JavaGenerator::Generate(const FileDescriptor* file,
     }
   }
 
+
   for (int i = 0; i < file_generators.size(); ++i) {
     delete file_generators[i];
   }