Class AbstractRandomNumberGeneratorSpec<T extends Number>

java.lang.Object
org.instancio.generator.AbstractGenerator<T>
org.instancio.generator.lang.AbstractRandomNumberGeneratorSpec<T>
All Implemented Interfaces:
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>
  • Field Details

    • min

      protected T extends Number min
    • max

      protected T extends Number max
    • nullable

      protected boolean nullable
  • 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 the generated value is random, it needs to be generated using the given Random instance. This ensures the data is generated with the same seed value and allows random data to be reproduced by specifying the seed value.

      Specified by:
      generate in interface Generator<T extends Number>
      Parameters:
      random - provider for random values
      Returns:
      generated value
    • getHints

      public GeneratedHints getHints()
      Description copied from interface: Generator
      Returns hints, including collection sizes and whether values are nullable.
      Specified by:
      getHints in interface Generator<T extends Number>
      Returns:
      generated hints