Interface CsvSpec

All Superinterfaces:
CsvGeneratorSpec, GeneratorSpec<String>, ValueSpec<String>

@ExperimentalApi public interface CsvSpec extends CsvGeneratorSpec, ValueSpec<String>
Spec for generating CSV.
Since:
2.12.0
  • Method Details

    • column

      CsvSpec column(String name, Generator<?> generator)
      Description copied from interface: CsvGeneratorSpec
      Specifies the column name and the generator for producing the values.

      Example:

      
         DataImport data = Instancio.of(DataImport.class)
             .generate(field(DataImport::getCsv), gen -> gen.text().csv()
                 .column("productCode", random -> random.upperCaseAlphabetic(5))
                 .column("skuCode", new SkuCodeGenerator())
                 .column("quantity", random -> random.intRange(1, 100)))
            .create();
       
      Specified by:
      column in interface CsvGeneratorSpec
      Parameters:
      name - of the column
      generator - for generating values
      Returns:
      spec builder
      See Also:
    • column

      CsvSpec column(String name, GeneratorSpec<?> generatorSpec)
      Description copied from interface: CsvGeneratorSpec
      Specifies the column name and the generator spec for producing the values.

      This method can be used with Gen, for example:

      
         String csv = Gen.text().csv()
            .column("productCode", Gen.string().length(5))
            .column("quantity", Gen.ints().range(1, 100))
            .get();
       
      Specified by:
      column in interface CsvGeneratorSpec
      Parameters:
      name - of the column
      generatorSpec - for generating values
      Returns:
      spec builder
      See Also:
    • rows

      CsvSpec rows(int rows)
      Description copied from interface: CsvGeneratorSpec
      Number of rows to generate.
      Specified by:
      rows in interface CsvGeneratorSpec
      Parameters:
      rows - number of rows to generate
      Returns:
      spec builder
      See Also:
    • rows

      CsvSpec rows(int minRows, int maxRows)
      Description copied from interface: CsvGeneratorSpec
      A range for the number of rows to generate. A random number of rows within the given range will be generated.
      Specified by:
      rows in interface CsvGeneratorSpec
      Parameters:
      minRows - minimum number of rows (inclusive)
      maxRows - maximum number of rows (inclusive)
      Returns:
      spec builder
      See Also:
    • noHeader

      CsvSpec noHeader()
      Description copied from interface: CsvGeneratorSpec
      Omit CSV header from the output. The default is to include the header.
      Specified by:
      noHeader in interface CsvGeneratorSpec
      Returns:
      spec builder
    • wrapWith

      CsvSpec wrapWith(String wrapWith)
      Description copied from interface: CsvGeneratorSpec
      A string to wrap the values with, for example quotes. The default is null.
      Specified by:
      wrapWith in interface CsvGeneratorSpec
      Parameters:
      wrapWith - a string to wrap the values with.
      Returns:
      spec builder
      See Also:
    • wrapIf

      CsvSpec wrapIf(Predicate<Object> condition)
      Description copied from interface: CsvGeneratorSpec
      A condition that must be satisfied to wrap a value. If CsvGeneratorSpec.wrapWith(String) is specified, the default is to wrap all values.

      For example, to specify that only strings should be wrapped:

      
         String csv = Gen.text().csv()
            .column("column1", Gen.string())
            .column("column2", Gen.ints())
            .wrapWith("\"")
            .wrapIf(value -> value instanceof String)
            .get()
      
         // Sample output:
         //
         // column1,column2
         // "KJDTJZRCYY",2454
         // "LUOQGNQUUJ",9125
         // "FHRFTI",6809
       
      Specified by:
      wrapIf in interface CsvGeneratorSpec
      Parameters:
      condition - for wrapping a value
      Returns:
      spec builder
      See Also:
    • separator

      CsvSpec separator(String separator)
      Description copied from interface: CsvGeneratorSpec
      Specifies the value separator. The default is comma: ','.
      Specified by:
      separator in interface CsvGeneratorSpec
      Parameters:
      separator - for separating values
      Returns:
      spec builder
    • lineSeparator

      CsvSpec lineSeparator(String lineSeparator)
      Description copied from interface: CsvGeneratorSpec
      Specifies the line separator. The default is System.lineSeparator().
      Specified by:
      lineSeparator in interface CsvGeneratorSpec
      Parameters:
      lineSeparator - for separating rows
      Returns:
      spec builder