MultiLineOutput
If you used abankmark.pdgf.generator.For or a similar construct generating an List<Object> of values per field and row, this output will split and replicate this single line into multiple lines.
Example: Original Line:
{1,2,{A,B,C},3,{D,E,F}}
will result in:
{1,2,A,3,D}
{1,2,B,3,E}
{1,2,B,3,F}
Additionally this output can interleave the virtual lines in within a batch.
Example with batch size 3:
{1,1,{A,B,C},1,{D,E,F}}
{2,2,{A,B,C},2,{D,E,F}}
{3,3,{A,B,C},3,{D,E,F}}
Will produce 9 virtual lines:
{1,1,A,1,D}
{1,1,B,1,E}
{1,1,C,1,F}
{2,2,A,2,D}
{2,2,B,2,E}
{2,2,C,2,F}
{3,3,A,3,D}
{3,3,B,3,E}
{3,3,C,3,F}
It randomly interleaves the lines (but keeps the order of the sublines):
{3,3,A,3,D}
{3,3,B,3,E}
{2,2,A,2,D}
{1,1,A,1,D}
{1,1,B,1,E}
{2,2,B,2,E}
{2,2,C,2,F}
{1,1,C,1,F}
{3,3,C,3,F}
Name | Description | Required | Min | Max | Allowed Values |
---|---|---|---|---|---|
name | (Class)Name of this element. Used to identify plugin Class. Full name is required. Example: com.en.myPluginPackage.myPuginClass | yes | 1 | 1 | |
active | Boolean flag if this output is active/used | no | 0 | 1 |
|
id | Identification String of this element. May be used to uniquely identify a field within the children of an Element. | no | 0 | 1 |
Name | Description | Required | Min | Max | Allowed Values |
---|---|---|---|---|---|
multilineFieldId | Content type: Integer Sets the field from which the number of lines to extract is determined. The specified field MUST contain a list. Example: If this is set to '2', then the third field (fieldID is an array index, so starting at 0) must contain a list. If that list has a length of '42', then the generator uses that value to iterate over all other lists it might encounter. When writing out the generated data, the logic is follows: If a field does not contain a list, the value is printed out in each of the 42 lines. If a field contains a list, the current list item is printed out (so in the first line, list index 0 is printed, in the second line index 1, and so on). The user must make sure that ALL lists within one line of the data generator's output have the same length.If it contains a longer list than the specified multilineFieldId list, trailing elements will be ignored. If it contains a shorter list, an error will occur if this generator tries to access the missing elements. |
yes | 1 | 1 | |
fileTemplate | Content type: Java code Generic directory and filename of file to put the generated data in. Available variables: project, table, tableID, timeID, output, nodeCount, nodeNumber, outputDir, fileEnding |
yes | 1 | 1 | |
delimiter | Content type: Character Delimiter char used in CSV. examples: { , ; | \t}. |
no | 0 | 1 | |
fileEnding | Content type: String Ending of output files. |
no | 0 | 1 | |
interleaveMultilines | Content type: Boolean Interleaves multilines of a batch (controlled by scheduler batch size). This adds some more "randomness" to the output by mixing nearby lines to avoid the "block-building" taking place in the normal mode. |
no | 0 | 1 |
|
appendToFiles | Content type: Boolean True: Append to existing files False: overwrite/create files (default) |
no | 0 | 1 |
|
bufferSize | Content type: Integer Buffersize for output. Buffersize is the amount of bytes cached before a write to a file occurs. |
no | 0 | 1 | |
outputDir | Content type: String (must be a valid filesystem path) Directory to put the generated files in. |
no | 0 | 1 | |
header | Content type: Java code Header of output file. |
no | 0 | 1 | |
sortByRowID | Content type: Boolean Enables sorting of RowDataDTOs by rowId. |
no | 0 | 1 |
|
charset | Content type: String Charset used for output encoding. |
no | 0 | 1 | |
footer | Content type: Java code Footer of output file. |
no | 0 | 1 |