org.apache.wicket.extensions.markup.html.repeater.data.table.export
Class CSVDataExporter

java.lang.Object
  extended by org.apache.wicket.extensions.markup.html.repeater.data.table.export.AbstractDataExporter
      extended by org.apache.wicket.extensions.markup.html.repeater.data.table.export.CSVDataExporter
All Implemented Interfaces:
Serializable, IDataExporter, org.apache.wicket.util.io.IClusterable

public class CSVDataExporter
extends AbstractDataExporter

An IDataExporter 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
CSVDataExporter()
          Creates a new instance.
 
Method Summary
<T> void
exportData(IDataProvider<T> dataProvider, List<IExportableColumn<T,?,?>> columns, OutputStream outputStream)
          Exports the data provided by the IDataProvider to the OutputStream.
 String getCharacterSet()
          Returns the character set encoding to be used when exporting data.
 String getContentType()
          Returns the content type of the exported data.
 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.
 
Methods inherited from class org.apache.wicket.extensions.markup.html.repeater.data.table.export.AbstractDataExporter
getDataFormatNameModel, getFileNameExtension, setContentType, setDataFormatNameModel, setFileNameExtension
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 interface IDataExporter
Overrides:
getContentType in class AbstractDataExporter
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 to true, then the first line of the export will contain the column headers. This defaults to true.

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 to true.

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 the IDataProvider to the OutputStream.

Type Parameters:
T - The type of each row of data provided by the IDataProvider.
Parameters:
dataProvider - The IDataProvider from which to retrieve the data.
columns - The IExportableColumn to use to describe the data.
outputStream - The OutputStream to which to write the exported data.
Throws:
IOException - If an error occurs.


Copyright © 2006–2020 Apache Software Foundation. All rights reserved.