@@ -1212,15 +1212,15 @@ OptimizelyDecision decide(@Nonnull OptimizelyUserContext user,
1212
1212
@ Nonnull String key ,
1213
1213
@ Nonnull List <OptimizelyDecideOption > options ) {
1214
1214
ProjectConfig projectConfig = getProjectConfig ();
1215
- List <OptimizelyDecideOption > filteredOptions = options .stream ()
1216
- .filter (opt -> opt != OptimizelyDecideOption .ENABLED_FLAGS_ONLY )
1217
- .collect (Collectors .toList ());
1218
-
1219
1215
if (projectConfig == null ) {
1220
1216
return OptimizelyDecision .newErrorDecision (key , user , DecisionMessage .SDK_NOT_READY .reason ());
1221
1217
}
1222
1218
1223
- return decideForKeys (user , Arrays .asList (key ), filteredOptions ).get (key );
1219
+ List <OptimizelyDecideOption > filteredOptions = getAllOptions (options ).stream ()
1220
+ .filter (opt -> opt != OptimizelyDecideOption .ENABLED_FLAGS_ONLY )
1221
+ .collect (Collectors .toList ());
1222
+
1223
+ return decideForKeys (user , Arrays .asList (key ), filteredOptions , true ).get (key );
1224
1224
}
1225
1225
1226
1226
private OptimizelyDecision createOptimizelyDecision (
@@ -1305,8 +1305,15 @@ private OptimizelyDecision createOptimizelyDecision(
1305
1305
}
1306
1306
1307
1307
Map <String , OptimizelyDecision > decideForKeys (@ Nonnull OptimizelyUserContext user ,
1308
+ @ Nonnull List <String > keys ,
1309
+ @ Nonnull List <OptimizelyDecideOption > options ) {
1310
+ return decideForKeys (user , keys , options , false );
1311
+ }
1312
+
1313
+ private Map <String , OptimizelyDecision > decideForKeys (@ Nonnull OptimizelyUserContext user ,
1308
1314
@ Nonnull List <String > keys ,
1309
- @ Nonnull List <OptimizelyDecideOption > options ) {
1315
+ @ Nonnull List <OptimizelyDecideOption > options ,
1316
+ boolean ignoreDefaultOptions ) {
1310
1317
Map <String , OptimizelyDecision > decisionMap = new HashMap <>();
1311
1318
1312
1319
ProjectConfig projectConfig = getProjectConfig ();
@@ -1317,7 +1324,7 @@ Map<String, OptimizelyDecision> decideForKeys(@Nonnull OptimizelyUserContext use
1317
1324
1318
1325
if (keys .isEmpty ()) return decisionMap ;
1319
1326
1320
- List <OptimizelyDecideOption > allOptions = getAllOptions (options );
1327
+ List <OptimizelyDecideOption > allOptions = ignoreDefaultOptions ? options : getAllOptions (options );
1321
1328
1322
1329
Map <String , FeatureDecision > flagDecisions = new HashMap <>();
1323
1330
Map <String , DecisionReasons > decisionReasonsMap = new HashMap <>();
@@ -1356,19 +1363,6 @@ Map<String, OptimizelyDecision> decideForKeys(@Nonnull OptimizelyUserContext use
1356
1363
decisionReasonsMap .get (flagKey ).merge (decision .getReasons ());
1357
1364
}
1358
1365
1359
- // for (Map.Entry<String, FeatureDecision> entry: flagDecisions.entrySet()) {
1360
- // String key = entry.getKey();
1361
- // FeatureDecision flagDecision = entry.getValue();
1362
- // DecisionReasons decisionReasons = decisionReasonsMap.get((key));
1363
- //
1364
- // OptimizelyDecision optimizelyDecision = createOptimizelyDecision(
1365
- // user, key, flagDecision, decisionReasons, allOptions, projectConfig
1366
- // );
1367
- //
1368
- // if (!allOptions.contains(OptimizelyDecideOption.ENABLED_FLAGS_ONLY) || optimizelyDecision.getEnabled()) {
1369
- // decisionMap.put(key, optimizelyDecision);
1370
- // }
1371
- // }
1372
1366
for (String key : validKeys ) {
1373
1367
FeatureDecision flagDecision = flagDecisions .get (key );
1374
1368
DecisionReasons decisionReasons = decisionReasonsMap .get ((key ));
0 commit comments