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")
+            ;
 
 
     /**


Reply via email to