@PluginFactory
public static AbstractCsvLayout createLayout(
@PluginConfiguration final Configuration config,
@PluginAttribute(value = "format", defaultString = DEFAULT_FORMAT) final String format,
@PluginAttribute("delimiter") final Character delimiter,
@PluginAttribute("escape") final Character escape,
@PluginAttribute("quote") final Character quote,
@PluginAttribute("quoteMode") final QuoteMode quoteMode,
@PluginAttribute("nullString") final String nullString,
@PluginAttribute("recordSeparator") final String recordSeparator,
@PluginAttribute(value = "charset", defaultString = DEFAULT_CHARSET) final Charset charset,
@PluginAttribute("header") final String header,
@PluginAttribute("footer") final String footer)
{
final CSVFormat csvFormat = createFormat(format, delimiter, escape, quote, quoteMode, nullString, recordSeparator);
return new CsvParameterLayout(config, charset, csvFormat, header, footer);
}