Package org.instancio.generators
Class Generators
java.lang.Object
org.instancio.generators.Generators
This class provides access to built-in generators.
It can be used to customise random values generated by built-in generators. This includes numeric, collection sizes, string lengths, etc.
- Since:
- 1.0.1
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription<T> ArrayGeneratorSpec<T>
array()
Customises generated arrays.atomic()
Provides access to atomic generators.booleans()
Customises generatedboolean
values.bytes()
Customises generatedByte
values.chars()
Customises generatedchar
values.<T> CollectionGeneratorSpec<T>
Customises generated collections.doubles()
Customises generatedDouble
values.<T> EmitGeneratorSpec<T>
emit()
Emits provided items.<E extends Enum<E>>
EnumAsGeneratorSpec<E>Customises generated enum values.<E extends Enum<E>>
EnumSetGeneratorSpec<E>Customises generatedEnumSet
.finance()
Provides access to finance-related generators.floats()
Customises generatedFloat
values.hash()
Generates various types of hashes.id()
Provides access to identifier generators.ints()
Customises generatedInteger
values.io()
Provides access to IO generators.longs()
Customises generatedLong
values.<K,
V> MapGeneratorSpec<K, V> map()
Customises generated maps.math()
Provides generators forjava.math
classes.net()
Provides generators forjava.net
classes.nio()
Provides access to NIO generators.final <T> OneOfCollectionGeneratorSpec<T>
oneOf
(Collection<T> choices) Picks a random value from the given choices.final <T> OneOfArrayGeneratorSpec<T>
oneOf
(T... choices) Picks a random value from the given choices.shorts()
Customises generatedShort
values.string()
Customises generatedString
values.temporal()
Provides access to temporal generators.text()
Provides access to text generators.
-
Constructor Details
-
Generators
-
-
Method Details
-
string
Customises generatedString
values.- Returns:
- customised generator
-
booleans
Customises generatedboolean
values.- Returns:
- customised generator
- Since:
- 2.0.0
-
chars
Customises generatedchar
values.- Returns:
- customised generator
- Since:
- 2.0.0
-
bytes
Customises generatedByte
values.- Returns:
- customised generator
-
shorts
Customises generatedShort
values.- Returns:
- customised generator
-
ints
Customises generatedInteger
values.- Returns:
- customised generator
-
longs
Customises generatedLong
values.- Returns:
- customised generator
-
floats
Customises generatedFloat
values.- Returns:
- customised generator
-
doubles
Customises generatedDouble
values.- Returns:
- customised generator
-
enumOf
Customises generated enum values.- Type Parameters:
E
- enum type- Parameters:
enumClass
- type of enum to generate- Returns:
- customised generator
-
math
Provides generators forjava.math
classes.- Returns:
- built-in generators for
java.math
classes.
-
net
Provides generators forjava.net
classes.- Returns:
- built-in generators for
java.net
classes. - Since:
- 2.3.0
-
oneOf
Picks a random value from the given choices.- Type Parameters:
T
- element type- Parameters:
choices
- to choose from- Returns:
- generator for making a selection
-
oneOf
Picks a random value from the given choices.- Type Parameters:
T
- element type- Parameters:
choices
- to choose from- Returns:
- generator for making a selection
-
array
Customises generated arrays.- Type Parameters:
T
- array component type- Returns:
- customised generator
-
collection
Customises generated collections.- Type Parameters:
T
- element type- Returns:
- customised generator
-
enumSet
Customises generatedEnumSet
.- Type Parameters:
E
- enum type- Parameters:
enumClass
- contained by the generated enum set- Returns:
- customised generator
- Since:
- 2.0.0
-
map
Customises generated maps.- Type Parameters:
K
- key typeV
- value type- Returns:
- customised generator
-
emit
Emits provided items. This generator would typically be used to generate collections containing different expected values.The following example generates a list of 7 orders with different statuses: 1 received, 1 shipped, 3 completed, and 2 cancelled.
List<Order> orders = Instancio.ofList(Order.class) .size(7) .generate(field(Order::getStatus), gen -> gen.emit() .items(OrderStatus.RECEIVED, OrderStatus.SHIPPED) .item(OrderStatus.COMPLETED, 3) .item(OrderStatus.CANCELLED, 2)) .create();
If the selector target is a group, then each selector will have its own copy of items, for example:
// Given class FooBar { String foo; String bar; } TargetSelector fooAndBarFields = Select.all( field(FooBar::getFoo), field(FooBar::getBar)); // When FooBar result = Instancio.of(FooBar.class) .generate(fooAndBarFields, gen -> gen.emit().items("BAZ")) .create(); // Then => FooBar[foo=BAZ, bar=BAZ]
- Type Parameters:
T
- the type to emit- Returns:
- emitting generator
- Since:
- 2.12.0
-
atomic
Provides access to atomic generators.- Returns:
- built-in atomic generators
-
io
Provides access to IO generators.- Returns:
- built-in IO generators
- Since:
- 2.2.0
-
nio
Provides access to NIO generators.- Returns:
- built-in NIO generators
- Since:
- 2.1.0
-
temporal
Provides access to temporal generators.- Returns:
- built-in temporal generators
-
text
Provides access to text generators.- Returns:
- built-in text generators
-
id
Provides access to identifier generators.- Returns:
- built-in id generators
- Since:
- 2.11.0
-
hash
Generates various types of hashes.- Returns:
- API builder reference
- Since:
- 2.11.0
-
finance
Provides access to finance-related generators.- Returns:
- built-in finance-related generators
- Since:
- 2.11.0s
-