[
https://issues.apache.org/jira/browse/CSV-68?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13497178#comment-13497178
]
Gary Gregory commented on CSV-68:
---------------------------------
Hm... so why is this:
{code:java}
CSVFormat format =
CSVFormat.defaults().withIgnoreSurroundingSpaces(false).build();
{code}
better than:
{code:java}
CSVFormat format = CSVFormat.DEFAULT.withIgnoreSurroundingSpaces(false);
{code}
?
>From a user's POV, I see defaults() vs DEFAULT, I'm indifferent, but now I
>have to call an extra method, build(). So the patch makes configuration MORE
>verbose. That does not sound right.
Does it to anyone else?
G
> Use Builder pattern for CSVFormat
> ---------------------------------
>
> Key: CSV-68
> URL: https://issues.apache.org/jira/browse/CSV-68
> Project: Commons CSV
> Issue Type: Improvement
> Reporter: Sebb
> Attachments: CSV-68_20121111.patch, CSV-68.patch, CSVFormat2.java,
> CVSFormat2Main.java
>
>
> Using a builder pattern to create CSVFormat instances would allow the
> settings to be validated at creation time and would eliminate the need to
> keep creating new CSVFormat instances whilst still allowing the class to be
> immutable.
> A possible API is as follows:
> {code}
> CSVFormat DEFAULT = CSVFormat.init(',') // delimiter is required
> .withEncapsulator('"')
> .withLeadingSpacesIgnored(true)
> .withTrailingSpacesIgnored(true)
> .withEmptyLinesIgnored(true)
> .withLineSeparator("\r\n") // optional, as it would be the default
> .build();
> CSVFormat format = CSVFormat.init(CSVFormat.DEFAULT) // alternatively start
> with pre-defined format
> .withSurroundingSpacesIgnored(false)
> .build();
> {code}
> Compare this with the current syntax:
> {code}
> // internal syntax; not easy to determine what all the parameters do
> CSVFormat DEFAULT1 = new CSVFormat(',', '"', DISABLED, DISABLED, true, true,
> false, true, CRLF);
> // external syntax
> CSVFormat format = CSVFormat.DEFAULT.withSurroundingSpacesIgnored(false);
> {code}
> As a proof of concept I've written skeleton code which compiles (but needs
> completing).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira