- 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 class
CsvParser.CsvBuffer
-
Field Summary
Fields Modifier and Type Field Description private boolean
acceptCharsAfterQuotes
private CsvCallbackHandler<?>
callbackHandler
private char
cChar
private CommentStrategy
cStrat
private CsvParser.CsvBuffer
csvBuffer
private boolean
finished
private char
fsep
private int
lines
private char
qChar
private long
startingLineNumber
private int
status
private static int
STATUS_COMMENTED_RECORD
private static int
STATUS_DATA_FIELD
private static int
STATUS_LAST_CHAR_WAS_CR
private static int
STATUS_NEW_FIELD
private static int
STATUS_QUOTED_FIELD
private static int
STATUS_QUOTED_MODE
private static int
STATUS_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 void
assertFields(char fieldSeparator, char quoteCharacter, char commentCharacter)
private static int
cleanDelimiters(char[] buf, int begin, int end, char quoteCharacter)
Remove escapes from the field data.void
close()
(package private) boolean
consume(char[] lBuf, int lLen)
long
getStartingLineNumber()
private void
materialize(char[] lBuf, int lBegin, int lPos, int lStatus, char quoteCharacter)
(package private) boolean
parse()
(package private) java.lang.String
peekLine()
private boolean
processBufferTail()
(package private) void
reset(long startingLineNumber)
(package private) boolean
skipLine(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:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in 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
-
-