From a41cc5ecf9099f386a9251f06b6b16937f59f23b Mon Sep 17 00:00:00 2001 From: Zhi Dou Date: Thu, 29 Jun 2023 15:01:56 +0000 Subject: [PATCH 1/2] aconfig: remove extra new lines and spaces in generated java code Change the java template to remove the extra new lines and spaces in generated java code. Bug: 280833463 Test: atest aconfig.test Change-Id: I336050540f8a2b0966bf21cf6e034a8fa701458e --- tools/aconfig/src/codegen_java.rs | 2 +- .../aconfig/templates/FeatureFlags.java.template | 6 +++--- .../templates/FeatureFlagsImpl.java.template | 15 ++++++--------- tools/aconfig/templates/Flags.java.template | 13 ++++++------- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/tools/aconfig/src/codegen_java.rs b/tools/aconfig/src/codegen_java.rs index 15eb2d65ba..79c6eb4f9e 100644 --- a/tools/aconfig/src/codegen_java.rs +++ b/tools/aconfig/src/codegen_java.rs @@ -233,8 +233,8 @@ mod tests { let expected_featureflagsimpl_content = r#" package com.android.aconfig.test; import static java.util.stream.Collectors.toMap; - import java.util.stream.Stream; import java.util.HashMap; + import java.util.stream.Stream; public final class FeatureFlagsImpl implements FeatureFlags { @Override public boolean disabledRo() { diff --git a/tools/aconfig/templates/FeatureFlags.java.template b/tools/aconfig/templates/FeatureFlags.java.template index b9e2cc792f..e0f201fc88 100644 --- a/tools/aconfig/templates/FeatureFlags.java.template +++ b/tools/aconfig/templates/FeatureFlags.java.template @@ -1,7 +1,7 @@ package {package_name}; public interface FeatureFlags \{ - {{ for item in class_elements}} +{{ for item in class_elements}} boolean {item.method_name}(); - {{ endfor }} -} \ No newline at end of file +{{ endfor }} +} diff --git a/tools/aconfig/templates/FeatureFlagsImpl.java.template b/tools/aconfig/templates/FeatureFlagsImpl.java.template index dafd99e71b..f5edd1b79e 100644 --- a/tools/aconfig/templates/FeatureFlagsImpl.java.template +++ b/tools/aconfig/templates/FeatureFlagsImpl.java.template @@ -2,15 +2,15 @@ package {package_name}; {{ -if is_test_mode }} import static java.util.stream.Collectors.toMap; -import java.util.stream.Stream; import java.util.HashMap; +import java.util.stream.Stream; {{ else}} {{ if is_read_write- }} import android.provider.DeviceConfig; {{ -endif- }} {{ endif }} public final class FeatureFlagsImpl implements FeatureFlags \{ - {{ for item in class_elements}} +{{ for item in class_elements}} @Override public boolean {item.method_name}() \{ {{ -if not is_test_mode- }} @@ -20,16 +20,15 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ "{item.device_config_flag}", {item.default_value} ); - {{ else }} + {{ -else }} return {item.default_value}; {{ -endif- }} {{ else }} return getFlag(Flags.FLAG_{item.flag_name_constant_suffix}); {{ -endif }} } - {{ endfor }} - - {{ if is_test_mode- }} +{{ endfor- }} +{{ if is_test_mode }} public void setFlag(String flagName, boolean value) \{ if (!this.mFlagMap.containsKey(flagName)) \{ throw new IllegalArgumentException("no such flag" + flagName); @@ -55,7 +54,5 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ (map, elem) -> map.put(elem, null), HashMap::putAll ); - {{ -endif }} +{{ -endif }} } - - diff --git a/tools/aconfig/templates/Flags.java.template b/tools/aconfig/templates/Flags.java.template index eef98eb635..c244b15156 100644 --- a/tools/aconfig/templates/Flags.java.template +++ b/tools/aconfig/templates/Flags.java.template @@ -1,15 +1,15 @@ package {package_name}; public final class Flags \{ - {{- for item in class_elements}} +{{- for item in class_elements}} public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}"; - {{- endfor }} - {{ for item in class_elements}} +{{- endfor }} +{{ for item in class_elements}} public static boolean {item.method_name}() \{ return FEATURE_FLAGS.{item.method_name}(); } - {{ endfor }} - {{ if is_test_mode }} +{{ endfor }} +{{ -if is_test_mode }} public static void setFeatureFlagsImpl(FeatureFlags featureFlags) \{ Flags.FEATURE_FLAGS = featureFlags; } @@ -17,8 +17,7 @@ public final class Flags \{ public static void unsetFeatureFlagsImpl() \{ Flags.FEATURE_FLAGS = null; } - {{ -endif}} - +{{ endif}} private static FeatureFlags FEATURE_FLAGS{{ -if not is_test_mode }} = new FeatureFlagsImpl(){{ -endif- }}; } From 8d27cc39b19034d66c52e2cce50227244dd9de18 Mon Sep 17 00:00:00 2001 From: Zhi Dou Date: Thu, 29 Jun 2023 15:15:32 +0000 Subject: [PATCH 2/2] aconfig: Add resetAll method to test mode FeatureFlagsImpl Add resetAll method to test mode FeatureFlagsImpl. This method is used to reset all the flags values to null. It provides convenient way to the test tools to reset the flags values. Bug: 280833463 Test: atest aconfig.test Change-Id: I4bf1d3ba69ee106ef8d0c1cc62c00bbeca1b72aa --- tools/aconfig/src/codegen_java.rs | 6 ++++++ tools/aconfig/templates/FeatureFlagsImpl.java.template | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/tools/aconfig/src/codegen_java.rs b/tools/aconfig/src/codegen_java.rs index 79c6eb4f9e..8ab6ffa8f7 100644 --- a/tools/aconfig/src/codegen_java.rs +++ b/tools/aconfig/src/codegen_java.rs @@ -234,6 +234,7 @@ mod tests { package com.android.aconfig.test; import static java.util.stream.Collectors.toMap; import java.util.HashMap; + import java.util.Map; import java.util.stream.Stream; public final class FeatureFlagsImpl implements FeatureFlags { @Override @@ -258,6 +259,11 @@ mod tests { } this.mFlagMap.put(flagName, value); } + public void resetAll() { + for (Map.Entry entry : mFlagMap.entrySet()) { + entry.setValue(null); + } + } private boolean getFlag(String flagName) { Boolean value = this.mFlagMap.get(flagName); if (value == null) { diff --git a/tools/aconfig/templates/FeatureFlagsImpl.java.template b/tools/aconfig/templates/FeatureFlagsImpl.java.template index f5edd1b79e..082d476de5 100644 --- a/tools/aconfig/templates/FeatureFlagsImpl.java.template +++ b/tools/aconfig/templates/FeatureFlagsImpl.java.template @@ -3,6 +3,7 @@ package {package_name}; import static java.util.stream.Collectors.toMap; import java.util.HashMap; +import java.util.Map; import java.util.stream.Stream; {{ else}} {{ if is_read_write- }} @@ -36,6 +37,12 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ this.mFlagMap.put(flagName, value); } + public void resetAll() \{ + for (Map.Entry entry : mFlagMap.entrySet()) \{ + entry.setValue(null); + } + } + private boolean getFlag(String flagName) \{ Boolean value = this.mFlagMap.get(flagName); if (value == null) \{