| Modifier and Type | Class and Description |
|---|---|
static class |
TCsvReader.CsvColumn
Processes a column in the csv content.
|
| Modifier and Type | Field and Description |
|---|---|
protected int |
persistBatchSize
The batch size used for JDBC statement batching.
|
| Constructor and Description |
|---|
TCsvReader(EbeanServer server,
BeanDescriptor<T> descriptor) |
| Modifier and Type | Method and Description |
|---|---|
void |
addDateTime(String propertyName,
String dateTimeFormat)
Add a property with a custom Date/Time/Timestamp format using the default
Locale.
|
void |
addDateTime(String propertyName,
String dateTimeFormat,
Locale locale)
Add a property with a custom Date/Time/Timestamp format.
|
void |
addIgnore()
Ignore the next column of data.
|
void |
addProperty(String propertyName)
Define the property which will be loaded from the next column of data.
|
void |
addProperty(String propertyName,
StringParser parser)
Define the next property and use a custom StringParser to convert the
string content into the appropriate type for the property.
|
void |
addProperty(String propertyName,
StringParser parser,
boolean reference) |
void |
addReference(String propertyName)
Define the next property to be a reference.
|
protected T |
buildBeanFromLineContent(int row,
String[] line) |
protected void |
convertAndSetColumn(int columnPos,
String strValue,
Object bean) |
void |
process(Reader reader)
Automatically create a transaction if required to process all the CSV
content from the reader.
|
void |
process(Reader reader,
CsvCallback<T> callback)
Process the CSV content passing the bean to the CsvCallback after each row.
|
void |
setAddPropertiesFromHeader()
Same as setHasHeader(true,true);
|
void |
setDefaultDateFormat(String defaultDateFormat)
Set the default format to use for Date types.
|
void |
setDefaultLocale(Locale defaultLocale)
Explicitly set the default Locale.
|
void |
setDefaultTimeFormat(String defaultTimeFormat)
Set the default format to use for Time types.
|
void |
setDefaultTimestampFormat(String defaultTimestampFormat)
Set the default format to use for Timestamp types.
|
void |
setHasHeader(boolean hasHeader,
boolean addPropertiesFromHeader)
Set to true if there is a header row that should be ignored.
|
void |
setIgnoreHeader()
Same as setHasHeader(true, false);
|
void |
setLogInfoFrequency(int logInfoFrequency)
Set the frequency with which a INFO message will be logged showing the
progress of the processing.
|
void |
setPersistBatchSize(int persistBatchSize)
Set the batch size for using JDBC statement batching.
|
protected int persistBatchSize
public TCsvReader(EbeanServer server, BeanDescriptor<T> descriptor)
public void setDefaultLocale(Locale defaultLocale)
CsvReadersetDefaultLocale in interface CsvReader<T>public void setDefaultTimeFormat(String defaultTimeFormat)
CsvReadersetDefaultTimeFormat in interface CsvReader<T>public void setDefaultDateFormat(String defaultDateFormat)
CsvReadersetDefaultDateFormat in interface CsvReader<T>public void setDefaultTimestampFormat(String defaultTimestampFormat)
CsvReadersetDefaultTimestampFormat in interface CsvReader<T>public void setPersistBatchSize(int persistBatchSize)
CsvReaderBy default this is set to 20 and setting this to 1 will disable the use of JDBC statement batching.
setPersistBatchSize in interface CsvReader<T>public void setIgnoreHeader()
CsvReaderThis indicates that there is a header but that it should be ignored.
setIgnoreHeader in interface CsvReader<T>public void setAddPropertiesFromHeader()
CsvReaderThis will use a header to define all the properties to load using the default formats for time, date and datetime types.
setAddPropertiesFromHeader in interface CsvReader<T>public void setHasHeader(boolean hasHeader,
boolean addPropertiesFromHeader)
CsvReaderIf addPropertiesFromHeader is true then all the properties are added using the default time,date and timestamp formats.
If you have a mix of dateTime formats you can not use this method and must add the properties yourself.
setHasHeader in interface CsvReader<T>public void setLogInfoFrequency(int logInfoFrequency)
CsvReaderIf this is not set then no INFO messages will be logged.
setLogInfoFrequency in interface CsvReader<T>public void addIgnore()
CsvReaderpublic void addProperty(String propertyName)
CsvReaderThis takes into account the data type of the property and handles the String to object conversion automatically.
addProperty in interface CsvReader<T>public void addReference(String propertyName)
CsvReaderaddReference in interface CsvReader<T>public void addProperty(String propertyName, StringParser parser)
CsvReaderaddProperty in interface CsvReader<T>public void addDateTime(String propertyName, String dateTimeFormat)
CsvReaderaddDateTime in interface CsvReader<T>public void addDateTime(String propertyName, String dateTimeFormat, Locale locale)
CsvReaderaddDateTime in interface CsvReader<T>public void addProperty(String propertyName, StringParser parser, boolean reference)
public void process(Reader reader) throws Exception
CsvReaderThis will check for a current transaction. If there is no current transaction then one is started and will commit (or rollback) at the end of processing. This will also set the persistBatchSize on the transaction.
public void process(Reader reader, CsvCallback<T> callback) throws Exception
CsvReaderThis provides you with the ability to modify and process the bean.
When using a CsvCallback the reader WILL NOT create a transaction or save the bean(s) for you. If you want to insert the processed beans you must create your own transaction and save the bean(s) yourself.
Copyright © 2014. All Rights Reserved.