Skip to content

Commit 6107eb9

Browse files
Create experimentRules array directly instead of from Map Values (#444)
1 parent 5de0a7b commit 6107eb9

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class OptimizelyConfigService {
2626
private ProjectConfig projectConfig;
2727
private OptimizelyConfig optimizelyConfig;
2828
private List<OptimizelyAudience> audiences;
29+
private List<OptimizelyExperiment> experimentRules;
2930
private Map<String, String> audiencesMap;
3031
private Map<String, List<FeatureVariable>> featureIdToVariablesMap = new HashMap<>();
3132
private Map<String, OptimizelyExperiment> experimentMapByExperimentId = new HashMap<>();
@@ -221,10 +222,8 @@ Map<String, OptimizelyFeature> getFeaturesMap(Map<String, OptimizelyExperiment>
221222
Map<String, OptimizelyFeature> optimizelyFeatureKeyMap = new HashMap<>();
222223
for (FeatureFlag featureFlag : featureFlags) {
223224
Map<String, OptimizelyExperiment> experimentsMapForFeature =
224-
getExperimentsMapForFeature(featureFlag.getExperimentIds(), allExperimentsMap);
225+
getExperimentsMapForFeature(featureFlag.getExperimentIds());
225226

226-
List<OptimizelyExperiment> experimentRules =
227-
new ArrayList<OptimizelyExperiment>(experimentsMapForFeature.values());
228227
List<OptimizelyExperiment> deliveryRules =
229228
this.getDeliveryRules(featureFlag.getRolloutId(), featureFlag.getId());
230229

@@ -267,17 +266,22 @@ List<OptimizelyExperiment> getDeliveryRules(String rolloutId, String featureId)
267266
}
268267

269268
@VisibleForTesting
270-
Map<String, OptimizelyExperiment> getExperimentsMapForFeature(List<String> experimentIds, Map<String, OptimizelyExperiment> allExperimentsMap) {
269+
Map<String, OptimizelyExperiment> getExperimentsMapForFeature(List<String> experimentIds) {
271270
if (experimentIds == null) {
272271
return Collections.emptyMap();
273272
}
274273

274+
List<OptimizelyExperiment> experimentRulesList = new ArrayList<>();
275+
275276
Map<String, OptimizelyExperiment> optimizelyExperimentKeyMap = new HashMap<>();
276277
for (String experimentId : experimentIds) {
277-
Experiment experiment = projectConfig.getExperimentIdMapping().get(experimentId);
278-
optimizelyExperimentKeyMap.put(experiment.getKey(), experimentMapByExperimentId.get(experiment.getId()));
278+
OptimizelyExperiment optimizelyExperiment = experimentMapByExperimentId.get(experimentId);
279+
optimizelyExperimentKeyMap.put(optimizelyExperiment.getKey(), optimizelyExperiment);
280+
experimentRulesList.add(optimizelyExperiment);
279281
}
280282

283+
this.experimentRules = experimentRulesList;
284+
281285
return optimizelyExperimentKeyMap;
282286
}
283287

core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void testGetFeatureVariablesMap() {
8787
public void testGetExperimentsMapForFeature() {
8888
List<String> experimentIds = projectConfig.getFeatureFlags().get(1).getExperimentIds();
8989
Map<String, OptimizelyExperiment> optimizelyFeatureExperimentMap =
90-
optimizelyConfigService.getExperimentsMapForFeature(experimentIds, optimizelyConfigService.getExperimentsMap());
90+
optimizelyConfigService.getExperimentsMapForFeature(experimentIds);
9191
assertEquals(expectedConfig.getFeaturesMap().get("multi_variate_feature").getExperimentsMap().size(), optimizelyFeatureExperimentMap.size());
9292
}
9393

0 commit comments

Comments
 (0)