aboutsummaryrefslogtreecommitdiff
path: root/tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template')
-rw-r--r--tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template17
1 files changed, 13 insertions, 4 deletions
diff --git a/tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template b/tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template
index c20d3c5061..290d2c4b24 100644
--- a/tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template
+++ b/tools/aconfig/aconfig/templates/FakeFeatureFlagsImpl.java.template
@@ -6,10 +6,16 @@ import java.util.function.Predicate;
/** @hide */
public class FakeFeatureFlagsImpl extends CustomFeatureFlags \{
- private Map<String, Boolean> mFlagMap = new HashMap<>();
+ private final Map<String, Boolean> mFlagMap = new HashMap<>();
+ private final FeatureFlags mDefaults;
public FakeFeatureFlagsImpl() \{
+ this(null);
+ }
+
+ public FakeFeatureFlagsImpl(FeatureFlags defaults) \{
super(null);
+ mDefaults = defaults;
// Initialize the map with null values
for (String flagName : getFlagNames()) \{
mFlagMap.put(flagName, null);
@@ -19,10 +25,13 @@ public class FakeFeatureFlagsImpl extends CustomFeatureFlags \{
@Override
protected boolean getValue(String flagName, Predicate<FeatureFlags> getter) \{
Boolean value = this.mFlagMap.get(flagName);
- if (value == null) \{
- throw new IllegalArgumentException(flagName + " is not set");
+ if (value != null) \{
+ return value;
+ }
+ if (mDefaults != null) \{
+ return getter.test(mDefaults);
}
- return value;
+ throw new IllegalArgumentException(flagName + " is not set");
}
public void setFlag(String flagName, boolean value) \{