Class CSVDataExporter
- java.lang.Object
-
- org.apache.wicket.extensions.markup.html.repeater.data.table.export.AbstractDataExporter
-
- org.apache.wicket.extensions.markup.html.repeater.data.table.export.CSVDataExporter
-
- All Implemented Interfaces:
Serializable
,IDataExporter
,IClusterable
public class CSVDataExporter extends AbstractDataExporter
AnIDataExporter
that exports data to a CSV file. This class allows for customization of the exact CSV format, including setting the delimiter, the text quoting character and the character set.This class will export CSV files in a format consistent with RFC4180 by default.
- Author:
- Jesse Long
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description CSVDataExporter()
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> void
exportData(IDataProvider<T> dataProvider, List<IExportableColumn<T,?>> columns, OutputStream outputStream)
Exports the data provided by theIDataProvider
to theOutputStream
.String
getCharacterSet()
Returns the character set encoding to be used when exporting data.String
getContentType()
Returns the content type of the exported data.protected IConverterLocator
getConverterLocator()
Get the locator of converters.char
getDelimiter()
Returns the delimiter to be used for separating fields.char
getQuoteCharacter()
Returns the character to be used for quoting fields.boolean
isExportHeadersEnabled()
Indicates if header exporting is enabled.protected String
quoteValue(String value)
Quotes a value for export to CSV.CSVDataExporter
setCharacterSet(String characterSet)
Sets the character set encoding to be used when exporting data.CSVDataExporter
setDelimiter(char delimiter)
Sets the delimiter to be used to separate fields.CSVDataExporter
setExportHeadersEnabled(boolean exportHeadersEnabled)
Turns on or off export headers functionality.CSVDataExporter
setQuoteCharacter(char quoteCharacter)
Sets the character to be used to quote fields.protected <T> IModel<T>
wrapModel(IModel<T> model)
Wrap the given model--
Methods inherited from class org.apache.wicket.extensions.markup.html.repeater.data.table.export.AbstractDataExporter
getDataFormatNameModel, getFileNameExtension, setContentType, setDataFormatNameModel, setFileNameExtension
-
-
-
-
Constructor Detail
-
CSVDataExporter
public CSVDataExporter()
Creates a new instance.
-
-
Method Detail
-
setDelimiter
public CSVDataExporter setDelimiter(char delimiter)
Sets the delimiter to be used to separate fields. The default delimiter is a colon.- Parameters:
delimiter
- The delimiter to be used to separate fields.- Returns:
this
, for chaining.
-
getDelimiter
public char getDelimiter()
Returns the delimiter to be used for separating fields.- Returns:
- the delimiter to be used for separating fields.
-
getCharacterSet
public String getCharacterSet()
Returns the character set encoding to be used when exporting data.- Returns:
- the character set encoding to be used when exporting data.
-
setCharacterSet
public CSVDataExporter setCharacterSet(String characterSet)
Sets the character set encoding to be used when exporting data. This defaults to UTF-8.- Parameters:
characterSet
- The character set encoding to be used when exporting data.- Returns:
this
, for chaining.
-
getQuoteCharacter
public char getQuoteCharacter()
Returns the character to be used for quoting fields.- Returns:
- the character to be used for quoting fields.
-
setQuoteCharacter
public CSVDataExporter setQuoteCharacter(char quoteCharacter)
Sets the character to be used to quote fields. This defaults to double quotes,- Parameters:
quoteCharacter
- The character to be used to quote fields.- Returns:
this
, for chaining.
-
getContentType
public String getContentType()
Returns the content type of the exported data. For CSV, this is normally "text/csv". This methods adds the character set and header values, in accordance with RFC4180.- Specified by:
getContentType
in interfaceIDataExporter
- Overrides:
getContentType
in classAbstractDataExporter
- Returns:
- the content type of the exported data.
-
setExportHeadersEnabled
public CSVDataExporter setExportHeadersEnabled(boolean exportHeadersEnabled)
Turns on or off export headers functionality. If this is set totrue
, then the first line of the export will contain the column headers. This defaults totrue
.- Parameters:
exportHeadersEnabled
- A boolean indicating whether or not headers should be exported.- Returns:
this
, for chaining.
-
isExportHeadersEnabled
public boolean isExportHeadersEnabled()
Indicates if header exporting is enabled. Defaults totrue
.- Returns:
- a boolean indicating if header exporting is enabled.
-
quoteValue
protected String quoteValue(String value)
Quotes a value for export to CSV. According to RFC4180, this should just duplicate all occurrences of the quote character and wrap the result in the quote character.- Parameters:
value
- The value to be quoted.- Returns:
- a quoted copy of the value.
-
exportData
public <T> void exportData(IDataProvider<T> dataProvider, List<IExportableColumn<T,?>> columns, OutputStream outputStream) throws IOException
Description copied from interface:IDataExporter
Exports the data provided by theIDataProvider
to theOutputStream
.- Type Parameters:
T
- The type of each row of data provided by theIDataProvider
.- Parameters:
dataProvider
- TheIDataProvider
from which to retrieve the data.columns
- TheIExportableColumn
to use to describe the data.outputStream
- TheOutputStream
to which to write the exported data.- Throws:
IOException
- If an error occurs.
-
getConverterLocator
protected IConverterLocator getConverterLocator()
Get the locator of converters.- Returns:
- locator
-
-