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 generatedinvalid @link
boolean
bytes()
Customises generatedByte
values.chars()
Customises generatedinvalid @link
char
checksum()
Provides access to checksum generators.<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.intSeq()
AnInteger
sequence generator.io()
Provides access to IO generators.longs()
Customises generatedLong
values.longSeq()
ALong
sequence generator.<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> NullableGeneratorSpec<T>
oneOf
(Collection<T> choices) Picks a random value from the given choices.final <T> NullableGeneratorSpec<T>
oneOf
(T... choices) Picks a random value from the given choices.final <T> OptionalGeneratorSpec<T>
optional()
Customises generatedOptional
.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 generatedinvalid @link
boolean
- Returns:
- customised generator
- Since:
- 2.0.0
-
chars
Customises generatedinvalid @link
char
- 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
-
intSeq
AnInteger
sequence generator.- Returns:
- sequence generator
- Since:
- 2.13.0
-
longs
Customises generatedLong
values.- Returns:
- customised generator
-
longSeq
ALong
sequence generator.- Returns:
- sequence generator
- Since:
- 2.13.0
-
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
-
optional
Customises generatedOptional
.- Type Parameters:
T
- the type of value- Returns:
- optional generator spec
- Since:
- 2.14.0
-
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]
Warning: special care must be taken to ensure that the selector associated with
emit()
matches only the expected target and nothing else. Failure to do so may produce unexpected results.- 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
-
checksum
Provides access to checksum generators.- Returns:
- built-in checksum generators
- Since:
- 2.16.0
-
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.0
-