Class CsvGenerator
java.lang.Object
org.instancio.internal.generator.AbstractGenerator<String>
org.instancio.internal.generator.text.CsvGenerator
- All Implemented Interfaces:
Generator<String>
,GeneratorSpec<String>
,CsvGeneratorSpec
,CsvSpec
,NullableGeneratorSpec<String>
,ValueSpec<String>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns the public API method name of the generator spec.Specifies the column name and the generator for producing the values.column
(String name, GeneratorSpec<?> generatorSpec) Specifies the column name and the generator spec for producing the values.lineSeparator
(String lineSeparator) Specifies the line separator.noHeader()
Omit CSV header from the output.nullable()
Indicates thatnull
value can be generated.rows
(int rows) Number of rows to generate.rows
(int min, int max) A range for the number of rows to generate.Specifies the value separator.protected String
tryGenerateNonNull
(Random random) Makes the best effort to return a non-null value.A condition that must be satisfied to wrap a value.A string to wrap the values with, for example quotes.Methods inherited from class org.instancio.internal.generator.AbstractGenerator
generate, getContext, hints, isNullable, nullable
-
Constructor Details
-
CsvGenerator
public CsvGenerator() -
CsvGenerator
-
-
Method Details
-
apiMethod
Description copied from class:AbstractGenerator
Returns the public API method name of the generator spec. The returned name is used for reporting validation errors.- Specified by:
apiMethod
in classAbstractGenerator<String>
- Returns:
- spec name if defined, or
null
otherwise
-
column
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 interfaceCsvGeneratorSpec
- Specified by:
column
in interfaceCsvSpec
- Parameters:
name
- of the columngeneratorSpec
- for generating values- Returns:
- spec builder
- See Also:
-
column
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 interfaceCsvGeneratorSpec
- Specified by:
column
in interfaceCsvSpec
- Parameters:
name
- of the columngenerator
- for generating values- Returns:
- spec builder
- See Also:
-
rows
Description copied from interface:CsvGeneratorSpec
Number of rows to generate.- Specified by:
rows
in interfaceCsvGeneratorSpec
- Specified by:
rows
in interfaceCsvSpec
- Parameters:
rows
- number of rows to generate- Returns:
- spec builder
- See Also:
-
rows
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 interfaceCsvGeneratorSpec
- Specified by:
rows
in interfaceCsvSpec
- Parameters:
min
- minimum number of rows (inclusive)max
- maximum number of rows (inclusive)- Returns:
- spec builder
- See Also:
-
noHeader
Description copied from interface:CsvGeneratorSpec
Omit CSV header from the output. The default is to include the header.- Specified by:
noHeader
in interfaceCsvGeneratorSpec
- Specified by:
noHeader
in interfaceCsvSpec
- Returns:
- spec builder
-
wrapWith
Description copied from interface:CsvGeneratorSpec
A string to wrap the values with, for example quotes. The default isnull
.- Specified by:
wrapWith
in interfaceCsvGeneratorSpec
- Specified by:
wrapWith
in interfaceCsvSpec
- Parameters:
wrapWith
- a string to wrap the values with.- Returns:
- spec builder
- See Also:
-
wrapIf
Description copied from interface:CsvGeneratorSpec
A condition that must be satisfied to wrap a value. IfCsvGeneratorSpec.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 interfaceCsvGeneratorSpec
- Specified by:
wrapIf
in interfaceCsvSpec
- Parameters:
wrapIf
- for wrapping a value- Returns:
- spec builder
- See Also:
-
separator
Description copied from interface:CsvGeneratorSpec
Specifies the value separator. The default is comma:','
.- Specified by:
separator
in interfaceCsvGeneratorSpec
- Specified by:
separator
in interfaceCsvSpec
- Parameters:
separator
- for separating values- Returns:
- spec builder
-
lineSeparator
Description copied from interface:CsvGeneratorSpec
Specifies the line separator. The default isSystem.lineSeparator()
.- Specified by:
lineSeparator
in interfaceCsvGeneratorSpec
- Specified by:
lineSeparator
in interfaceCsvSpec
- Parameters:
lineSeparator
- for separating rows- Returns:
- spec builder
-
nullable
Description copied from interface:NullableGeneratorSpec
Indicates thatnull
value can be generated.- Specified by:
nullable
in interfaceNullableGeneratorSpec<String>
- Specified by:
nullable
in interfaceValueSpec<String>
- Overrides:
nullable
in classAbstractGenerator<String>
- Returns:
- spec builder
-
tryGenerateNonNull
Description copied from class:AbstractGenerator
Makes the best effort to return a non-null value. However, in certain cases this method will produce anull
.- Specified by:
tryGenerateNonNull
in classAbstractGenerator<String>
- Parameters:
random
- for generating the value- Returns:
- generated value, either a null or non-null
-