Package com.indeed.proctor.common
Class TestRangeSelector
- java.lang.Object
-
- com.indeed.proctor.common.TestRangeSelector
-
- Direct Known Subclasses:
UnitlessAllocationRangeSelector
public class TestRangeSelector extends java.lang.ObjectThis is perhaps not the greatest abstraction the world has seen; is meant to consolidate common functionality needed for different types of choosers WITHOUT using inheritance
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description intfindMatchingRule(java.util.Map<java.lang.String,java.lang.Object> values, java.util.Map<java.lang.String,TestBucket> testGroups, java.lang.String identifier)Deprecated.Use findMatchingRuleWithValueExpr(Map, Map) instead, which is more efficient.intfindMatchingRuleWithValueExpr(java.util.Map<java.lang.String,javax.el.ValueExpression> localContext, java.util.Map<java.lang.String,TestBucket> testGroups, java.lang.String identifier)TestBucket[]getBucketRange(int index)protected intgetMatchingAllocation(java.util.function.Function<java.lang.String,java.lang.Boolean> evaluator, java.lang.String identifier)java.lang.String[]getRules()TestBucketgetTestBucket(int value)Do not evaluate the rule, do not use the pseudo-random allocation algorithm, do not collect $200.ConsumableTestDefinitiongetTestDefinition()java.lang.StringgetTestName()protected voidprintTestBuckets(java.io.PrintWriter writer, java.util.Map<java.lang.String,java.lang.String> parameters)appends testbuckets in a notation a bit similar to Json
-
-
-
Method Detail
-
getBucketRange
public TestBucket[] getBucketRange(int index)
-
findMatchingRule
@Deprecated public int findMatchingRule(@Nonnull java.util.Map<java.lang.String,java.lang.Object> values, @Nonnull java.util.Map<java.lang.String,TestBucket> testGroups, @Nullable java.lang.String identifier)Deprecated.Use findMatchingRuleWithValueExpr(Map, Map) instead, which is more efficient.
-
findMatchingRuleWithValueExpr
public int findMatchingRuleWithValueExpr(@Nonnull java.util.Map<java.lang.String,javax.el.ValueExpression> localContext, @Nonnull java.util.Map<java.lang.String,TestBucket> testGroups, @Nullable java.lang.String identifier)
-
getMatchingAllocation
protected int getMatchingAllocation(java.util.function.Function<java.lang.String,java.lang.Boolean> evaluator, @Nullable java.lang.String identifier)
-
getRules
@Nonnull public java.lang.String[] getRules()
-
getTestDefinition
@Nonnull public ConsumableTestDefinition getTestDefinition()
-
getTestBucket
@CheckForNull public TestBucket getTestBucket(int value)
Do not evaluate the rule, do not use the pseudo-random allocation algorithm, do not collect $200. This should ONLY be used by privileged code for debugging.- Parameters:
value- bucket number- Returns:
- a
TestBucketwith the specified value or null if none exists
-
getTestName
@Nonnull public java.lang.String getTestName()
-
printTestBuckets
protected void printTestBuckets(@Nonnull java.io.PrintWriter writer, @Nonnull java.util.Map<java.lang.String,java.lang.String> parameters)appends testbuckets in a notation a bit similar to Json
-
-