summaryrefslogtreecommitdiff
path: root/tools/stats_log_api_gen/java_writer.cpp
diff options
context:
space:
mode:
authorMuhammad Qureshi <muhammadq@google.com>2019-12-31 10:50:06 -0800
committerMuhammad Qureshi <muhammadq@google.com>2020-01-02 15:05:52 -0800
commit167ba844d789332732e9f6977ce8dab8030cf72f (patch)
treea4843c771d9bfec602d412b3fb615abe810cbf96 /tools/stats_log_api_gen/java_writer.cpp
parent4fdc7fd375f69a3219d8680ef4da90fe8cf80020 (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.cpp22
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);
}