MultiLineOutput

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}

Attributes
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
  • true
  • false
  • 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
Nodes
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
  • true
  • false
  • 0
  • 1
appendToFiles Content type: Boolean
True: Append to existing files False: overwrite/create files (default)
no 0 1
  • true
  • false
  • 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
sortByRowID Content type: Boolean
Enables sorting of RowDataDTOs by rowId.
no 0 1
  • true
  • false
  • 0
  • 1
charset Content type: String
Charset used for output encoding.
no 0 1
2.7-83fb0 | 2020-04-22