public class DecisionService
extends java.lang.Object
| Constructor and Description |
|---|
DecisionService(Bucketer bucketer,
ErrorHandler errorHandler,
UserProfileService userProfileService)
Initialize a decision service for the Optimizely client.
|
| Modifier and Type | Method and Description |
|---|---|
DecisionResponse<Variation> |
getForcedVariation(Experiment experiment,
java.lang.String userId)
Gets the forced variation for a given user and experiment.
|
java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.String>> |
getForcedVariationMapping() |
DecisionResponse<Variation> |
getVariation(Experiment experiment,
OptimizelyUserContext user,
ProjectConfig projectConfig) |
DecisionResponse<Variation> |
getVariation(Experiment experiment,
OptimizelyUserContext user,
ProjectConfig projectConfig,
java.util.List<OptimizelyDecideOption> options)
Get a
Variation of an Experiment for a user to be allocated into. |
DecisionResponse<FeatureDecision> |
getVariationForFeature(FeatureFlag featureFlag,
OptimizelyUserContext user,
ProjectConfig projectConfig) |
DecisionResponse<FeatureDecision> |
getVariationForFeature(FeatureFlag featureFlag,
OptimizelyUserContext user,
ProjectConfig projectConfig,
java.util.List<OptimizelyDecideOption> options)
Get the variation the user is bucketed into for the FeatureFlag
|
DecisionResponse<Variation> |
getVariationFromExperimentRule(ProjectConfig projectConfig,
java.lang.String flagKey,
Experiment rule,
OptimizelyUserContext user,
java.util.List<OptimizelyDecideOption> options) |
boolean |
setForcedVariation(Experiment experiment,
java.lang.String userId,
java.lang.String variationKey)
Force a user into a variation for a given experiment.
|
DecisionResponse<Variation> |
validatedForcedDecision(OptimizelyDecisionContext optimizelyDecisionContext,
ProjectConfig projectConfig,
OptimizelyUserContext user)
Find a validated forced decision
|
public DecisionService(@Nonnull
Bucketer bucketer,
@Nonnull
ErrorHandler errorHandler,
@Nullable
UserProfileService userProfileService)
bucketer - Base bucketer to allocate new users to an experiment.errorHandler - The error handler of the Optimizely client.userProfileService - UserProfileService implementation for storing user info.@Nonnull public DecisionResponse<Variation> getVariation(@Nonnull Experiment experiment, @Nonnull OptimizelyUserContext user, @Nonnull ProjectConfig projectConfig, @Nonnull java.util.List<OptimizelyDecideOption> options)
Variation of an Experiment for a user to be allocated into.experiment - The Experiment the user will be bucketed into.user - The current OptimizelyUserContextprojectConfig - The current projectConfigoptions - An array of decision optionsDecisionResponse including the Variation that user is bucketed into (or null) and the decision reasons@Nonnull public DecisionResponse<Variation> getVariation(@Nonnull Experiment experiment, @Nonnull OptimizelyUserContext user, @Nonnull ProjectConfig projectConfig)
@Nonnull public DecisionResponse<FeatureDecision> getVariationForFeature(@Nonnull FeatureFlag featureFlag, @Nonnull OptimizelyUserContext user, @Nonnull ProjectConfig projectConfig, @Nonnull java.util.List<OptimizelyDecideOption> options)
featureFlag - The feature flag the user wants to access.user - The current OptimizelyuserContextprojectConfig - The current projectConfigoptions - An array of decision optionsDecisionResponse including a FeatureDecision and the decision reasons@Nonnull public DecisionResponse<FeatureDecision> getVariationForFeature(@Nonnull FeatureFlag featureFlag, @Nonnull OptimizelyUserContext user, @Nonnull ProjectConfig projectConfig)
public DecisionResponse<Variation> validatedForcedDecision(@Nonnull OptimizelyDecisionContext optimizelyDecisionContext, @Nonnull ProjectConfig projectConfig, @Nonnull OptimizelyUserContext user)
optimizelyDecisionContext - The OptimizelyDecisionContext containing flagKey and ruleKeyprojectConfig - The Project configuser - The OptimizelyUserContextpublic java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.String>> getForcedVariationMapping()
public boolean setForcedVariation(@Nonnull
Experiment experiment,
@Nonnull
java.lang.String userId,
@Nullable
java.lang.String variationKey)
experiment - The experiment to override.userId - The user ID to be used for bucketing.variationKey - The variation key to force the user into. If the variation key is null
then the forcedVariation for that experiment is removed.@Nonnull public DecisionResponse<Variation> getForcedVariation(@Nonnull Experiment experiment, @Nonnull java.lang.String userId)
experiment - The experiment forced.userId - The user ID to be used for bucketing.DecisionResponse including the Variation that user is bucketed into (or null)
and the decision reasons. The variation can be null if the forced variation fails.public DecisionResponse<Variation> getVariationFromExperimentRule(@Nonnull ProjectConfig projectConfig, @Nonnull java.lang.String flagKey, @Nonnull Experiment rule, @Nonnull OptimizelyUserContext user, @Nonnull java.util.List<OptimizelyDecideOption> options)