- java.lang.Object
-
- de.siegmar.fastcsv.reader.CsvCallbackHandler<T>
-
- Type Parameters:
T
- the type of the record that is built from the CSV data
- Direct Known Subclasses:
AbstractBaseCsvCallbackHandler
,AbstractCsvCallbackHandler
public abstract class CsvCallbackHandler<T> extends java.lang.Object
This class defines the methods that are called during the CSV reading process.Implementations highly affect the behavior of the
CsvReader
. With great power comes great responsibility. Don't mess up the CSV reading process!Even if you need custom handling, you typically don't need to extend this class directly. Check out
AbstractBaseCsvCallbackHandler
first.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CsvCallbackHandler()
Default constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
addField(char[] buf, int offset, int len, boolean quoted)
Called for each field in the record.protected abstract void
beginRecord(long startingLineNumber)
Called at the beginning of each record.protected abstract RecordWrapper<T>
buildRecord()
Called at the end of each CSV record to build an object representation of the record.protected abstract void
setComment(char[] buf, int offset, int len)
Called for each comment line.protected void
terminate()
Called at the end of the CSV reading process.
-
-
-
Method Detail
-
beginRecord
protected abstract void beginRecord(long startingLineNumber)
Called at the beginning of each record.The
startingLineNumber
is the line number where the record starts (starting with 1). SeeCsvRecord.getStartingLineNumber()
.- Parameters:
startingLineNumber
- the line number where the record starts (starting with 1)
-
addField
protected abstract void addField(char[] buf, int offset, int len, boolean quoted)
Called for each field in the record.A record can either be a comment or a regular record. If this method is called, the record is a regular record and cannot be a comment.
The
quoted
parameter indicates whether the field was quoted. It is for informational purposes only. Any potential escape characters are already removed and theoffset
points to the first character after the opening quote and thelen
does not include the closing quote. Hence, a quoted field can be processed in the same way as an unquoted field. Some implementations need the information whether a field was quoted, e.g., for differentiating betweennull
and empty fields (foo,,bar
vs.foo,"",bar
).The
buf
parameter is the internal buffer that contains the field value (among other data). Do not attempt to modify the buffer or store a reference to it. The buffer is reused for performance reasons.- Parameters:
buf
- the internal buffer that contains the field value (among other data)offset
- the offset of the field value in the bufferlen
- the length of the field valuequoted
-true
if the field was quoted
-
setComment
protected abstract void setComment(char[] buf, int offset, int len)
Called for each comment line.Note that the comment character is not included in the value.
This method is not called if
CsvReader.CsvReaderBuilder.commentStrategy(CommentStrategy)
is set toCommentStrategy.NONE
.There can only be one invocation of this method per record. A record can either be a comment or a regular record. If this method is called, the record is a comment and cannot be a regular record.
The
buf
parameter is the internal buffer that contains the field value (among other data). Do not attempt to modify the buffer or store a reference to it. The buffer is reused for performance reasons.- Parameters:
buf
- the internal buffer that contains the field value (among other data)offset
- the offset of the field value in the bufferlen
- the length of the field value
-
buildRecord
protected abstract RecordWrapper<T> buildRecord()
Called at the end of each CSV record to build an object representation of the record.The returned wrapper is used by the
CsvReader
in order to determine how to process the record.- Returns:
- the record wrapper or
null
if the record should be ignored/skipped
-
terminate
protected void terminate()
Called at the end of the CSV reading process.
-
-