@@ -268,6 +268,138 @@ public interface SplitClient {
268268 */
269269 Map <String , SplitResult > getTreatmentsWithConfig (Key key , List <String > featureFlagNames , Map <String , Object > attributes );
270270
271+ /**
272+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
273+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
274+ * <p/>
275+ * <p/>
276+ * Examples include showing a different treatment to users on trial plan
277+ * vs. premium plan. Another example is to show a different treatment
278+ * to users created after a certain date.
279+ *
280+ * @param key a unique key of your customer (e.g. user_id, user_email, account_id, etc.) MUST not be null or empty.
281+ * @param flagSet the Flag Set name that you want to evaluate. MUST not be null or empty.
282+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
283+ * @return for each feature flag the evaluated treatment, the default treatment of this feature flag, or 'control'.
284+ */
285+ Map <String , String > getTreatmentsByFlagSet (String key , String flagSet , Map <String , Object > attributes );
286+
287+ /**
288+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
289+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
290+ * <p/>
291+ * <p/>
292+ * Examples include showing a different treatment to users on trial plan
293+ * vs. premium plan. Another example is to show a different treatment
294+ * to users created after a certain date.
295+ *
296+ * @param key the matching and bucketing keys. MUST not be null or empty.
297+ * @param flagSet the Flag Set name that you want to evaluate. MUST not be null or empty.
298+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
299+ * @return for each feature flag the evaluated treatment, the default treatment of this feature flag, or 'control'.
300+ */
301+ Map <String , String > getTreatmentsByFlagSet (Key key , String flagSet , Map <String , Object > attributes );
302+
303+ /**
304+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
305+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
306+ * <p/>
307+ * <p/>
308+ * Examples include showing a different treatment to users on trial plan
309+ * vs. premium plan. Another example is to show a different treatment
310+ * to users created after a certain date.
311+ *
312+ * @param key a unique key of your customer (e.g. user_id, user_email, account_id, etc.) MUST not be null or empty.
313+ * @param flagSets the names of Flag Sets that you want to evaluate. MUST not be null or empty.
314+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
315+ * @return for each feature flag the evaluated treatment, the default treatment of this feature flag, or 'control'.
316+ */
317+ Map <String , String > getTreatmentsByFlagSets (String key , List <String > flagSets , Map <String , Object > attributes );
318+
319+ /**
320+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
321+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
322+ * <p/>
323+ * <p/>
324+ * Examples include showing a different treatment to users on trial plan
325+ * vs. premium plan. Another example is to show a different treatment
326+ * to users created after a certain date.
327+ *
328+ * @param key the matching and bucketing keys. MUST not be null or empty.
329+ * @param flagSets the names of Flag Sets that you want to evaluate. MUST not be null or empty.
330+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
331+ * @return for each feature flag the evaluated treatment, the default treatment of this feature flag, or 'control'.
332+ */
333+ Map <String , String > getTreatmentsByFlagSets (Key key , List <String > flagSets , Map <String , Object > attributes );
334+
335+ /**
336+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
337+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
338+ * <p/>
339+ * <p/>
340+ * Examples include showing a different treatment to users on trial plan
341+ * vs. premium plan. Another example is to show a different treatment
342+ * to users created after a certain date.
343+ *
344+ * @param key a unique key of your customer (e.g. user_id, user_email, account_id, etc.) MUST not be null or empty.
345+ * @param flagSet the Flag Set name that you want to evaluate. MUST not be null or empty.
346+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
347+ * @return for each feature flag the evaluated treatment (the default treatment of this feature flag, or 'control') and a configuration
348+ * associated to this treatment if set.
349+ */
350+ Map <String , SplitResult > getTreatmentsWithConfigByFlagSet (String key , String flagSet , Map <String , Object > attributes );
351+
352+ /**
353+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
354+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
355+ * <p/>
356+ * <p/>
357+ * Examples include showing a different treatment to users on trial plan
358+ * vs. premium plan. Another example is to show a different treatment
359+ * to users created after a certain date.
360+ *
361+ * @param key the matching and bucketing keys. MUST not be null or empty.
362+ * @param flagSet the Flag Set name that you want to evaluate. MUST not be null or empty.
363+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
364+ * @return for each feature flag the evaluated treatment (the default treatment of this feature flag, or 'control') and a configuration
365+ * associated to this treatment if set.
366+ */
367+ Map <String , SplitResult > getTreatmentsWithConfigByFlagSet (Key key , String flagSet , Map <String , Object > attributes );
368+
369+ /**
370+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
371+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
372+ * <p/>
373+ * <p/>
374+ * Examples include showing a different treatment to users on trial plan
375+ * vs. premium plan. Another example is to show a different treatment
376+ * to users created after a certain date.
377+ *
378+ * @param key a unique key of your customer (e.g. user_id, user_email, account_id, etc.) MUST not be null or empty.
379+ * @param flagSets the names of Flag Sets that you want to evaluate. MUST not be null or empty.
380+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
381+ * @return for each feature flag the evaluated treatment (the default treatment of this feature flag, or 'control') and a configuration
382+ * associated to this treatment if set.
383+ */
384+ Map <String , SplitResult > getTreatmentsWithConfigByFlagSets (String key , List <String > flagSets , Map <String , Object > attributes );
385+
386+ /**
387+ * Same as {@link #getTreatments(String, List<String>, Map)} but it returns for each feature flag the configuration associated to the
388+ * matching treatment if any. Otherwise {@link SplitResult.configurations()} will be null.
389+ * <p/>
390+ * <p/>
391+ * Examples include showing a different treatment to users on trial plan
392+ * vs. premium plan. Another example is to show a different treatment
393+ * to users created after a certain date.
394+ *
395+ * @param key the matching and bucketing keys. MUST not be null or empty.
396+ * @param flagSets the names of Flag Sets that you want to evaluate. MUST not be null or empty.
397+ * @param attributes of the customer (user, account etc.) to use in evaluation. Can be null or empty.
398+ * @return for each feature flag the evaluated treatment (the default treatment of this feature flag, or 'control') and a configuration
399+ * associated to this treatment if set.
400+ */
401+ Map <String , SplitResult > getTreatmentsWithConfigByFlagSets (Key key , List <String > flagSets , Map <String , Object > attributes );
402+
271403 /**
272404 * Destroys the background processes and clears the cache, releasing the resources used by
273405 * the any instances of SplitClient or SplitManager generated by the client's parent SplitFactory
0 commit comments