Class Generators

java.lang.Object
org.instancio.generators.Generators

public class Generators extends Object
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 Details

  • Method Details

    • string

      public StringGeneratorSpec string()
      Customises generated String values.
      Returns:
      customised generator
    • booleans

      public BooleanAsGeneratorSpec booleans()
      Customises generated
      invalid reference
      boolean
      values.
      Returns:
      customised generator
      Since:
      2.0.0
    • chars

      public CharacterAsGeneratorSpec chars()
      Customises generated
      invalid reference
      char
      values.
      Returns:
      customised generator
      Since:
      2.0.0
    • bytes

      public NumberAsGeneratorSpec<Byte> bytes()
      Customises generated Byte values.
      Returns:
      customised generator
    • shorts

      public NumberAsGeneratorSpec<Short> shorts()
      Customises generated Short values.
      Returns:
      customised generator
    • ints

      Customises generated Integer values.
      Returns:
      customised generator
    • intSeq

      An Integer sequence generator.
      Returns:
      sequence generator
      Since:
      2.13.0
    • longs

      public NumberAsGeneratorSpec<Long> longs()
      Customises generated Long values.
      Returns:
      customised generator
    • longSeq

      A Long sequence generator.
      Returns:
      sequence generator
      Since:
      2.13.0
    • floats

      public NumberAsGeneratorSpec<Float> floats()
      Customises generated Float values.
      Returns:
      customised generator
    • doubles

      public NumberAsGeneratorSpec<Double> doubles()
      Customises generated Double values.
      Returns:
      customised generator
    • enumOf

      public <E extends Enum<E>> EnumAsGeneratorSpec<E> enumOf(Class<E> enumClass)
      Customises generated enum values.
      Type Parameters:
      E - enum type
      Parameters:
      enumClass - type of enum to generate
      Returns:
      customised generator
    • math

      public MathGenerators math()
      Provides generators for java.math classes.
      Returns:
      built-in generators for java.math classes.
    • net

      public NetGenerators net()
      Provides generators for java.net classes.
      Returns:
      built-in generators for java.net classes.
      Since:
      2.3.0
    • oneOf

      @SafeVarargs public final <T> NullableGeneratorSpec<T> oneOf(T... choices)
      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

      public final <T> NullableGeneratorSpec<T> oneOf(Collection<T> choices)
      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

      public final <T> OptionalGeneratorSpec<T> optional()
      Customises generated Optional.
      Type Parameters:
      T - the type of value
      Returns:
      optional generator spec
      Since:
      2.14.0
    • array

      public <T> ArrayGeneratorSpec<T> array()
      Customises generated arrays.
      Type Parameters:
      T - array component type
      Returns:
      customised generator
    • collection

      public <T> CollectionGeneratorSpec<T> collection()
      Customises generated collections.
      Type Parameters:
      T - element type
      Returns:
      customised generator
    • enumSet

      public <E extends Enum<E>> EnumSetGeneratorSpec<E> enumSet(Class<E> enumClass)
      Customises generated EnumSet.
      Type Parameters:
      E - enum type
      Parameters:
      enumClass - contained by the generated enum set
      Returns:
      customised generator
      Since:
      2.0.0
    • map

      public <K, V> MapGeneratorSpec<K,V> map()
      Customises generated maps.
      Type Parameters:
      K - key type
      V - value type
      Returns:
      customised generator
    • emit

      @ExperimentalApi public <T> EmitGeneratorSpec<T> 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

      public AtomicGenerators atomic()
      Provides access to atomic generators.
      Returns:
      built-in atomic generators
    • checksum

      public ChecksumGenerators checksum()
      Provides access to checksum generators.
      Returns:
      built-in checksum generators
      Since:
      2.16.0
    • io

      public IoGenerators io()
      Provides access to IO generators.
      Returns:
      built-in IO generators
      Since:
      2.2.0
    • nio

      public NioGenerators nio()
      Provides access to NIO generators.
      Returns:
      built-in NIO generators
      Since:
      2.1.0
    • temporal

      public TemporalGenerators temporal()
      Provides access to temporal generators.
      Returns:
      built-in temporal generators
    • text

      public TextGenerators text()
      Provides access to text generators.
      Returns:
      built-in text generators
    • id

      public IdGenerators id()
      Provides access to identifier generators.
      Returns:
      built-in id generators
      Since:
      2.11.0
    • hash

      public HashAsGeneratorSpec hash()
      Generates various types of hashes.
      Returns:
      API builder reference
      Since:
      2.11.0
    • finance

      public FinanceGenerators finance()
      Provides access to finance-related generators.
      Returns:
      built-in finance-related generators
      Since:
      2.11.0
    • spatial

      public SpatialGenerators spatial()
      Provides access to spatial data type related generators.
      Returns:
      built-in spatial data type related generators
      Since:
      4.4.0