package org.radargun.stages.test; import java.util.Random; import org.radargun.Operation; import org.radargun.utils.Selector; /** * Ratio-based selector of operations * * @author Radim Vansa <rvansa@redhat.com> */ public class RatioOperationSelector extends Selector<Operation> implements OperationSelector { public RatioOperationSelector(int max, Operation[] operations, int[] ratios) { super(max, operations, ratios); } @Override public void start() { } @Override public Operation next(Random random) { return select(random.nextInt(max)); } public static class Builder extends Selector.Builder<Operation, RatioOperationSelector> { public Builder() { super(Operation.class); } @Override protected RatioOperationSelector newSelector(int[] ratios) { return new RatioOperationSelector(max, options.toArray(new Operation[options.size()]), ratios); } } }