Class RecordReaderCsv

    • Field Detail

      • CSV_FORMAT_RAW_KEY

        public static final String CSV_FORMAT_RAW_KEY
        Key for the serialized bytes of a CSVFormat instance
        See Also:
        Constant Field Values
      • CELL_MAXLENGTH_KEY

        public static final String CELL_MAXLENGTH_KEY
        The maximum length of a CSV cell containing new lines
        See Also:
        Constant Field Values
      • CELL_MAXLENGTH_DEFAULT_VALUE

        public static final long CELL_MAXLENGTH_DEFAULT_VALUE
        See Also:
        Constant Field Values
      • requestedCsvFormat

        protected org.apache.commons.csv.CSVFormat requestedCsvFormat
      • effectiveCsvFormat

        protected org.apache.commons.csv.CSVFormat effectiveCsvFormat
    • Constructor Detail

      • RecordReaderCsv

        public RecordReaderCsv()
      • RecordReaderCsv

        public RecordReaderCsv​(String minRecordLengthKey,
                               String maxRecordLengthKey,
                               String probeRecordCountKey,
                               Pattern recordSearchPattern)
    • Method Detail

      • createStartOfCsvRecordPattern

        public static Pattern createStartOfCsvRecordPattern​(long n)
        Create a regex for matching csv record starts. Matches the character following a newline character, whereas that newline is not within a csv cell w.r.t. a certain amount of lookahead. The regex does the following: Match a character (the dot at the end) if for the preceeding character it holds: Match a newline; however only if there is no subsequent sole double quote followed by a newline, comma or eof. Stop matching 'dot' if there was a single quote in the past
        Parameters:
        n - The maximum number of lookahead bytes to check for whether a newline character might be within a csv cell
        Returns:
        The corresponding regex pattern
      • disableSkipHeaderRecord

        protected org.apache.commons.csv.CSVFormat disableSkipHeaderRecord​(org.apache.commons.csv.CSVFormat csvFormat)
      • parse

        protected io.reactivex.rxjava3.core.Flowable<String[]> parse​(Callable<InputStream> inputStreamSupplier)
        Description copied from class: RecordReaderGenericBase
        Create a flowable from the input stream. The input stream may be incorrectly positioned in which case the Flowable is expected to indicate this by raising an error event.
        Specified by:
        parse in class RecordReaderGenericBase<String[],​String[],​String[],​String[]>
        Parameters:
        inputStreamSupplier - A supplier of input streams. May supply the same underlying stream on each call hence only at most a single stream should be taken from the supplier. Supplied streams are safe to use in try-with-resources blocks (possibly using CloseShieldInputStream). Taken streams should be closed by the client code.
        Returns: