[ https://issues.apache.org/jira/browse/CSV-68?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13230818#comment-13230818 ]
Sebb edited comment on CSV-68 at 3/16/12 1:54 AM: -------------------------------------------------- Patch with skeleton implementation. The build() method should be updated to include validation. was (Author: s...@apache.org): Patch with skeleton implementation > 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.patch > > > 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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira