diff options
author | Muhammad Qureshi <muhammadq@google.com> | 2019-12-31 10:50:06 -0800 |
---|---|---|
committer | Muhammad Qureshi <muhammadq@google.com> | 2020-01-02 15:05:52 -0800 |
commit | 167ba844d789332732e9f6977ce8dab8030cf72f (patch) | |
tree | a4843c771d9bfec602d412b3fb615abe810cbf96 /tools/stats_log_api_gen/java_writer.cpp | |
parent | 4fdc7fd375f69a3219d8680ef4da90fe8cf80020 (diff) |
Add --supportQ flag to java StatsLog codegen
Add support to generate Q schema code generation only for modules that
ship to Q.
Bug: 145606209
Test: m
Test: flashes successfully
Test: adb logcat "*:S statsd:*"
Change-Id: I978ac321415f1e8d76e4ec73445894965845aaea
Diffstat (limited to 'tools/stats_log_api_gen/java_writer.cpp')
-rw-r--r-- | tools/stats_log_api_gen/java_writer.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/tools/stats_log_api_gen/java_writer.cpp b/tools/stats_log_api_gen/java_writer.cpp index 663d49c0d229..7f0872c02613 100644 --- a/tools/stats_log_api_gen/java_writer.cpp +++ b/tools/stats_log_api_gen/java_writer.cpp @@ -48,7 +48,8 @@ static int write_java_methods( FILE* out, const map<vector<java_type_t>, set<string>>& signatures_to_modules, const AtomDecl &attributionDecl, - const string& moduleName + const string& moduleName, + const bool supportQ ) { for (auto signature_to_modules_it = signatures_to_modules.begin(); signature_to_modules_it != signatures_to_modules.end(); signature_to_modules_it++) { @@ -82,7 +83,7 @@ static int write_java_methods( // Print method body. string indent(""); - if (DEFAULT_MODULE_NAME != moduleName) { + if (supportQ) { // TODO(b/146235828): Use just SDK_INT check once it is incremented from Q. fprintf(out, " if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q ||\n"); fprintf(out, " Build.VERSION.CODENAME.equals(\"R\")) {\n"); @@ -195,7 +196,7 @@ static int write_java_methods( fprintf(out, "%s StatsLog.write(builder.build());\n", indent.c_str()); // Add support for writing using Q schema if this is not the default module. - if (DEFAULT_MODULE_NAME != moduleName) { + if (supportQ) { fprintf(out, " } else {\n"); fprintf(out, " QLogger.write(code"); argIndex = 1; @@ -227,15 +228,17 @@ static int write_java_methods( int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl, const string& moduleName, const string& javaClass, - const string& javaPackage) { + const string& javaPackage, const bool supportQ) { // Print prelude fprintf(out, "// This file is autogenerated\n"); fprintf(out, "\n"); fprintf(out, "package %s;\n", javaPackage.c_str()); fprintf(out, "\n"); fprintf(out, "\n"); - fprintf(out, "import android.os.Build;\n"); - fprintf(out, "import android.os.SystemClock;\n"); + if (supportQ) { + fprintf(out, "import android.os.Build;\n"); + fprintf(out, "import android.os.SystemClock;\n"); + } if (DEFAULT_MODULE_NAME == moduleName) { // Mainline modules don't use WorkSource logging. @@ -273,12 +276,15 @@ int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attribut // Print write methods. fprintf(out, " // Write methods\n"); - errors += write_java_methods(out, atoms.signatures_to_modules, attributionDecl, moduleName); + errors += write_java_methods( + out, atoms.signatures_to_modules, attributionDecl, moduleName, supportQ); errors += write_java_non_chained_methods( out, atoms.non_chained_signatures_to_modules, moduleName); if (DEFAULT_MODULE_NAME == moduleName) { errors += write_java_work_source_methods(out, atoms.signatures_to_modules, moduleName); - } else { + } + + if (supportQ) { errors += write_java_q_logger_class( out, atoms.signatures_to_modules, attributionDecl, moduleName); } |