blob: 82bea81f9220280f5c742c746c91867156a2f31c [file] [log] [blame]
Zhi Dou5aaeee32023-08-07 22:54:13 +00001package {package_name};
Zhi Dou5aaeee32023-08-07 22:54:13 +00002
3import java.util.HashMap;
4import java.util.Map;
Zhi Dou5aaeee32023-08-07 22:54:13 +00005
6public class FakeFeatureFlagsImpl implements FeatureFlags \{
Zhi Dou06a448f2023-08-15 19:33:27 +00007 public FakeFeatureFlagsImpl() \{
8 resetAll();
9 }
10
Zhi Dou5aaeee32023-08-07 22:54:13 +000011{{ for item in class_elements}}
12 @Override
13 public boolean {item.method_name}() \{
14 return getFlag(Flags.FLAG_{item.flag_name_constant_suffix});
15 }
16{{ endfor}}
17 public void setFlag(String flagName, boolean value) \{
18 if (!this.mFlagMap.containsKey(flagName)) \{
Zhi Dou06a448f2023-08-15 19:33:27 +000019 throw new IllegalArgumentException("no such flag " + flagName);
Zhi Dou5aaeee32023-08-07 22:54:13 +000020 }
21 this.mFlagMap.put(flagName, value);
22 }
23
Zhi Dou5aaeee32023-08-07 22:54:13 +000024 public void resetAll() \{
25 for (Map.Entry entry : mFlagMap.entrySet()) \{
26 entry.setValue(null);
27 }
28 }
29
30 private boolean getFlag(String flagName) \{
31 Boolean value = this.mFlagMap.get(flagName);
32 if (value == null) \{
33 throw new IllegalArgumentException(flagName + " is not set");
34 }
35 return value;
36 }
37
Zhi Dou06a448f2023-08-15 19:33:27 +000038 private Map<String, Boolean> mFlagMap = new HashMap<>(
39 Map.of(
Zhi Dou5aaeee32023-08-07 22:54:13 +000040 {{-for item in class_elements}}
Zhi Dou06a448f2023-08-15 19:33:27 +000041 Flags.FLAG_{item.flag_name_constant_suffix}, false{{ if not @last }},{{ endif }}
Zhi Dou5aaeee32023-08-07 22:54:13 +000042 {{ -endfor }}
43 )
Zhi Dou06a448f2023-08-15 19:33:27 +000044 );
Zhi Dou5aaeee32023-08-07 22:54:13 +000045}