Class AbstractRandomNumberGeneratorSpec<T extends Number>

java.lang.Object
org.instancio.internal.generator.AbstractGenerator<T>
org.instancio.internal.generator.lang.AbstractRandomNumberGeneratorSpec<T>
All Implemented Interfaces:
AsStringGeneratorSpec<T>, Generator<T>, GeneratorSpec<T>, NumberGeneratorSpec<T>
Direct Known Subclasses:
AbstractRandomComparableNumberGeneratorSpec, AtomicIntegerGenerator, AtomicLongGenerator

public abstract class AbstractRandomNumberGeneratorSpec<T extends Number> extends AbstractGenerator<T> implements NumberGeneratorSpec<T>
  • Constructor Details

    • AbstractRandomNumberGeneratorSpec

      protected AbstractRandomNumberGeneratorSpec(GeneratorContext context, T min, T max, boolean nullable)
  • Method Details

    • generateNonNullValue

      protected abstract T generateNonNullValue(Random random)
    • getMin

      protected T getMin()
    • getMax

      protected T getMax()
    • min

      public NumberGeneratorSpec<T> min(T min)
      Description copied from interface: NumberGeneratorSpec
      Lower bound for the random number generator.
      Specified by:
      min in interface NumberGeneratorSpec<T extends Number>
      Parameters:
      min - lower bound (inclusive)
      Returns:
      spec builder
    • max

      public NumberGeneratorSpec<T> max(T max)
      Description copied from interface: NumberGeneratorSpec
      Upper bound for the random number generator.
      Specified by:
      max in interface NumberGeneratorSpec<T extends Number>
      Parameters:
      max - upper bound (inclusive)
      Returns:
      spec builder
    • range

      public NumberGeneratorSpec<T> range(T min, T max)
      Description copied from interface: NumberGeneratorSpec
      Range for the random number generator
      Specified by:
      range in interface NumberGeneratorSpec<T extends Number>
      Parameters:
      min - lower bound (inclusive)
      max - upper bound (inclusive)
      Returns:
      spec builder
    • nullable

      public NumberGeneratorSpec<T> nullable()
      Description copied from interface: NumberGeneratorSpec
      Specifies the generated value can be null.
      Specified by:
      nullable in interface NumberGeneratorSpec<T extends Number>
      Returns:
      spec builder
    • generate

      public final T generate(Random random)
      Description copied from interface: Generator
      Returns a generated value.

      If this method produces random data, the data needs to be generated using the provided Random instance. This ensures generated values are reproducible for a given seed value.

      Specified by:
      generate in interface Generator<T extends Number>
      Parameters:
      random - provider for generating random values
      Returns:
      generated value or null if value is nullable, could not be generated, or generation is delegated to the engine