Author: sebb Date: Wed Mar 21 18:20:05 2012 New Revision: 1303488 URL: http://svn.apache.org/viewvc?rev=1303488&view=rev Log: CSV-74 - CSVFormat definitions are difficult to read and maintain
Modified: commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java Modified: commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java?rev=1303488&r1=1303487&r2=1303488&view=diff ============================================================================== --- commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java (original) +++ commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java Wed Mar 21 18:20:05 2012 @@ -51,8 +51,23 @@ public class CSVFormat implements Serial */ static final char DISABLED = '\ufffe'; + /** + * Starting format with no settings defined; used for creating other formats from scratch. + */ + private static CSVFormat PRISTINE = + new CSVFormat(DISABLED, DISABLED, DISABLED, DISABLED, false, false, false, null, null); + /** Standard comma separated format as defined by <a href="http://tools.ietf.org/html/rfc4180">RFC 4180</a>. */ - public static final CSVFormat DEFAULT = new CSVFormat(',', '"', DISABLED, DISABLED, true, true, true, CRLF, null); + public static final CSVFormat DEFAULT = + PRISTINE. + withDelimiter(',') + .withEncapsulator('"') + .withLeadingSpacesIgnored(true) + .withTrailingSpacesIgnored(true) + .withEmptyLinesIgnored(true) + .withLineSeparator(CRLF) + ; + /** * Excel file format (using a comma as the value delimiter). @@ -65,10 +80,23 @@ public class CSVFormat implements Serial * * <pre>CSVFormat fmt = CSVFormat.EXCEL.withDelimiter(';');</pre> */ - public static final CSVFormat EXCEL = new CSVFormat(',', '"', DISABLED, DISABLED, false, false, false, CRLF, null); + public static final CSVFormat EXCEL = + PRISTINE + .withDelimiter(',') + .withEncapsulator('"') + .withLineSeparator(CRLF) + ; /** Tab-delimited format, with quote; leading and trailing spaces ignored. */ - public static final CSVFormat TDF = new CSVFormat('\t', '"', DISABLED, DISABLED, true, true, true, CRLF, null); + public static final CSVFormat TDF = + PRISTINE + .withDelimiter('\t') + .withEncapsulator('"') + .withLeadingSpacesIgnored(true) + .withTrailingSpacesIgnored(true) + .withEmptyLinesIgnored(true) + .withLineSeparator(CRLF) + ; /** * Default MySQL format used by the <tt>SELECT INTO OUTFILE</tt> and @@ -78,7 +106,12 @@ public class CSVFormat implements Serial * * @see <a href="http://dev.mysql.com/doc/refman/5.1/en/load-data.html">http://dev.mysql.com/doc/refman/5.1/en/load-data.html</a> */ - public static final CSVFormat MYSQL = new CSVFormat('\t', DISABLED, DISABLED, '\\', false, false, false, "\n", null); + public static final CSVFormat MYSQL = + PRISTINE + .withDelimiter('\t') + .withEscape('\\') + .withLineSeparator("\n") + ; /**