package com.ldbc.driver.generator; import com.ldbc.driver.util.NumberHelper; import org.apache.commons.math3.random.RandomDataGenerator; public class DynamicRangeUniformNumberGenerator<GENERATE_TYPE extends Number> extends Generator<GENERATE_TYPE> { private final MinMaxGenerator<GENERATE_TYPE> lowerBoundGenerator; private final MinMaxGenerator<GENERATE_TYPE> upperBoundGenerator; private final NumberHelper<GENERATE_TYPE> number; private final RandomDataGenerator random; DynamicRangeUniformNumberGenerator(RandomDataGenerator random, MinMaxGenerator<GENERATE_TYPE> lowerBoundGenerator, MinMaxGenerator<GENERATE_TYPE> upperBoundGenerator) { this.random = random; this.lowerBoundGenerator = lowerBoundGenerator; this.upperBoundGenerator = upperBoundGenerator; this.number = NumberHelper.createNumberHelper(lowerBoundGenerator.getMin().getClass()); } @Override protected GENERATE_TYPE doNext() throws GeneratorException { return number.uniform(random, lowerBoundGenerator.getMin(), upperBoundGenerator.getMax()); } }