Class AbstractParser<T extends CommonParserSettings<?>>
- Type Parameters:
T
- The specific parser settings configuration class, which can potentially provide additional configuration options supported by the parser implementation.
- Direct Known Subclasses:
CsvParser
,FixedWidthParser
,TsvParser
It handles all settings defined by CommonParserSettings
, and delegates the parsing algorithm implementation to its subclasses through the
abstract method parseRecord()
The following (absolutely required) attributes are exposed to subclasses:
- input (
CharInputReader
): the character input provider that reads characters from a given input into an internal buffer - output (
ParserOutput
): the output handler for every record parsed from the input. Implementors must use this object to handle the input (such as appending characters and notifying of values parsed) - ch (char): the current character read from the input
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected char
private final boolean
protected final char
protected ParsingContext
private final int
private final ProcessorErrorHandler
private final boolean
private boolean
protected boolean
protected boolean
protected CharInputReader
protected String
private final LineReader
protected final ParserOutput
private final boolean
protected Processor
private final long
private final long
protected final T
protected final int
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractParser
(T settings) All parsers must support, at the very least, the settings provided byCommonParserSettings
. -
Method Summary
Modifier and TypeMethodDescriptionprivate <T> List<T>
beginParseAll
(boolean validateReader, Reader reader, int expectedRowCount) final void
beginParsing
(File file) Starts an iterator-style parsing cycle.final void
beginParsing
(File file, String encoding) Starts an iterator-style parsing cycle.final void
beginParsing
(File file, Charset encoding) Starts an iterator-style parsing cycle.final void
beginParsing
(InputStream input) Starts an iterator-style parsing cycle.final void
beginParsing
(InputStream input, String encoding) Starts an iterator-style parsing cycle.final void
beginParsing
(InputStream input, Charset encoding) Starts an iterator-style parsing cycle.final void
beginParsing
(Reader reader) Starts an iterator-style parsing cycle.protected boolean
Allows the parser implementation to handle any value that was being consumed when the end of the input was reachedprotected ParsingContext
(package private) void
Returns all comments collected by the parser so far.final ParsingContext
Returns the current parsing context with information about the status of the parser at any given time.protected InputAnalysisProcess
Allows the parser implementation to traverse the input buffer before the parsing process starts, in order to enable automatic configuration and discovery of data formats.(package private) final String
Returns the last comment found in the input.private String
(package private) final String[]
Returns the headers parsed from the input, if and only ifCommonParserSettings.headerExtractionEnabled
istrue
.final RecordMetaData
Returns the metadata associated withRecord
s parsed from the input usingparseAllRecords(File)
orparseNextRecord()
.private String[]
private TextParsingException
protected boolean
protected void
internalParseAll
(boolean validateReader, Reader reader, int expectedRowCount) internalParseAllRecords
(boolean validateReader, Reader reader, int expectedRowCount) final IterableResult<String[],
ParsingContext> Provides anIterableResult
for iterating rows parsed from the input.final IterableResult<String[],
ParsingContext> Provides anIterableResult
for iterating rows parsed from the input.final IterableResult<String[],
ParsingContext> Provides anIterableResult
for iterating rows parsed from the input.final IterableResult<String[],
ParsingContext> iterate
(InputStream input) Provides anIterableResult
for iterating rows parsed from the input.final IterableResult<String[],
ParsingContext> iterate
(InputStream input, String encoding) Provides anIterableResult
for iterating rows parsed from the input.final IterableResult<String[],
ParsingContext> iterate
(InputStream input, Charset encoding) Provides anIterableResult
for iterating rows parsed from the input.final IterableResult<String[],
ParsingContext> Provides anIterableResult
for iterating rows parsed from the input.final IterableResult<Record,
ParsingContext> iterateRecords
(File input) Provides anIterableResult
for iterating records parsed from the input.final IterableResult<Record,
ParsingContext> iterateRecords
(File input, String encoding) Provides anIterableResult
for iterating records parsed from the input.final IterableResult<Record,
ParsingContext> iterateRecords
(File input, Charset encoding) Provides anIterableResult
for iterating records parsed from the input.final IterableResult<Record,
ParsingContext> iterateRecords
(InputStream input) Provides anIterableResult
for iterating records parsed from the input.final IterableResult<Record,
ParsingContext> iterateRecords
(InputStream input, String encoding) Provides anIterableResult
for iterating records parsed from the input.final IterableResult<Record,
ParsingContext> iterateRecords
(InputStream input, Charset encoding) Provides anIterableResult
for iterating records parsed from the input.final IterableResult<Record,
ParsingContext> iterateRecords
(Reader input) Provides anIterableResult
for iterating records parsed from the input.final void
Parses the entirety of a given file and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.final void
Parses the entirety of a given file and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.final void
Parses the entirety of a given file and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.final void
parse
(InputStream input) Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.final void
parse
(InputStream input, String encoding) Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.final void
parse
(InputStream input, Charset encoding) Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.final void
Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.parseAll()
Parses all remaining rows from the input and returns them in a list.parseAll
(int expectedRowCount) Parses all remaining rows from the input and returns them in a list.Parses all records from a file and returns them in a list.Parses all records from a file and returns them in a list.Parses all records from a file and returns them in a list.Parses all records from a file and returns them in a list.Parses all records from a file and returns them in a list.Parses all records from a file and returns them in a list.parseAll
(InputStream input) Parses all records from an input stream and returns them in a list.parseAll
(InputStream input, int expectedRowCount) Parses all records from an input stream and returns them in a list.parseAll
(InputStream input, String encoding) Parses all records from an input stream and returns them in a list.parseAll
(InputStream input, String encoding, int expectedRowCount) Parses all records from an input stream and returns them in a list.parseAll
(InputStream input, Charset encoding) Parses all records from an input stream and returns them in a list.parseAll
(InputStream input, Charset encoding, int expectedRowCount) Parses all records from an input stream and returns them in a list.Parses all records from the input and returns them in a list.Parses all records from the input and returns them in a list.Parses all remainingRecord
s from the input and returns them in a list.parseAllRecords
(int expectedRowCount) Parses all remainingRecord
s from the input and returns them in a list.parseAllRecords
(File file) Parses all records from a file and returns them in a list.parseAllRecords
(File file, int expectedRowCount) Parses all records from a file and returns them in a list.parseAllRecords
(File file, String encoding) Parses all records from a file and returns them in a list.parseAllRecords
(File file, String encoding, int expectedRowCount) Parses all records from a file and returns them in a list.parseAllRecords
(File file, Charset encoding) Parses all records from a file and returns them in a list.parseAllRecords
(File file, Charset encoding, int expectedRowCount) Parses all records from a file and returns them in a list.parseAllRecords
(InputStream input) Parses all records from an input stream and returns them in a list.parseAllRecords
(InputStream input, int expectedRowCount) Parses all records from an input stream and returns them in a list.parseAllRecords
(InputStream input, String encoding) Parses all records from an input stream and returns them in a list.parseAllRecords
(InputStream input, String encoding, int expectedRowCount) Parses all records from an input stream and returns them in a list.parseAllRecords
(InputStream input, Charset encoding) Parses all records from an input stream and returns them in a list.parseAllRecords
(InputStream input, Charset encoding, int expectedRowCount) Parses all records from an input stream and returns them in a list.parseAllRecords
(Reader reader) Parses all records from the input and returns them in a list.parseAllRecords
(Reader reader, int expectedRowCount) Parses all records from the input and returns them in a list.final String[]
Parses a single line from a String in the format supported by the parser implementation.final String[]
Parses the next record from the input.final Record
Parses the next record from the input.protected abstract void
Parser-specific implementation for reading a single record from the input.final Record
parseRecord
(String line) Parses a single line from a String in the format supported by the parser implementation.protected void
protected final void
Reloads headers from settings.private void
rowProcessed
(String[] row) final void
Stops parsing and closes all open resources.private void
stopParsing
(Throwable error) In case of errors, stops parsing and closes all open resources.
-
Field Details
-
settings
-
output
-
recordsToRead
private final long recordsToRead -
comment
protected final char comment -
lineReader
-
context
-
processor
-
input
-
ch
protected char ch -
errorHandler
-
rowsToSkip
private final long rowsToSkip -
comments
-
lastComment
-
collectComments
private final boolean collectComments -
errorContentLength
private final int errorContentLength -
extractingHeaders
private boolean extractingHeaders -
extractHeaders
private final boolean extractHeaders -
whitespaceRangeStart
protected final int whitespaceRangeStart -
ignoreTrailingWhitespace
protected boolean ignoreTrailingWhitespace -
ignoreLeadingWhitespace
protected boolean ignoreLeadingWhitespace -
processComments
private final boolean processComments
-
-
Constructor Details
-
AbstractParser
All parsers must support, at the very least, the settings provided byCommonParserSettings
. The AbstractParser requires its configuration to be properly initialized.- Parameters:
settings
- the parser configuration
-
-
Method Details
-
processComment
protected void processComment() -
parse
Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.- Parameters:
reader
- The input to be parsed.
-
parseRecord
protected abstract void parseRecord()Parser-specific implementation for reading a single record from the input.The AbstractParser handles the initialization and processing of the input until it is ready to be parsed.
It then delegates the input to the parser-specific implementation defined by
parseRecord()
. In general, an implementation ofparseRecord()
will perform the following steps:- Test the character stored in ch and take some action on it (e.g. is while (ch != '\n'){doSomething()})
- Request more characters by calling ch = input.nextChar();
- Append the desired characters to the output by executing, for example, output.appender.append(ch)
- Notify a value of the record has been fully read by executing output.valueParsed(). This will clear the output appender (
CharAppender
) so the next call to output.appender.append(ch) will be store the character of the next parsed value - Rinse and repeat until all values of the record are parsed
Once the
parseRecord()
returns, the AbstractParser takes over and handles the information (generally, reorganizing it and passing it on to aRowProcessor
).After the record processing, the AbstractParser reads the next characters from the input, delegating control again to the parseRecord() implementation for processing of the next record.
This cycle repeats until the reading process is stopped by the user, the input is exhausted, or an error happens.
In case of errors, the unchecked exception
TextParsingException
will be thrown and all resources in use will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
. The exception should contain the cause and more information about where in the input the error happened. -
consumeValueOnEOF
protected boolean consumeValueOnEOF()Allows the parser implementation to handle any value that was being consumed when the end of the input was reached- Returns:
- a flag indicating whether the parser was processing a value when the end of the input was reached.
-
handleEOF
-
beginParsing
Starts an iterator-style parsing cycle. If aRowProcessor
is provided in the configuration, it will be used to perform additional processing. The parsed records must be read one by one with the invocation ofparseNext()
. The user may invoke @linkstopParsing()
to stop reading from the input.- Parameters:
reader
- The input to be parsed.
-
extractHeadersIfRequired
void extractHeadersIfRequired() -
createParsingContext
-
initialize
protected void initialize() -
getInputAnalysisProcess
Allows the parser implementation to traverse the input buffer before the parsing process starts, in order to enable automatic configuration and discovery of data formats.- Returns:
- a custom implementation of
InputAnalysisProcess
. By default,null
is returned and no special input analysis will be performed.
-
getParsedContent
-
handleException
-
stopParsing
In case of errors, stops parsing and closes all open resources. Avoids hiding the original exception in case another error occurs when stopping. -
stopParsing
public final void stopParsing()Stops parsing and closes all open resources. -
beginParseAll
-
parseAll
Parses all remaining rows from the input and returns them in a list.- Parameters:
expectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all remaining records parsed from the input.
-
parseAll
Parses all remaining rows from the input and returns them in a list.- Returns:
- the list of all remaining records parsed from the input.
-
parseAllRecords
Parses all remainingRecord
s from the input and returns them in a list. -
parseAllRecords
Parses all remainingRecord
s from the input and returns them in a list.- Returns:
- the list of all remaining
Record
s parsed from the input.
-
parseAll
Parses all records from the input and returns them in a list.- Parameters:
reader
- the input to be parsed- Returns:
- the list of all records parsed from the input.
-
parseAll
Parses all records from the input and returns them in a list.- Parameters:
reader
- the input to be parsedexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
internalParseAll
-
inComment
protected boolean inComment() -
parseNext
Parses the next record from the input. Note thatbeginParsing(Reader)
must have been invoked once before calling this method. If the end of the input is reached, then this method will return null. Additionally, all resources will be closed automatically at the end of the input or if any error happens while parsing, unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
.- Returns:
- The record parsed from the input or null if there's no more characters to read.
-
reloadHeaders
protected final void reloadHeaders()Reloads headers from settings. -
parseRecord
Parses a single line from a String in the format supported by the parser implementation.- Parameters:
line
- a line of text to be parsed- Returns:
- the
Record
containing the values parsed from the input line
-
parseLine
Parses a single line from a String in the format supported by the parser implementation.- Parameters:
line
- a line of text to be parsed- Returns:
- the values parsed from the input line
-
rowProcessed
-
parse
Parses the entirety of a given file and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.- Parameters:
file
- The file to be parsed.
-
parse
Parses the entirety of a given file and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.- Parameters:
file
- The file to be parsed.encoding
- the encoding of the file
-
parse
Parses the entirety of a given file and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.- Parameters:
file
- The file to be parsed.encoding
- the encoding of the file
-
parse
Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.- Parameters:
input
- The input to be parsed. The input stream will be closed automatically, unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
.
-
parse
Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.- Parameters:
input
- The input to be parsed. The input stream will be closed automatically, unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
.encoding
- the encoding of the input stream
-
parse
Parses the entirety of a given input and delegates each parsed row to an instance ofRowProcessor
, defined byCommonParserSettings.getRowProcessor()
.- Parameters:
input
- The input to be parsed. The input stream will be closed automatically, unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
.encoding
- the encoding of the input stream
-
beginParsing
Starts an iterator-style parsing cycle. If aRowProcessor
is provided in the configuration, it will be used to perform additional processing. The parsed records must be read one by one with the invocation ofparseNext()
. The user may invoke @linkstopParsing()
to stop reading from the input.- Parameters:
file
- The file to be parsed.
-
beginParsing
Starts an iterator-style parsing cycle. If aRowProcessor
is provided in the configuration, it will be used to perform additional processing. The parsed records must be read one by one with the invocation ofparseNext()
. The user may invoke @linkstopParsing()
to stop reading from the input.- Parameters:
file
- The file to be parsed.encoding
- the encoding of the file
-
beginParsing
Starts an iterator-style parsing cycle. If aRowProcessor
is provided in the configuration, it will be used to perform additional processing. The parsed records must be read one by one with the invocation ofparseNext()
. The user may invoke @linkstopParsing()
to stop reading from the input.- Parameters:
file
- The file to be parsed.encoding
- the encoding of the file
-
beginParsing
Starts an iterator-style parsing cycle. If aRowProcessor
is provided in the configuration, it will be used to perform additional processing. The parsed records must be read one by one with the invocation ofparseNext()
. The user may invoke @linkstopParsing()
to stop reading from the input.- Parameters:
input
- The input to be parsed. The input stream will be closed automatically in case of errors unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
.
-
beginParsing
Starts an iterator-style parsing cycle. If aRowProcessor
is provided in the configuration, it will be used to perform additional processing. The parsed records must be read one by one with the invocation ofparseNext()
. The user may invoke @linkstopParsing()
to stop reading from the input.- Parameters:
input
- The input to be parsed. The input stream will be closed automatically in case of errors unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
.encoding
- the encoding of the input stream
-
beginParsing
Starts an iterator-style parsing cycle. If aRowProcessor
is provided in the configuration, it will be used to perform additional processing. The parsed records must be read one by one with the invocation ofparseNext()
. The user may invoke @linkstopParsing()
to stop reading from the input.- Parameters:
input
- The input to be parsed. The input stream will be closed automatically in case of errors unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
.encoding
- the encoding of the input stream
-
parseAll
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the file.
-
parseAll
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the fileexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the file.
-
parseAll
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the fileexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the file.
-
parseAll
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
expectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
parseAll
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input streamexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
parseAll
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input streamexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
parseAll
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsed- Returns:
- the list of all records parsed from the file.
-
parseAll
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the file- Returns:
- the list of all records parsed from the file.
-
parseAll
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the file- Returns:
- the list of all records parsed from the file.
-
parseAll
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
- Returns:
- the list of all records parsed from the input.
-
parseAll
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input stream- Returns:
- the list of all records parsed from the input.
-
parseAll
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input stream- Returns:
- the list of all records parsed from the input.
-
parseAllRecords
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the file.
-
parseAllRecords
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the fileexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the file.
-
parseAllRecords
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the fileexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the file.
-
parseAllRecords
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
expectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
parseAllRecords
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input streamexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
parseAllRecords
public final List<Record> parseAllRecords(InputStream input, Charset encoding, int expectedRowCount) Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input streamexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
parseAllRecords
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsed- Returns:
- the list of all records parsed from the file.
-
parseAllRecords
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the file- Returns:
- the list of all records parsed from the file.
-
parseAllRecords
Parses all records from a file and returns them in a list.- Parameters:
file
- the input file to be parsedencoding
- the encoding of the file- Returns:
- the list of all records parsed from the file.
-
parseAllRecords
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
- Returns:
- the list of all records parsed from the input.
-
parseAllRecords
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input stream- Returns:
- the list of all records parsed from the input.
-
parseAllRecords
Parses all records from an input stream and returns them in a list.- Parameters:
input
- the input stream to be parsed. The input stream will be closed automatically unlessCommonParserSettings.isAutoClosingEnabled()
evaluates tofalse
encoding
- the encoding of the input stream- Returns:
- the list of all records parsed from the input.
-
parseAllRecords
Parses all records from the input and returns them in a list.- Parameters:
reader
- the input to be parsedexpectedRowCount
- expected number of rows to be parsed from the input. Used to pre-allocate the size of the outputList
- Returns:
- the list of all records parsed from the input.
-
internalParseAllRecords
-
parseAllRecords
Parses all records from the input and returns them in a list.- Parameters:
reader
- the input to be parsed- Returns:
- the list of all records parsed from the input.
-
parseNextRecord
Parses the next record from the input. Note thatbeginParsing(Reader)
must have been invoked once before calling this method. If the end of the input is reached, then this method will return null. Additionally, all resources will be closed automatically at the end of the input or if any error happens while parsing.- Returns:
- The record parsed from the input or null if there's no more characters to read.
-
getComments
Returns all comments collected by the parser so far. An empty map will be returned ifCommonParserSettings.isCommentCollectionEnabled()
evaluates tofalse
.- Returns:
- a map containing the line numbers and comments found in each.
-
getLastComment
Returns the last comment found in the input.null
will be returned ifCommonParserSettings.isCommentCollectionEnabled()
is evaluated tofalse
.- Returns:
- the last comment found in the input.
-
getParsedHeaders
Returns the headers parsed from the input, if and only ifCommonParserSettings.headerExtractionEnabled
istrue
. The result of this method won't return the list of headers manually set by the user inCommonSettings.getHeaders()
.- Returns:
- the headers parsed from the input, when
CommonParserSettings.headerExtractionEnabled
istrue
.
-
getContext
Returns the current parsing context with information about the status of the parser at any given time.- Returns:
- the parsing context
-
getRecordMetadata
Returns the metadata associated withRecord
s parsed from the input usingparseAllRecords(File)
orparseNextRecord()
.- Returns:
- the metadata of
Record
s generated with the current input.
-
iterate
Provides anIterableResult
for iterating rows parsed from the input.- Parameters:
input
- the inputFile
encoding
- the encoding of the inputFile
- Returns:
- an iterator for rows parsed from the input.
-
iterate
Provides anIterableResult
for iterating rows parsed from the input.- Parameters:
input
- the inputFile
encoding
- the encoding of the inputFile
- Returns:
- an iterator for rows parsed from the input.
-
iterate
Provides anIterableResult
for iterating rows parsed from the input.- Parameters:
input
- the inputFile
- Returns:
- an iterator for rows parsed from the input.
-
iterate
Provides anIterableResult
for iterating rows parsed from the input.- Parameters:
input
- the inputReader
- Returns:
- an
iterable
over the results of parsing theReader
-
iterate
Provides anIterableResult
for iterating rows parsed from the input.- Parameters:
input
- the theInputStream
with contents to be parsedencoding
- the character encoding to be used for processing the given input.- Returns:
- an iterator for rows parsed from the input.
-
iterate
Provides anIterableResult
for iterating rows parsed from the input.- Parameters:
input
- the theInputStream
with contents to be parsedencoding
- the character encoding to be used for processing the given input.- Returns:
- an iterator for rows parsed from the input.
-
iterate
Provides anIterableResult
for iterating rows parsed from the input.- Parameters:
input
- the theInputStream
with contents to be parsed- Returns:
- an iterator for rows parsed from the input.
-
iterateRecords
Provides anIterableResult
for iterating records parsed from the input.- Parameters:
input
- the inputFile
encoding
- the encoding of the inputFile
- Returns:
- an iterator for records parsed from the input.
-
iterateRecords
Provides anIterableResult
for iterating records parsed from the input.- Parameters:
input
- the inputFile
encoding
- the encoding of the inputFile
- Returns:
- an iterator for records parsed from the input.
-
iterateRecords
Provides anIterableResult
for iterating records parsed from the input.- Parameters:
input
- the inputFile
- Returns:
- an iterator for records parsed from the input.
-
iterateRecords
Provides anIterableResult
for iterating records parsed from the input.- Parameters:
input
- the inputReader
- Returns:
- an iterator for records parsed from the input.
-
iterateRecords
public final IterableResult<Record,ParsingContext> iterateRecords(InputStream input, String encoding) Provides anIterableResult
for iterating records parsed from the input.- Parameters:
input
- the theInputStream
with contents to be parsedencoding
- the character encoding to be used for processing the given input.- Returns:
- an iterator for records parsed from the input.
-
iterateRecords
public final IterableResult<Record,ParsingContext> iterateRecords(InputStream input, Charset encoding) Provides anIterableResult
for iterating records parsed from the input.- Parameters:
input
- the theInputStream
with contents to be parsedencoding
- the character encoding to be used for processing the given input.- Returns:
- an iterator for records parsed from the input.
-
iterateRecords
Provides anIterableResult
for iterating records parsed from the input.- Parameters:
input
- the theInputStream
with contents to be parsed- Returns:
- an iterator for records parsed from the input.
-