Package org.instancio
Interface Generator<T>
-
- Type Parameters:
T
- type to generate
- All Superinterfaces:
GeneratorSpec<T>
- All Known Implementing Classes:
AbstractRandomGenerator
,AbstractRandomNumberGeneratorSpec
,ArrayGenerator
,AtomicIntegerGenerator
,AtomicLongGenerator
,BigDecimalGenerator
,BigIntegerGenerator
,BooleanGenerator
,ByteGenerator
,CharacterGenerator
,CollectionGenerator
,CollectionGeneratorSpecImpl
,ConcurrentHashMapGenerator
,ConcurrentSkipListMapGenerator
,DateGenerator
,DoubleGenerator
,EnumGenerator
,FloatGenerator
,HashSetGenerator
,InstantiatingGenerator
,IntegerGenerator
,LocalDateGenerator
,LocalDateTimeGenerator
,LongGenerator
,MapGenerator
,MapGeneratorSpecImpl
,OneOfArrayGenerator
,OneOfCollectionGenerator
,ShortGenerator
,StringGenerator
,TreeMapGenerator
,TreeSetGenerator
,UUIDGenerator
,XMLGregorianCalendarGenerator
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface Generator<T> extends GeneratorSpec<T>
Generic interface for generating values.- See Also:
Generators
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description T
generate()
Depending on implementation, repeated invocations may return different values.default GeneratedHints
getHints()
default boolean
isDelegating()
Iftrue
, then this generator delegate object instantiation to another generator supplied viasetDelegate(Generator)
.default void
setDelegate(Generator<?> delegate)
Set a delegate that will be responsible for instantiating an object on behalf of this generator.default Class<?>
targetType()
-
-
-
Method Detail
-
generate
T generate()
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();
- Returns:
- generated value
-
isDelegating
default boolean isDelegating()
Iftrue
, then this generator delegate object instantiation to another generator supplied viasetDelegate(Generator)
.- Returns:
true
if this is a delegating generator
-
setDelegate
default void setDelegate(Generator<?> delegate)
Set a delegate that will be responsible for instantiating an object on behalf of this generator.- Parameters:
delegate
- that will create the target object
-
targetType
default Class<?> targetType()
-
getHints
default GeneratedHints getHints()
-
-