Top Description Constructors Methods
de.siegmar.fastcsv.reader

public abstract Class CsvCallbackHandler<T>

extends Object
Class Inheritance
Known Direct Subclasses
de.siegmar.fastcsv.reader.AbstractBaseCsvCallbackHandler, de.siegmar.fastcsv.reader.AbstractInternalCsvCallbackHandler
Annotations
@SuppressWarnings:checkstyle:AbstractClassName
Type Parameters
<T>
the type of the record that is built from the CSV data
Imports
de.siegmar.fastcsv.util.Nullable

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

AccessConstructor and Description
protected
CsvCallbackHandler()

Default constructor.

Method Summary

Modifier and TypeMethod and Description
protected abstract void
addField(char[]
the internal buffer that contains the field value (among other data)
buf
,
int
the offset of the field value in the buffer
offset
,
int
the length of the field value
len
,
boolean
true if the field was quoted
quoted
)

Called for each field in the record.

protected abstract void
beginRecord(long
the line number where the record starts (starting with 1)
startingLineNumber
)

Called at the beginning of each record.

protected abstract T

Returns:

the record or null if the record should be ignored/skipped as it is consumed by the callback handler.
buildRecord
()

Called at the end of each CSV record to build the actual record representation.

protected abstract int

Returns:

the number of fields in the record
getFieldCount
()

Returns the number of fields in the record.

protected abstract RecordType

Returns:

the type of the record that is built from the CSV data
getRecordType
()

Returns the type of the record that is built from the CSV data.

protected abstract void
setComment(char[]
the internal buffer that contains the field value (among other data)
buf
,
int
the offset of the field value in the buffer
offset
,
int
the length of the field value
len
)

Called for each comment line.

protected abstract void
setEmpty()

Called for each empty line.

protected void
terminate()

Called at the end of the CSV reading process.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

CsvCallbackHandlerback to summary
protected CsvCallbackHandler()

Default constructor.

Method Detail

addFieldback to summary
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 the offset points to the first character after the opening quote and the len 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 between null 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:char[]

the internal buffer that contains the field value (among other data)

offset:int

the offset of the field value in the buffer

len:int

the length of the field value

quoted:boolean

true if the field was quoted

beginRecordback to summary
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).

Parameters
startingLineNumber:long

the line number where the record starts (starting with 1)

buildRecordback to summary
protected abstract T buildRecord()

Called at the end of each CSV record to build the actual record representation.

Returns:T

the record or null if the record should be ignored/skipped as it is consumed by the callback handler.

Annotations
@Nullable
getFieldCountback to summary
protected abstract int getFieldCount()

Returns the number of fields in the record.

The CsvReader will verify that the number of fields in each record matches the number of fields in the first record unless de.siegmar.fastcsv.reader.CsvReader.CsvReaderBuilder#allowExtraFields(boolean) or de.siegmar.fastcsv.reader.CsvReader.CsvReaderBuilder#allowMissingFields(boolean) are set to true.

Returns:int

the number of fields in the record

getRecordTypeback to summary
protected abstract RecordType getRecordType()

Returns the type of the record that is built from the CSV data.

The CsvReader will skip

Returns:RecordType

the type of the record that is built from the CSV data

setCommentback to summary
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 de.siegmar.fastcsv.reader.CsvReader.CsvReaderBuilder#commentStrategy(CommentStrategy) is set to CommentStrategy#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:char[]

the internal buffer that contains the field value (among other data)

offset:int

the offset of the field value in the buffer

len:int

the length of the field value

setEmptyback to summary
protected abstract void setEmpty()

Called for each empty line.

terminateback to summary
protected void terminate()

Called at the end of the CSV reading process.