Class AbstractWriter<S extends CommonWriterSettings<?>>

    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addStringValues​(java.util.Collection<java.lang.String> values)
      Writes a sequence of Strings to a row in memory.
      void addValue​(int index, java.lang.Object value)
      Writes a value to a row in memory.
      void addValue​(java.lang.Object value)
      Writes a value to a row in memory.
      void addValue​(java.lang.String headerName, java.lang.Object value)
      Writes a value to a row in memory.
      void addValues​(java.lang.Object... values)
      Writes a sequence of values to a row in memory.
      void addValues​(java.util.Collection<java.lang.Object> values)
      Writes a sequence of values to a row in memory.
      protected void appendToRow​(char ch)
      Appends the given character to the output row.
      protected void appendValueToRow()
      Appends the processed sequence of characters in appender to the output row.
      void close()
      Closes the Writer given in this class constructor.
      void commentRow​(java.lang.String comment)
      Writes a comment row to the output.
      java.lang.String commentRowToString​(java.lang.String comment)
      Writes a comment row to a String
      void discardValues()
      Discards the contents written to the internal in-memory row (using or #writeValue().
      protected void enableNewlineAfterRecord​(boolean enableNewlineAfterRecord)  
      protected java.lang.Object[] expand​(java.lang.Object[] row, int length, java.lang.String[] h2)  
      void flush()
      Flushes the Writer given in this class constructor.
      long getRecordCount()
      Returns the number of records written to the output so far
      protected java.lang.String getStringValue​(java.lang.Object element)
      Converts a given object to its String representation for writing to a String If the object is null, then nullValue is returned. If the String representation of this object is an empty String, then emptyValue is returned
      protected abstract void initialize​(S settings)
      Initializes the concrete implementation of this class with format-specific settings.
      <K> void processObjectRecords​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.Object[]> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output .
      <K> void processObjectRecordsAndClose​(java.util.Map<K,​java.lang.Object[]> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output and closes the writer.
      <K> void processObjectRecordsAndClose​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.Object[]> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output and closes the writer.
      <K> java.util.List<java.lang.String> processObjectRecordsToString​(java.util.Map<K,​java.lang.Object[]> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format.
      <K> java.util.List<java.lang.String> processObjectRecordsToString​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.Object[]> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format.
      void processRecord​(java.lang.Object record)
      Processes the data given for an individual record with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes it.
      void processRecord​(java.lang.Object... record)
      Processes the data given for an individual record with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes it.
      void processRecord​(java.util.Map<?,​?> rowData)
      Processes the values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a new output record
      <K> void processRecord​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​?> rowData)
      Processes the values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a new output record
      void processRecords​(java.lang.Iterable<?> records)
      Iterates over all records, processes each one with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), and writes them.
      void processRecords​(java.lang.Object[] records)
      Iterates over all records, processes each one with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), and writes them.
      <K,​I extends java.lang.Iterable<?>>
      void
      processRecords​(java.util.Map<K,​I> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output .
      <K,​I extends java.lang.Iterable<?>>
      void
      processRecords​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​I> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output .
      void processRecordsAndClose​(java.lang.Iterable<?> allRecords)
      Iterates over all records, processes each one with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), and writes them, then finally and closes the output
      void processRecordsAndClose​(java.lang.Object[] allRecords)
      Iterates over all records, processes each one with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), and writes them, then finally and closes the output
      <K,​I extends java.lang.Iterable<?>>
      void
      processRecordsAndClose​(java.util.Map<K,​I> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output and closes the writer.
      <K,​I extends java.lang.Iterable<?>>
      void
      processRecordsAndClose​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​I> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output and closes the writer.
      java.util.List<java.lang.String> processRecordsToString​(java.lang.Iterable<?> records)
      Iterates over all records, processes each one with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), and writes them to a List of String.
      java.util.List<java.lang.String> processRecordsToString​(java.lang.Object[] records)
      Iterates over all records, processes each one with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), and writes them them to a List of String.
      <K,​I extends java.lang.Iterable<?>>
      java.util.List<java.lang.String>
      processRecordsToString​(java.util.Map<K,​I> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format.
      <K,​I extends java.lang.Iterable<?>>
      java.util.List<java.lang.String>
      processRecordsToString​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​I> rowData)
      Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format.
      java.lang.String processRecordToString​(java.lang.Object record)
      Processes the data given for an individual record with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes it.
      java.lang.String processRecordToString​(java.lang.Object... record)
      Processes the data given for an individual record with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes it to a String.
      java.lang.String processRecordToString​(java.util.Map<?,​?> rowData)
      Processes the values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into String formatted according to the specified output format.
      <K> java.lang.String processRecordToString​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​?> rowData)
      Processes the values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into String formatted according to the specified output format.
      protected abstract void processRow​(java.lang.Object[] row)
      Format-specific implementation for writing a single record into the output.
      void processValuesToRow()
      Writes the contents accumulated in an internal in-memory row (using or #addValue() to a new record in the output.
      java.lang.String processValuesToString()
      Writes the contents accumulated in an internal in-memory row (using or #addValue() to a String The objects added to this row will be processed with the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor().
      protected static int skipLeadingWhitespace​(int whitespaceRangeStart, java.lang.String element)
      Identifies the starting character index of a value being written if leading whitespaces are to be discarded.
      void updateFieldExclusion​(java.lang.Integer... fieldIndexesToExclude)
      Updates the selection of fields to exclude when writing.
      void updateFieldExclusion​(java.lang.String... fieldsToExclude)
      Updates the selection of fields to exclude when writing.
      void updateFieldSelection​(java.lang.Integer... newFieldSelectionByIndex)
      Updates the selection of fields to write.
      void updateFieldSelection​(java.lang.String... newFieldSelection)
      Updates the selection of fields to write.
      void writeEmptyRow()
      Writes an empty line to the output, unless this is a FixedWidthWriter whose FixedWidthWriterSettings.getWriteLineSeparatorAfterRecord() evaluates to false.
      void writeHeaders()
      Writes the headers defined in CommonSettings.getHeaders()
      void writeHeaders​(java.lang.String... headers)
      Writes the given collection of headers to the output.
      void writeHeaders​(java.util.Collection<java.lang.String> headers)
      Writes the given collection of headers to the output.
      java.lang.String writeHeadersToString()
      Writes the headers defined in CommonSettings.getHeaders() to a String
      java.lang.String writeHeadersToString​(java.lang.String... headers)
      Writes the given collection of headers to a String
      java.lang.String writeHeadersToString​(java.util.Collection<java.lang.String> headers)
      Writes the given collection of headers to a String
      <K> void writeObjectRows​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.Object[]> rowData)
      Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.
      <K> void writeObjectRowsAndClose​(java.util.Map<K,​java.lang.Object[]> rowData)
      Writes the values of a given map to multiple output records and closes the output when finished.
      <K> void writeObjectRowsAndClose​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.Object[]> rowData)
      Writes the values of a given map to multiple output records and closes the output when finished.
      <K> java.util.List<java.lang.String> writeObjectRowsToString​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.Object[]> rowData)
      Writes the values of a given map to a List of String formatted to according to the specified output format.
      void writeRow​(java.lang.Object... row)
      Writes the data given for an individual record.
      void writeRow​(java.lang.String row)
      Writes a plain (potentially free-text) String as a line to the output.
      void writeRow​(java.lang.String[] row)
      Writes the data given for an individual record.
      void writeRow​(java.util.Collection<java.lang.Object> row)
      Writes the data given for an individual record.
      void writeRow​(java.util.Map<?,​?> rowData)
      Writes the values of a given map into new output record
      <K> void writeRow​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​?> rowData)
      Writes the values of a given map into new output record
      <C extends java.util.Collection<java.lang.Object>>
      void
      writeRows​(java.lang.Iterable<C> rows)
      Iterates over all records and writes them to the output.
      void writeRows​(java.lang.Object[][] rows)
      Iterates over all records and writes them to the output.
      void writeRows​(java.util.Collection<java.lang.Object[]> rows)
      Iterates over all records and writes them to the output.
      <K,​I extends java.lang.Iterable<?>>
      void
      writeRows​(java.util.Map<K,​I> rowData)
      Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.
      <K,​I extends java.lang.Iterable<?>>
      void
      writeRows​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​I> rowData)
      Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.
      <C extends java.util.Collection<java.lang.Object>>
      void
      writeRowsAndClose​(java.lang.Iterable<C> allRows)
      Iterates over all records, writes them and closes the output.
      void writeRowsAndClose​(java.lang.Object[][] allRows)
      Iterates over all records, writes them and closes the output.
      void writeRowsAndClose​(java.util.Collection<java.lang.Object[]> allRows)
      Iterates over all records, writes them and closes the output.
      <K,​I extends java.lang.Iterable<?>>
      void
      writeRowsAndClose​(java.util.Map<K,​I> rowData)
      Writes the values of a given map to multiple output records and closes the output when finished.
      <K,​I extends java.lang.Iterable<?>>
      void
      writeRowsAndClose​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​I> rowData)
      Writes the values of a given map to multiple output records and closes the output when finished.
      <C extends java.util.Collection<java.lang.Object>>
      java.util.List<java.lang.String>
      writeRowsToString​(java.lang.Iterable<C> rows)
      Iterates over all records and writes them to a List of String.
      java.util.List<java.lang.String> writeRowsToString​(java.lang.Object[][] rows)
      Iterates over all records and writes them to a List of String.
      java.util.List<java.lang.String> writeRowsToString​(java.util.Collection<java.lang.Object[]> rows)
      Iterates over all records and writes them to a List of String.
      <K,​I extends java.lang.Iterable<?>>
      java.util.List<java.lang.String>
      writeRowsToString​(java.util.Map<K,​I> rowData)
      Writes the values of a given map to a List of String formatted to according to the specified output format.
      <K,​I extends java.lang.Iterable<?>>
      java.util.List<java.lang.String>
      writeRowsToString​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​I> rowData)
      Writes the values of a given map to a List of String formatted to according to the specified output format.
      java.lang.String writeRowToString​(java.lang.Object... row)
      Writes the data given for an individual record to a String.
      java.lang.String writeRowToString​(java.lang.String[] row)
      Writes the data given for an individual record to a String.
      java.lang.String writeRowToString​(java.util.Collection<java.lang.Object> row)
      Writes the data given for an individual record to a String.
      java.lang.String writeRowToString​(java.util.Map<?,​?> rowData)
      Writes the values of a given map to a String formatted to according to the specified output format.
      <K> java.lang.String writeRowToString​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​?> rowData)
      Writes the values of a given map to a String formatted to according to the specified output format.
      <C extends java.util.Collection<java.lang.String>>
      void
      writeStringRows​(java.lang.Iterable<C> rows)
      Iterates over all records and writes them to the output.
      void writeStringRows​(java.util.Collection<java.lang.String[]> rows)
      Iterates over all records and writes them to the output.
      <K> void writeStringRows​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.String[]> rowData)
      Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.
      void writeStringRowsAndClose​(java.util.Collection<java.lang.String[]> allRows)
      Iterates over all records, writes them and closes the output.
      <K> void writeStringRowsAndClose​(java.util.Map<K,​java.lang.String[]> rowData)
      Writes the values of a given map to multiple output records and closes the output when finished.
      <K> void writeStringRowsAndClose​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.String[]> rowData)
      Writes the values of a given map to multiple output records and closes the output when finished.
      <C extends java.util.Collection<java.lang.String>>
      java.util.List<java.lang.String>
      writeStringRowsToString​(java.lang.Iterable<C> rows)
      Iterates over all records and writes them to a List of String.
      java.util.List<java.lang.String> writeStringRowsToString​(java.util.Collection<java.lang.String[]> rows)
      Iterates over all records and writes them to a List of String.
      <K> java.util.List<java.lang.String> writeStringRowsToString​(java.util.Map<K,​java.lang.String> headerMapping, java.util.Map<K,​java.lang.String[]> rowData)
      Writes the values of a given map to a List of String formatted to according to the specified output format.
      void writeValuesToRow()
      Writes the contents accumulated in an internal in-memory row (using or #writeValue() to a new record in the output.
      java.lang.String writeValuesToString()
      Writes the contents accumulated in an internal in-memory row (using or #addValue() as a String
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • nullValue

        protected final java.lang.String nullValue
      • emptyValue

        protected final java.lang.String emptyValue
      • writingHeaders

        protected boolean writingHeaders
      • expandRows

        protected boolean expandRows
      • usingNullOrEmptyValue

        protected boolean usingNullOrEmptyValue
      • whitespaceRangeStart

        protected final int whitespaceRangeStart
    • Constructor Detail

      • AbstractWriter

        public AbstractWriter​(S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.

        Important: by not providing an instance of Writer to this constructor, only the operations that write to Strings are available.

        Parameters:
        settings - the writer configuration
      • AbstractWriter

        public AbstractWriter​(java.io.File file,
                              S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.
        Parameters:
        file - the output file that will be written with the format-specific records as defined by subclasses of AbstractWriter.
        settings - the writer configuration
      • AbstractWriter

        public AbstractWriter​(java.io.File file,
                              java.lang.String encoding,
                              S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.
        Parameters:
        file - the output file that will be written with the format-specific records as defined by subclasses of AbstractWriter.
        encoding - the encoding of the file
        settings - the writer configuration
      • AbstractWriter

        public AbstractWriter​(java.io.File file,
                              java.nio.charset.Charset encoding,
                              S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.
        Parameters:
        file - the output file that will be written with the format-specific records as defined by subclasses of AbstractWriter.
        encoding - the encoding of the file
        settings - the writer configuration
      • AbstractWriter

        public AbstractWriter​(java.io.OutputStream output,
                              S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.
        Parameters:
        output - the output stream that will be written with the format-specific records as defined by subclasses of AbstractWriter.
        settings - the writer configuration
      • AbstractWriter

        public AbstractWriter​(java.io.OutputStream output,
                              java.lang.String encoding,
                              S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.
        Parameters:
        output - the output stream that will be written with the format-specific records as defined by subclasses of AbstractWriter.
        encoding - the encoding of the stream
        settings - the writer configuration
      • AbstractWriter

        public AbstractWriter​(java.io.OutputStream output,
                              java.nio.charset.Charset encoding,
                              S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.
        Parameters:
        output - the output stream that will be written with the format-specific records as defined by subclasses of AbstractWriter.
        encoding - the encoding of the stream
        settings - the writer configuration
      • AbstractWriter

        public AbstractWriter​(java.io.Writer writer,
                              S settings)
        All writers must support, at the very least, the settings provided by CommonWriterSettings. The AbstractWriter requires its configuration to be properly initialized.
        Parameters:
        writer - the output resource that will receive the format-specific records as defined by subclasses of AbstractWriter.
        settings - the writer configuration
    • Method Detail

      • enableNewlineAfterRecord

        protected void enableNewlineAfterRecord​(boolean enableNewlineAfterRecord)
      • initialize

        protected abstract void initialize​(S settings)
        Initializes the concrete implementation of this class with format-specific settings.
        Parameters:
        settings - the settings object specific to the format being written.
      • updateFieldSelection

        public void updateFieldSelection​(java.lang.String... newFieldSelection)
        Updates the selection of fields to write. This is useful if the input rows change during the writing process and their values need be allocated to specific columns.
        Parameters:
        newFieldSelection - the new selection of fields to write.
      • updateFieldSelection

        public void updateFieldSelection​(java.lang.Integer... newFieldSelectionByIndex)
        Updates the selection of fields to write. This is useful if the input rows change during the writing process and their values need be allocated to specific columns.
        Parameters:
        newFieldSelectionByIndex - the new selection of fields to write.
      • updateFieldExclusion

        public void updateFieldExclusion​(java.lang.String... fieldsToExclude)
        Updates the selection of fields to exclude when writing. This is useful if the input rows change during the writing process and their values need be allocated to specific columns.
        Parameters:
        fieldsToExclude - the selection of fields to exclude from the output.
      • updateFieldExclusion

        public void updateFieldExclusion​(java.lang.Integer... fieldIndexesToExclude)
        Updates the selection of fields to exclude when writing. This is useful if the input rows change during the writing process and their values need be allocated to specific columns.
        Parameters:
        fieldIndexesToExclude - the selection of fields to exclude from the output.
      • processRow

        protected abstract void processRow​(java.lang.Object[] row)
        Format-specific implementation for writing a single record into the output.

        The AbstractWriter handles the initialization and processing of the output until it is ready to be written (generally, reorganizing it and passing it on to a RowWriterProcessor).

        It then delegates the record to the writer-specific implementation defined by processRow(Object[]). In general, an implementation of processRow(Object[]) will perform the following steps:

        • Iterate over each object in the given input and convert it to the expected String representation.
        • The conversion must happen using the provided appender object. The an individual value is processed, the appendValueToRow() method must be called. This will clear the accumulated value in appender and add it to the output row.
        • Format specific separators and other characters must be introduced to the output row using appendToRow(char)

        Once the processRow(Object[]) method returns, a row will be written to the output with the processed information, and a newline will be automatically written after the given contents, unless this is a FixedWidthWriter whose FixedWidthWriterSettings.getWriteLineSeparatorAfterRecord() evaluates to false. The newline character sequence will conform to what is specified in Format.getLineSeparator()

        This cycle repeats until the writing process is stopped by the user or an error happens.

        In case of errors, the unchecked exception TextWritingException will be thrown and all resources in use will be closed automatically. The exception should contain the cause and more information about the output state when the error happened.

        Parameters:
        row - the data to be written to the output in the expected format.
        See Also:
        CharAppender, CommonWriterSettings
      • appendValueToRow

        protected final void appendValueToRow()
        Appends the processed sequence of characters in appender to the output row.
      • appendToRow

        protected final void appendToRow​(char ch)
        Appends the given character to the output row.
        Parameters:
        ch - the character to append to the output row
      • writeHeaders

        public final void writeHeaders​(java.util.Collection<java.lang.String> headers)
        Writes the given collection of headers to the output.

        A TextWritingException will be thrown if no headers were defined or if records were already written to the output.

        Parameters:
        headers - the headers to write to the output.
      • writeHeaders

        public final void writeHeaders​(java.lang.String... headers)
        Writes the given collection of headers to the output.

        A TextWritingException will be thrown if no headers were defined or if records were already written to the output.

        Parameters:
        headers - the headers to write to the output.
      • writeRowsAndClose

        public final <C extends java.util.Collection<java.lang.Object>> void writeRowsAndClose​(java.lang.Iterable<C> allRows)
        Iterates over all records, writes them and closes the output.

        Note this method will not use the RowWriterProcessor. Use processRecordsAndClose(Iterable) for that.

        Type Parameters:
        C - Collection of objects containing values of a row
        Parameters:
        allRows - the rows to be written to the output
      • writeRowsAndClose

        public final void writeRowsAndClose​(java.util.Collection<java.lang.Object[]> allRows)
        Iterates over all records, writes them and closes the output.

        Note this method will not use the RowWriterProcessor. Use processRecordsAndClose(Object[]) for that.

        Parameters:
        allRows - the rows to be written to the output
      • writeStringRowsAndClose

        public final void writeStringRowsAndClose​(java.util.Collection<java.lang.String[]> allRows)
        Iterates over all records, writes them and closes the output.

        Note this method will not use the RowWriterProcessor. Use processRecordsAndClose(Iterable) for that.

        Parameters:
        allRows - the rows to be written to the output
      • writeRowsAndClose

        public final void writeRowsAndClose​(java.lang.Object[][] allRows)
        Iterates over all records, writes them and closes the output.

        Note this method will not use the RowWriterProcessor. Use processRecordsAndClose(Object[]) for that.

        Parameters:
        allRows - the rows to be written to the output
      • writeRows

        public final void writeRows​(java.lang.Object[][] rows)
        Iterates over all records and writes them to the output.

        The output will remain open for further writing.

        Note this method will not use the RowWriterProcessor. Use processRecords(Object[]) for that.

        Parameters:
        rows - the rows to be written to the output
      • writeRows

        public final <C extends java.util.Collection<java.lang.Object>> void writeRows​(java.lang.Iterable<C> rows)
        Iterates over all records and writes them to the output.

        The output will remain open for further writing.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Type Parameters:
        C - Collection of objects containing values of a row
        Parameters:
        rows - the rows to be written to the output
      • writeStringRows

        public final void writeStringRows​(java.util.Collection<java.lang.String[]> rows)
        Iterates over all records and writes them to the output.

        The output will remain open for further writing.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Parameters:
        rows - the rows to be written to the output
      • writeStringRows

        public final <C extends java.util.Collection<java.lang.String>> void writeStringRows​(java.lang.Iterable<C> rows)
        Iterates over all records and writes them to the output.

        The output will remain open for further writing.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Type Parameters:
        C - Collection of objects containing values of a row
        Parameters:
        rows - the rows to be written to the output
      • writeRows

        public final void writeRows​(java.util.Collection<java.lang.Object[]> rows)
        Iterates over all records and writes them to the output.

        The output will remain open for further writing.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Parameters:
        rows - the rows to be written to the output
      • writeRow

        public final void writeRow​(java.util.Collection<java.lang.Object> row)
        Writes the data given for an individual record.

        The output will remain open for further writing.

        Note this method will not use the RowWriterProcessor. Use processRecord(Object) for that.

        Parameters:
        row - the information of a single record to be written to the output
      • expand

        protected java.lang.Object[] expand​(java.lang.Object[] row,
                                            int length,
                                            java.lang.String[] h2)
      • writeRow

        public final void writeRow​(java.lang.String row)
        Writes a plain (potentially free-text) String as a line to the output.

        A newline will automatically written after the given contents, unless this is a FixedWidthWriter whose FixedWidthWriterSettings.getWriteLineSeparatorAfterRecord() evaluates to false. The newline character sequence will conform to what is specified in Format.getLineSeparator()

        The writer implementation has no control over the format of this content.

        The output will remain open for further writing.

        Parameters:
        row - the line to be written to the output
      • commentRow

        public final void commentRow​(java.lang.String comment)
        Writes a comment row to the output.

        A newline will automatically written after the given contents, unless this is a FixedWidthWriter whose FixedWidthWriterSettings.getWriteLineSeparatorAfterRecord() evaluates to false. The newline character sequence will conform to what is specified in Format.getLineSeparator()

        The output will remain open for further writing.

        Parameters:
        comment - the contents to be written as a comment to the output
      • skipLeadingWhitespace

        protected static int skipLeadingWhitespace​(int whitespaceRangeStart,
                                                   java.lang.String element)
        Identifies the starting character index of a value being written if leading whitespaces are to be discarded.

        Implementation note whitespaces are considered all characters where ch <= ' ' evaluates to true

        Parameters:
        whitespaceRangeStart - starting range after which characters will be considered whitespace
        element - the String to be scanned for leading whitespaces.
        Returns:
        the index of the first non-whitespace character in the given element.
      • flush

        public final void flush()
        Flushes the Writer given in this class constructor.

        An IllegalStateException will be thrown in case of any errors, and the writer will be closed.

      • close

        public final void close()
        Closes the Writer given in this class constructor.

        An IllegalStateException will be thrown in case of any errors.

      • getStringValue

        protected java.lang.String getStringValue​(java.lang.Object element)
        Converts a given object to its String representation for writing to a String
        • If the object is null, then nullValue is returned.
        • If the String representation of this object is an empty String, then emptyValue is returned
        Parameters:
        element - the object to be converted into a String.
        Returns:
        the String representation of the given object
      • addValues

        public final void addValues​(java.lang.Object... values)
        Writes a sequence of values to a row in memory. Subsequent calls to this method will add the given values in a new column of the same row, until writeValuesToRow() is called to flush all values accumulated and effectively write a new record to the output
        Parameters:
        values - the values to be written
      • addStringValues

        public final void addStringValues​(java.util.Collection<java.lang.String> values)
        Writes a sequence of Strings to a row in memory. Subsequent calls to this method will add the given values in a new column of the same row, until writeValuesToRow() is called to flush all values accumulated and effectively write a new record to the output
        Parameters:
        values - the values to be written
      • addValues

        public final void addValues​(java.util.Collection<java.lang.Object> values)
        Writes a sequence of values to a row in memory. Subsequent calls to this method will add the given values in a new column of the same row, until writeValuesToRow() is called to flush all values accumulated and effectively write a new record to the output
        Parameters:
        values - the values to be written
      • addValue

        public final void addValue​(java.lang.Object value)
        Writes a value to a row in memory. Subsequent calls to this method will add the given values in a new column of the same row, until writeValuesToRow() is called to flush all values accumulated and effectively write a new record to the output
        Parameters:
        value - the value to be written
      • writeValuesToRow

        public final void writeValuesToRow()
        Writes the contents accumulated in an internal in-memory row (using or #writeValue() to a new record in the output.
      • addValue

        public final void addValue​(int index,
                                   java.lang.Object value)
        Writes a value to a row in memory. Subsequent calls to this method will add the given values in a new column of the same row, until writeValuesToRow() is called to flush all values accumulated and effectively write a new record to the output
        Parameters:
        index - the position in the row that should receive the value.
        value - the value to be written
      • addValue

        public final void addValue​(java.lang.String headerName,
                                   java.lang.Object value)
        Writes a value to a row in memory. Subsequent calls to this method will add the given values in a new column of the same row, until writeValuesToRow() is called to flush all values accumulated and effectively write a new record to the output
        Parameters:
        headerName - the name of the column of the new row that should receive the value.
        value - the value to be written
      • discardValues

        public final void discardValues()
        Discards the contents written to the internal in-memory row (using or #writeValue().
      • writeHeadersToString

        public final java.lang.String writeHeadersToString​(java.util.Collection<java.lang.String> headers)
        Writes the given collection of headers to a String

        A TextWritingException will be thrown if no headers were defined.

        Parameters:
        headers - the headers to write to a String
        Returns:
        a formatted String containing the given headers
      • writeHeadersToString

        public final java.lang.String writeHeadersToString​(java.lang.String... headers)
        Writes the given collection of headers to a String

        A TextWritingException will be thrown if no headers were defined or if records were already written to a String

        Parameters:
        headers - the headers to write to a String
        Returns:
        a formatted String containing the given headers
      • writeRowsToString

        public final java.util.List<java.lang.String> writeRowsToString​(java.lang.Object[][] rows)
        Iterates over all records and writes them to a List of String.

        Note this method will not use the RowWriterProcessor. Use processRecords(Object[]) for that.

        Parameters:
        rows - the rows to be written to a List of String.
        Returns:
        a List containing the given rows as formatted Strings
      • writeRowsToString

        public final <C extends java.util.Collection<java.lang.Object>> java.util.List<java.lang.String> writeRowsToString​(java.lang.Iterable<C> rows)
        Iterates over all records and writes them to a List of String.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Type Parameters:
        C - Collection of objects containing values of a row
        Parameters:
        rows - the rows to be written to a List of String.
        Returns:
        a List containing the given rows as formatted Strings
      • writeStringRowsToString

        public final <C extends java.util.Collection<java.lang.String>> java.util.List<java.lang.String> writeStringRowsToString​(java.lang.Iterable<C> rows)
        Iterates over all records and writes them to a List of String.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Type Parameters:
        C - Collection of objects containing values of a row
        Parameters:
        rows - the rows to be written to a List of String.
        Returns:
        a List containing the given rows as formatted Strings
      • writeRowsToString

        public final java.util.List<java.lang.String> writeRowsToString​(java.util.Collection<java.lang.Object[]> rows)
        Iterates over all records and writes them to a List of String.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Parameters:
        rows - the rows to be written to a List of String.
        Returns:
        a List containing the given rows as formatted Strings
      • writeStringRowsToString

        public final java.util.List<java.lang.String> writeStringRowsToString​(java.util.Collection<java.lang.String[]> rows)
        Iterates over all records and writes them to a List of String.

        Note this method will not use the RowWriterProcessor. Use processRecords(Iterable) for that.

        Parameters:
        rows - the rows to be written to a List of String.
        Returns:
        a List containing the given rows as formatted Strings
      • writeRowToString

        public final java.lang.String writeRowToString​(java.util.Collection<java.lang.Object> row)
        Writes the data given for an individual record to a String.

        Note this method will not use the RowWriterProcessor. Use processRecord(Object) for that.

        Parameters:
        row - the information of a single record to be written to a String
        Returns:
        a formatted String containing the information of the given record
      • writeRowToString

        public final java.lang.String writeRowToString​(java.lang.String[] row)
        Writes the data given for an individual record to a String.

        If the given data is null or empty, and CommonSettings.getSkipEmptyLines() is true, null will be returned

        In case of any errors, a TextWritingException will be thrown.

        Note this method will not use the RowWriterProcessor. Use processRecord(Object) for that.

        Parameters:
        row - the information of a single record to be written to a String.
        Returns:
        a formatted String containing the information of the given record
      • writeRowToString

        public final java.lang.String writeRowToString​(java.lang.Object... row)
        Writes the data given for an individual record to a String.

        If the given data is null or empty, and CommonSettings.getSkipEmptyLines() is true, null will be returned

        In case of any errors, a TextWritingException will be thrown.

        Note this method will not use the RowWriterProcessor. Use processRecord(Object) for that.

        Parameters:
        row - the information of a single record to be written to a String.
        Returns:
        a formatted String containing the information of the given record
      • commentRowToString

        public final java.lang.String commentRowToString​(java.lang.String comment)
        Writes a comment row to a String
        Parameters:
        comment - the contents to be written as a comment to a String.
        Returns:
        a formatted String containing the comment.
      • writeValuesToString

        public final java.lang.String writeValuesToString()
        Writes the contents accumulated in an internal in-memory row (using or #addValue() as a String
        Returns:
        a formatted String containing the information accumulated in the internal in-memory row.
      • getRecordCount

        public final long getRecordCount()
        Returns the number of records written to the output so far
        Returns:
        the number of records written to the output so far
      • writeRowToString

        public final java.lang.String writeRowToString​(java.util.Map<?,​?> rowData)
        Writes the values of a given map to a String formatted to according to the specified output format.

        Note this method will not use the RowWriterProcessor.

        Parameters:
        rowData - the map whose values will be used to generate a String.
        Returns:
        a String containing the given data as a formatted String
      • writeRow

        public final void writeRow​(java.util.Map<?,​?> rowData)
        Writes the values of a given map into new output record

        Note this method will not use the RowWriterProcessor.

        Parameters:
        rowData - the map whose values will be used to generate a new record
      • writeRowToString

        public final <K> java.lang.String writeRowToString​(java.util.Map<K,​java.lang.String> headerMapping,
                                                           java.util.Map<K,​?> rowData)
        Writes the values of a given map to a String formatted to according to the specified output format.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a String.
        Returns:
        a String containing the given data as a formatted String
      • writeRow

        public final <K> void writeRow​(java.util.Map<K,​java.lang.String> headerMapping,
                                       java.util.Map<K,​?> rowData)
        Writes the values of a given map into new output record

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a new record
      • writeRowsToString

        public final <K,​I extends java.lang.Iterable<?>> java.util.List<java.lang.String> writeRowsToString​(java.util.Map<K,​I> rowData)
        Writes the values of a given map to a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • writeRows

        public final <K,​I extends java.lang.Iterable<?>> void writeRows​(java.util.Map<K,​I> rowData)
        Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        rowData - the map whose values will be used to generate a number of output records
      • writeRowsToString

        public final <K,​I extends java.lang.Iterable<?>> java.util.List<java.lang.String> writeRowsToString​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                                                  java.util.Map<K,​I> rowData)
        Writes the values of a given map to a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • writeRows

        public final <K,​I extends java.lang.Iterable<?>> void writeRows​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                              java.util.Map<K,​I> rowData)
        Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • writeStringRowsToString

        public final <K> java.util.List<java.lang.String> writeStringRowsToString​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                  java.util.Map<K,​java.lang.String[]> rowData)
        Writes the values of a given map to a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • writeStringRows

        public final <K> void writeStringRows​(java.util.Map<K,​java.lang.String> headerMapping,
                                              java.util.Map<K,​java.lang.String[]> rowData)
        Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • writeObjectRowsToString

        public final <K> java.util.List<java.lang.String> writeObjectRowsToString​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                  java.util.Map<K,​java.lang.Object[]> rowData)
        Writes the values of a given map to a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • writeObjectRows

        public final <K> void writeObjectRows​(java.util.Map<K,​java.lang.String> headerMapping,
                                              java.util.Map<K,​java.lang.Object[]> rowData)
        Writes the values of a given map to multiple output records Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • writeObjectRowsAndClose

        public final <K> void writeObjectRowsAndClose​(java.util.Map<K,​java.lang.String> headerMapping,
                                                      java.util.Map<K,​java.lang.Object[]> rowData)
        Writes the values of a given map to multiple output records and closes the output when finished. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • writeStringRowsAndClose

        public final <K> void writeStringRowsAndClose​(java.util.Map<K,​java.lang.String> headerMapping,
                                                      java.util.Map<K,​java.lang.String[]> rowData)
        Writes the values of a given map to multiple output records and closes the output when finished. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • writeObjectRowsAndClose

        public final <K> void writeObjectRowsAndClose​(java.util.Map<K,​java.lang.Object[]> rowData)
        Writes the values of a given map to multiple output records and closes the output when finished. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        rowData - the map whose values will be used to generate a number of output records
      • writeStringRowsAndClose

        public final <K> void writeStringRowsAndClose​(java.util.Map<K,​java.lang.String[]> rowData)
        Writes the values of a given map to multiple output records and closes the output when finished. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        Parameters:
        rowData - the map whose values will be used to generate a number of output records
      • writeRowsAndClose

        public final <K,​I extends java.lang.Iterable<?>> void writeRowsAndClose​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                      java.util.Map<K,​I> rowData)
        Writes the values of a given map to multiple output records and closes the output when finished. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • writeRowsAndClose

        public final <K,​I extends java.lang.Iterable<?>> void writeRowsAndClose​(java.util.Map<K,​I> rowData)
        Writes the values of a given map to multiple output records and closes the output when finished. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        Note this method will not use the RowWriterProcessor.

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        rowData - the map whose values will be used to generate a number of output records
      • processRecordToString

        public final <K> java.lang.String processRecordToString​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                java.util.Map<K,​?> rowData)
        Processes the values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into String formatted according to the specified output format.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a String containing the given data as a formatted String
      • processRecordsToString

        public final <K,​I extends java.lang.Iterable<?>> java.util.List<java.lang.String> processRecordsToString​(java.util.Map<K,​I> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • processRecordsToString

        public final <K,​I extends java.lang.Iterable<?>> java.util.List<java.lang.String> processRecordsToString​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                                                       java.util.Map<K,​I> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • processRecords

        public final <K,​I extends java.lang.Iterable<?>> void processRecords​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                   java.util.Map<K,​I> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output . The output will remain open for further write operations.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • processObjectRecordsToString

        public final <K> java.util.List<java.lang.String> processObjectRecordsToString​(java.util.Map<K,​java.lang.Object[]> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        Parameters:
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • processObjectRecordsToString

        public final <K> java.util.List<java.lang.String> processObjectRecordsToString​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                       java.util.Map<K,​java.lang.Object[]> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor() and writes the result into a List of String formatted to according to the specified output format. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a List of String.
        Returns:
        a List of formatted String, each String representing one successful iteration over at least one element of the iterators in the map.
      • processObjectRecords

        public final <K> void processObjectRecords​(java.util.Map<K,​java.lang.String> headerMapping,
                                                   java.util.Map<K,​java.lang.Object[]> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output . The output will remain open for further write operations.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • processObjectRecordsAndClose

        public final <K> void processObjectRecordsAndClose​(java.util.Map<K,​java.lang.String> headerMapping,
                                                           java.util.Map<K,​java.lang.Object[]> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output and closes the writer.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • processRecordsAndClose

        public final <K,​I extends java.lang.Iterable<?>> void processRecordsAndClose​(java.util.Map<K,​java.lang.String> headerMapping,
                                                                                           java.util.Map<K,​I> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output and closes the writer. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        headerMapping - a mapping associating the keys of the input map to their corresponding header names.
        rowData - the map whose values will be used to generate a number of output records
      • processRecordsAndClose

        public final <K,​I extends java.lang.Iterable<?>> void processRecordsAndClose​(java.util.Map<K,​I> rowData)
        Processes the data in all values of a map using the RowWriterProcessor provided by CommonWriterSettings.getRowWriterProcessor(), then writes all values to the output and closes the writer. Each value is expected to be iterable and the result of this method will produce the number of records equal to the longest iterable. A new record will be created each time at least one Iterator.hasNext() returns true. Null will be written when a iterator has been fully read.

        A TextWritingException will be thrown if no RowWriterProcessor is provided by CommonWriterSettings.getRowWriterProcessor().

        Type Parameters:
        K - the key type
        I - the iterable type
        Parameters:
        rowData - the map whose values will be used to generate a number of output records