|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.avaje.ebean.text.csv.DefaultCsvCallback<T>
T
- public class DefaultCsvCallback<T>
Provides the default implementation of CsvCallback.
This handles transaction creation (if no current transaction existed) and transaction commit or rollback on error.
For customising the processing you can extend this object and override the appropriate methods.
Constructor Summary | |
---|---|
DefaultCsvCallback()
Construct with a default batch size of 30 and logging info messages every 1000 rows. |
|
DefaultCsvCallback(int persistBatchSize,
int logInfoFrequency)
Construct with explicit batch size and logging info frequency. |
Method Summary | |
---|---|
void |
begin(EbeanServer server)
Create a transaction if required. |
void |
end(int row)
Commit the transaction if one was created. |
void |
endWithError(int row,
Exception e)
Rollback the transaction if one was created. |
void |
processBean(int row,
String[] line,
T bean)
Will save the bean. |
boolean |
processLine(int row,
String[] line)
Validate that the content is valid and return false if the row should be ignored. |
void |
readHeader(String[] line)
Override to read the heading line. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DefaultCsvCallback()
public DefaultCsvCallback(int persistBatchSize, int logInfoFrequency)
Method Detail |
---|
public void begin(EbeanServer server)
begin
in interface CsvCallback<T>
public void readHeader(String[] line)
This is only called if CsvReader.setHasHeader(boolean)
is set to
true.
By default this does nothing (effectively ignoring the heading).
readHeader
in interface CsvCallback<T>
line
- the header line content.public boolean processLine(int row, String[] line)
By default this just returns true.
Override this to add custom validation logic returning false if you want the row to be ignored. For example, if all the content is empty return false to ignore the row (rather than having the processing fail with some error).
processLine
in interface CsvCallback<T>
public void processBean(int row, String[] line, T bean)
Override this method to customise the bean (set additional properties etc) or to control the saving of other related beans (when you can't/don't want to use Cascade.PERSIST etc).
processBean
in interface CsvCallback<T>
row
- the index of the content being processedline
- the content that has been used to load the beanbean
- the entity bean after it has been loaded from the csv contentpublic void end(int row)
end
in interface CsvCallback<T>
public void endWithError(int row, Exception e)
endWithError
in interface CsvCallback<T>
row
- the row that the error has occured one
- the error that occured
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |