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 boolean values.
      Returns:
      customised generator
      Since:
      2.0.0
    • chars

      public CharacterAsGeneratorSpec chars()
      Customises generated 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
    • longs

      public NumberAsGeneratorSpec<Long> longs()
      Customises generated Long values.
      Returns:
      customised generator
    • 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> OneOfArrayGeneratorSpec<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> OneOfCollectionGeneratorSpec<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
    • 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]
       
      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
    • 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.0s