You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Benedikt Ritter <be...@googlemail.com> on 2012/03/21 19:34:46 UTC
Re: svn commit: r1303488 - /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
What about the Builder pattern we discussed lately? Several people
have expressed their feels for that solution.
Am 21. März 2012 19:20 schrieb <se...@apache.org>:
> 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")
> + ;
>
>
> /**
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org
Re: svn commit: r1303488 - /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
Posted by sebb <se...@gmail.com>.
On 21 March 2012 18:34, Benedikt Ritter <be...@googlemail.com> wrote:
> What about the Builder pattern we discussed lately? Several people
> have expressed their feels for that solution.
We don't have consensus on that yet.
But it would be very easy to convert those definitions to use the
builder pattern.
> Am 21. März 2012 19:20 schrieb <se...@apache.org>:
>> 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")
>> + ;
>>
>>
>> /**
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org