Class AbstractRandomNumberGeneratorSpec<T extends Number>
- java.lang.Object
-
- org.instancio.generators.AbstractRandomGenerator<T>
-
- org.instancio.generators.coretypes.AbstractRandomNumberGeneratorSpec<T>
-
- All Implemented Interfaces:
Generator<T>
,NumberGeneratorSpec<T>
,GeneratorSpec<T>
- Direct Known Subclasses:
AtomicIntegerGenerator
,AtomicLongGenerator
,BigDecimalGenerator
,BigIntegerGenerator
,ByteGenerator
,DoubleGenerator
,FloatGenerator
,IntegerGenerator
,LongGenerator
,ShortGenerator
public abstract class AbstractRandomNumberGeneratorSpec<T extends Number> extends AbstractRandomGenerator<T> implements NumberGeneratorSpec<T>
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRandomNumberGeneratorSpec(GeneratorContext context, T min, T max, boolean nullable)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description T
generate()
Depending on implementation, repeated invocations may return different values.protected abstract T
generateNonNullValue()
GeneratedHints
getHints()
NumberGeneratorSpec<T>
max(T max)
Upper bound for the random number generator.NumberGeneratorSpec<T>
min(T min)
Lower bound for the random number generator.NumberGeneratorSpec<T>
nullable()
Specifies the generated value can benull
.-
Methods inherited from class org.instancio.generators.AbstractRandomGenerator
getContext, random
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.instancio.Generator
isDelegating, setDelegate, targetType
-
-
-
-
Constructor Detail
-
AbstractRandomNumberGeneratorSpec
protected AbstractRandomNumberGeneratorSpec(GeneratorContext context, T min, T max, boolean nullable)
-
-
Method Detail
-
generateNonNullValue
protected abstract T generateNonNullValue()
-
min
public NumberGeneratorSpec<T> min(T min)
Description copied from interface:NumberGeneratorSpec
Lower bound for the random number generator.- Specified by:
min
in interfaceNumberGeneratorSpec<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 interfaceNumberGeneratorSpec<T extends Number>
- Parameters:
max
- upper bound (exclusive)- Returns:
- spec builder
-
nullable
public NumberGeneratorSpec<T> nullable()
Description copied from interface:NumberGeneratorSpec
Specifies the generated value can benull
.- Specified by:
nullable
in interfaceNumberGeneratorSpec<T extends Number>
- Returns:
- spec builder
-
generate
public final T generate()
Description copied from interface:Generator
Depending on implementation, repeated invocations may return different values. Some implementations may return random values on each invocation, while others may return predefined values or random values from a given set.Generators can be passed in as a lambda function. The following example shows how to override generation strategy for certain fields.
Person person = Instancio.of(Person.class) .generate(field("age"), gen -> gen.oneOf(20, 30, 40, 50)) .supply(field("location"), () -> "Canada") .supply(all(LocalDateTime.class), () -> LocalDateTime.now()) .create();
-
getHints
public GeneratedHints getHints()
-
-