- java.lang.Object
-
- de.siegmar.fastcsv.reader.CsvParser
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
final class CsvParser extends java.lang.Object implements java.io.Closeable
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classCsvParser.CsvBuffer
-
Field Summary
Fields Modifier and Type Field Description private booleanacceptCharsAfterQuotesprivate CsvCallbackHandler<?>callbackHandlerprivate charcCharprivate CommentStrategycStratprivate CsvParser.CsvBuffercsvBufferprivate booleanfinishedprivate charfsepprivate intlinesprivate charqCharprivate longstartingLineNumberprivate intstatusprivate static intSTATUS_COMMENTED_RECORDprivate static intSTATUS_DATA_FIELDprivate static intSTATUS_LAST_CHAR_WAS_CRprivate static intSTATUS_NEW_FIELDprivate static intSTATUS_QUOTED_FIELDprivate static intSTATUS_QUOTED_MODEprivate static intSTATUS_RESET
-
Constructor Summary
Constructors Constructor Description CsvParser(char fieldSeparator, char quoteCharacter, CommentStrategy commentStrategy, char commentCharacter, boolean acceptCharsAfterQuotes, CsvCallbackHandler<?> callbackHandler, java.io.Reader reader)CsvParser(char fieldSeparator, char quoteCharacter, CommentStrategy commentStrategy, char commentCharacter, boolean acceptCharsAfterQuotes, CsvCallbackHandler<?> callbackHandler, java.lang.String data)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidassertFields(char fieldSeparator, char quoteCharacter, char commentCharacter)private static intcleanDelimiters(char[] buf, int begin, int end, char quoteCharacter)Remove escapes from the field data.voidclose()(package private) booleanconsume(char[] lBuf, int lLen)longgetStartingLineNumber()private voidmaterialize(char[] lBuf, int lBegin, int lPos, int lStatus, char quoteCharacter)(package private) booleanparse()(package private) java.lang.StringpeekLine()private booleanprocessBufferTail()(package private) voidreset(long startingLineNumber)(package private) booleanskipLine(int numCharsToSkip)
-
-
-
Field Detail
-
STATUS_LAST_CHAR_WAS_CR
private static final int STATUS_LAST_CHAR_WAS_CR
- See Also:
- Constant Field Values
-
STATUS_COMMENTED_RECORD
private static final int STATUS_COMMENTED_RECORD
- See Also:
- Constant Field Values
-
STATUS_NEW_FIELD
private static final int STATUS_NEW_FIELD
- See Also:
- Constant Field Values
-
STATUS_QUOTED_MODE
private static final int STATUS_QUOTED_MODE
- See Also:
- Constant Field Values
-
STATUS_QUOTED_FIELD
private static final int STATUS_QUOTED_FIELD
- See Also:
- Constant Field Values
-
STATUS_DATA_FIELD
private static final int STATUS_DATA_FIELD
- See Also:
- Constant Field Values
-
STATUS_RESET
private static final int STATUS_RESET
- See Also:
- Constant Field Values
-
fsep
private final char fsep
-
qChar
private final char qChar
-
cStrat
private final CommentStrategy cStrat
-
cChar
private final char cChar
-
acceptCharsAfterQuotes
private final boolean acceptCharsAfterQuotes
-
callbackHandler
private final CsvCallbackHandler<?> callbackHandler
-
csvBuffer
private final CsvParser.CsvBuffer csvBuffer
-
startingLineNumber
private long startingLineNumber
-
lines
private int lines
-
status
private int status
-
finished
private boolean finished
-
-
Constructor Detail
-
CsvParser
CsvParser(char fieldSeparator, char quoteCharacter, CommentStrategy commentStrategy, char commentCharacter, boolean acceptCharsAfterQuotes, CsvCallbackHandler<?> callbackHandler, java.io.Reader reader)
-
CsvParser
CsvParser(char fieldSeparator, char quoteCharacter, CommentStrategy commentStrategy, char commentCharacter, boolean acceptCharsAfterQuotes, CsvCallbackHandler<?> callbackHandler, java.lang.String data)
-
-
Method Detail
-
assertFields
private void assertFields(char fieldSeparator, char quoteCharacter, char commentCharacter)
-
parse
boolean parse() throws java.io.IOException- Throws:
java.io.IOException
-
processBufferTail
private boolean processBufferTail()
-
consume
boolean consume(char[] lBuf, int lLen)
-
materialize
private void materialize(char[] lBuf, int lBegin, int lPos, int lStatus, char quoteCharacter)
-
cleanDelimiters
private static int cleanDelimiters(char[] buf, int begin, int end, char quoteCharacter)Remove escapes from the field data.The input buffer could look like this:
foo ""is"" bar- Parameters:
buf- the buffer containing the field databegin- the start position of the field data (after the opening quote)end- the end position of the field data (on the closing quote / end of buffer)quoteCharacter- the quote character- Returns:
- the length of the field data after removing escapes
-
getStartingLineNumber
public long getStartingLineNumber()
-
reset
void reset(long startingLineNumber)
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
peekLine
java.lang.String peekLine() throws java.io.IOException- Throws:
java.io.IOException
-
skipLine
boolean skipLine(int numCharsToSkip) throws java.io.IOException- Throws:
java.io.IOException
-
-