public interface CharInputReader extends CharInput
AbstractParser
.
This interface declares basic functionalities to provide a common input manipulation structure for all parser classes.
Implementations of this interface MUST convert the sequence of newline characters defined by Format.getLineSeparator()
into the normalized newline character provided in Format.getNormalizedNewline()
.
Format
Modifier and Type | Method and Description |
---|---|
long |
charCount()
Returns the number of characters returned by
nextChar() at any given time. |
String |
currentParsedContent()
Returns a String with the input character sequence parsed to produce the current record.
|
void |
enableNormalizeLineEndings(boolean escaping)
Indicates to the input reader that the parser is running in "escape" mode and
new lines should be returned as-is to prevent modifying the content of the parsed value.
|
char |
getChar()
Returns the last character returned by the
nextChar() method. |
char[] |
getLineSeparator()
Returns the line separator by this character input reader.
|
String |
getString(char ch,
char stop,
boolean trim,
String nullValue,
int maxLength)
Attempts to collect a
String from the current position until a stop character is found on the input,
or a line ending is reached. |
long |
lineCount()
Returns the number of newlines read so far.
|
void |
markRecordStart()
Marks the start of a new record in the input, used internally to calculate the result of
currentParsedContent() |
char |
nextChar()
Returns the next character in the input provided by the active
Reader . |
String |
readComment()
Collects the comment line found on the input.
|
void |
skipLines(long lineCount)
Skips characters in the input until the given number of lines is discarded.
|
char |
skipWhitespace(char current,
char stopChar1,
char stopChar2)
Skips characters from the current input position, until a non-whitespace character, or a stop character is found
|
void |
start(Reader reader)
Initializes the CharInputReader implementation with a
Reader which provides access to the input. |
void |
stop()
Stops the CharInputReader from reading characters from the
Reader provided in start(Reader) and closes it. |
void start(Reader reader)
Reader
which provides access to the input.reader
- A Reader
that provides access to the input.void stop()
Reader
provided in start(Reader)
and closes it.char nextChar()
Reader
.
If the input contains a sequence of newline characters (defined by Format.getLineSeparator()
), this method will automatically converted them to the newline character specified in Format.getNormalizedNewline()
.
A subsequent call to this method will return the character after the newline sequence.
char getChar()
nextChar()
method.getChar
in interface CharInput
nextChar()
method.'\0' if there are no more characters in the input or if the CharInputReader was stopped.long charCount()
nextChar()
at any given time.nextChar()
long lineCount()
void skipLines(long lineCount)
lineCount
- the number of lines to skip from the current location in the inputString readComment()
void enableNormalizeLineEndings(boolean escaping)
escaping
- flag indicating that the parser is escaping values and line separators are to be returned as-is.char[] getLineSeparator()
Format.getLineSeparator()
configuration, or the line separator sequence identified automatically
when CommonParserSettings.isLineSeparatorDetectionEnabled()
evaluates to true
.char skipWhitespace(char current, char stopChar1, char stopChar2)
current
- the current character of the inputstopChar1
- the first stop character (which can be a whitespace)stopChar2
- the second character (which can be a whitespace)String currentParsedContent()
void markRecordStart()
currentParsedContent()
String getString(char ch, char stop, boolean trim, String nullValue, int maxLength)
String
from the current position until a stop character is found on the input,
or a line ending is reached. If the String
can be obtained, the current position of the parser will be updated to
the last consumed character. If the internal buffer needs to be reloaded, this method will return null
and the current position of the buffer will remain unchanged.ch
- the current character to be considered. If equal to the stop character the nullValue
will be returnedstop
- the stop character that identifies the end of the content to be collectedtrim
- flag indicating whether or not trailing whitespaces should be discardednullValue
- value to return when the length of the content to be returned is 0
.maxLength
- the maximum length of the String
to be returned. If the length exceeds this limit, null
will be returnedString
found on the input, or null
if the buffer needs to reloaded or the maximum length has been exceeded.Copyright © 2019 uniVocity Software Pty Ltd. All rights reserved.