Package org.togglz.core.activation
Class GradualActivationStrategy
- java.lang.Object
-
- org.togglz.core.activation.GradualActivationStrategy
-
- All Implemented Interfaces:
ActivationStrategy
public class GradualActivationStrategy extends Object implements ActivationStrategy
Activation strategy that enables features for a given percentage of users. This strategy is typically used to implement gradual rollouts. The implementation is based on a hashcode created from the name of the acting user which is calculated bycalculateHashCode(FeatureUser).- Author:
- Christian Kaltepoth
-
-
Field Summary
Fields Modifier and Type Field Description static StringIDstatic StringPARAM_PERCENTAGE
-
Constructor Summary
Constructors Constructor Description GradualActivationStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected intcalculateHashCode(FeatureUser user)Deprecated.UsecalculateHashCode(FeatureUser, Feature)insteadprotected intcalculateHashCode(FeatureUser user, Feature feature)StringgetId()A unique id for this strategy.StringgetName()A human readable name of the strategy.Parameter[]getParameters()Returns the list of configuration parameter definitions for the strategy.booleanisActive(FeatureState state, FeatureUser user)This method is responsible to decide whether a feature is active or not.
-
-
-
Field Detail
-
ID
public static final String ID
- See Also:
- Constant Field Values
-
PARAM_PERCENTAGE
public static final String PARAM_PERCENTAGE
- See Also:
- Constant Field Values
-
-
Method Detail
-
getId
public String getId()
Description copied from interface:ActivationStrategyA unique id for this strategy. This id is used to persist the selected strategy in theStateRepository.- Specified by:
getIdin interfaceActivationStrategy
-
getName
public String getName()
Description copied from interface:ActivationStrategyA human readable name of the strategy. This name is used to in the admin console to represent the strategy.- Specified by:
getNamein interfaceActivationStrategy
-
isActive
public boolean isActive(FeatureState state, FeatureUser user)
Description copied from interface:ActivationStrategyThis method is responsible to decide whether a feature is active or not. The implementation can use the custom configuration parameters of the strategy stored in the feature state and information from the currently acting user to find a decision.- Specified by:
isActivein interfaceActivationStrategy- Parameters:
state- The feature state which represents the current configuration of the feature. The implementation of the method typically usesFeatureState.getParameter(String)to access custom configuration parameter values.user- The user for which to decide whether the feature is active. May benullif the user could not be identified by theUserProvider.- Returns:
trueif the feature should be active, elsefalse
-
calculateHashCode
@Deprecated protected int calculateHashCode(FeatureUser user)
Deprecated.UsecalculateHashCode(FeatureUser, Feature)instead
-
calculateHashCode
protected int calculateHashCode(FeatureUser user, Feature feature)
-
getParameters
public Parameter[] getParameters()
Description copied from interface:ActivationStrategyReturns the list of configuration parameter definitions for the strategy. Parameters are typically built using a
ParameterBuilderclass but users can also create custom implementations of theParameterinterface.Example:
public Parameter[] getParameters() { return new Parameter[] { ParameterBuilder.create("country").label("Country Code").matching("[A-Z]+") }; }- Specified by:
getParametersin interfaceActivationStrategy- See Also:
ParameterBuilder
-
-