On Fri, Oct 12, 2012 at 9:56 AM, sebb <seb...@gmail.com> wrote: > On 12 October 2012 14:50, Gary Gregory <garydgreg...@gmail.com> wrote: > > On Fri, Oct 12, 2012 at 9:39 AM, sebb <seb...@gmail.com> wrote: > > > >> On 12 October 2012 13:38, Gary Gregory <garydgreg...@gmail.com> wrote: > >> > On Fri, Oct 12, 2012 at 8:22 AM, Benedikt Ritter < > benerit...@gmail.com > >> >wrote: > >> > > >> >> Hi > >> >> > >> >> 2012/10/12 <ggreg...@apache.org>: > >> >> > Author: ggregory > >> >> > Date: Fri Oct 12 12:12:44 2012 > >> >> > New Revision: 1397534 > >> >> > > >> >> > URL: http://svn.apache.org/viewvc?rev=1397534&view=rev > >> >> > Log: > >> >> > Refactor magic strings into constants. > >> >> > > >> >> > Modified: > >> >> > > >> >> > >> > commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java > >> >> > > >> >> > Modified: > >> >> > >> > commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java > >> >> > URL: > >> >> > >> > http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java?rev=1397534&r1=1397533&r2=1397534&view=diff > >> >> > > >> >> > >> > ============================================================================== > >> >> > --- > >> >> > >> > commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java > >> >> (original) > >> >> > +++ > >> >> > >> > commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java > >> >> Fri Oct 12 12:12:44 2012 > >> >> > @@ -25,6 +25,12 @@ import java.io.IOException; > >> >> > */ > >> >> > public class CSVPrinter { > >> >> > > >> >> > + private static final char COMMENT = '#'; > >> >> > >> >> How about COMMENT_START ? > >> >> > >> > > >> > I would say yes only /if/ there were a COMMENT_END. > >> > >> INLINE_COMMENT_INTRODUCER ? > >> > > > > IS_IT_APRIL_1? > > No. > > But I agree it's not an ideal name. > > It's just that COMMENT on its own is not ideal either. > > Maybe the solution is to add Javadoc to explain how the # is used to > introduce comments. >
Roger that. I added a comment. G > > > > I do not know you well enough to read you ;) > > > > G > > > > > >> > Gary > >> > > >> > > >> >> Benedikt > >> >> > >> >> > + private static final String EMPTY = ""; > >> >> > + private static final char SP = ' '; > >> >> > + private static final char CR = '\r'; > >> >> > + private static final char LF = '\n'; > >> >> > + > >> >> > /** The place that the values get written. */ > >> >> > private final Appendable out; > >> >> > private final CSVFormat format; > >> >> > @@ -106,19 +112,19 @@ public class CSVPrinter { > >> >> > println(); > >> >> > } > >> >> > out.append(format.getCommentStart()); > >> >> > - out.append(' '); > >> >> > + out.append(SP); > >> >> > for (int i = 0; i < comment.length(); i++) { > >> >> > final char c = comment.charAt(i); > >> >> > switch (c) { > >> >> > - case '\r': > >> >> > - if (i + 1 < comment.length() && comment.charAt(i > + 1) > >> >> == '\n') { > >> >> > + case CR: > >> >> > + if (i + 1 < comment.length() && comment.charAt(i > + 1) > >> >> == LF) { > >> >> > i++; > >> >> > } > >> >> > //$FALL-THROUGH$ break intentionally excluded. > >> >> > - case '\n': > >> >> > + case LF: > >> >> > println(); > >> >> > out.append(format.getCommentStart()); > >> >> > - out.append(' '); > >> >> > + out.append(SP); > >> >> > break; > >> >> > default: > >> >> > out.append(c); > >> >> > @@ -159,14 +165,14 @@ public class CSVPrinter { > >> >> > > >> >> > while (pos < end) { > >> >> > char c = value.charAt(pos); > >> >> > - if (c == '\r' || c == '\n' || c == delim || c == > escape) > >> { > >> >> > + if (c == CR || c == LF || c == delim || c == escape) { > >> >> > // write out segment up until this char > >> >> > if (pos > start) { > >> >> > out.append(value, start, pos); > >> >> > } > >> >> > - if (c == '\n') { > >> >> > + if (c == LF) { > >> >> > c = 'n'; > >> >> > - } else if (c == '\r') { > >> >> > + } else if (c == CR) { > >> >> > c = 'r'; > >> >> > } > >> >> > > >> >> > @@ -212,7 +218,7 @@ public class CSVPrinter { > >> >> > if (first && (c < '0' || (c > '9' && c < 'A') || (c > > 'Z' > >> >> && c < 'a') || (c > 'z'))) { > >> >> > quote = true; > >> >> > // } else if (c == ' ' || c == '\f' || c == '\t') > { > >> >> > - } else if (c <= '#') { > >> >> > + } else if (c <= COMMENT) { > >> >> > // Some other chars at the start of a value caused > >> the > >> >> parser to fail, so for now > >> >> > // encapsulate if we start in anything less than > '#'. > >> >> We are being conservative > >> >> > // by including the default comment char too. > >> >> > @@ -220,7 +226,7 @@ public class CSVPrinter { > >> >> > } else { > >> >> > while (pos < end) { > >> >> > c = value.charAt(pos); > >> >> > - if (c == '\n' || c == '\r' || c == > encapsulator > >> || > >> >> c == delim) { > >> >> > + if (c == LF || c == CR || c == encapsulator > || c > >> == > >> >> delim) { > >> >> > quote = true; > >> >> > break; > >> >> > } > >> >> > @@ -233,7 +239,7 @@ public class CSVPrinter { > >> >> > // if (c == ' ' || c == '\f' || c == '\t') { > >> >> > // Some other chars at the end caused the > parser > >> to > >> >> fail, so for now > >> >> > // encapsulate if we end in anything less > than ' > >> ' > >> >> > - if (c <= ' ') { > >> >> > + if (c <= SP) { > >> >> > quote = true; > >> >> > } > >> >> > } > >> >> > @@ -280,7 +286,7 @@ public class CSVPrinter { > >> >> > public void print(String value, final boolean checkForEscape) > >> >> throws IOException { > >> >> > if (value == null) { > >> >> > // null values are considered empty > >> >> > - value = ""; > >> >> > + value = EMPTY; > >> >> > } > >> >> > > >> >> > if (!checkForEscape) { > >> >> > > >> >> > > >> >> > >> >> --------------------------------------------------------------------- > >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> >> For additional commands, e-mail: dev-h...@commons.apache.org > >> >> > >> >> > >> > > >> > > >> > -- > >> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >> > JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 > >> > Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK > >> > Blog: http://garygregory.wordpress.com > >> > Home: http://garygregory.com/ > >> > Tweet! http://twitter.com/GaryGregory > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> For additional commands, e-mail: dev-h...@commons.apache.org > >> > >> > > > > > > -- > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > > JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 > > Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK > > Blog: http://garygregory.wordpress.com > > Home: http://garygregory.com/ > > Tweet! http://twitter.com/GaryGregory > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory