You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2014/06/10 00:21:23 UTC
svn commit: r1601517 - in /commons/proper/csv/trunk/src: changes/changes.xml
main/java/org/apache/commons/csv/CSVFormat.java
main/java/org/apache/commons/csv/CSVPrinter.java
test/java/org/apache/commons/csv/CSVPrinterTest.java
Author: ggregory
Date: Mon Jun 9 22:21:22 2014
New Revision: 1601517
URL: http://svn.apache.org/r1601517
Log:
<action issue="CSV-120" type="add" dev="ggregory" due-to="Sergei Lebedev">CSVFormat#withHeader doesn't work with CSVPrinter</action>
Modified:
commons/proper/csv/trunk/src/changes/changes.xml
commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java
commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
Modified: commons/proper/csv/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/changes/changes.xml?rev=1601517&r1=1601516&r2=1601517&view=diff
==============================================================================
--- commons/proper/csv/trunk/src/changes/changes.xml (original)
+++ commons/proper/csv/trunk/src/changes/changes.xml Mon Jun 9 22:21:22 2014
@@ -39,7 +39,8 @@
</properties>
<body>
- <release version="1.0" date="TBD" description="First release">
+ <release version="1.0" date="TBD" description="First release">
+ <action issue="CSV-120" type="add" dev="ggregory" due-to="Sergei Lebedev">CSVFormat#withHeader doesn't work with CSVPrinter</action>
<action issue="CSV-119" type="add" dev="ggregory" due-to="Sergei Lebedev">CSVFormat is missing a print(...) method</action>
<action issue="CSV-118" type="fix" dev="ggregory" due-to="Enrique Lara">CSVRecord.toMap() throws NPE on formats with no
headers.</action>
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=1601517&r1=1601516&r2=1601517&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 Mon Jun 9 22:21:22 2014
@@ -605,8 +605,10 @@ public final class CSVFormat implements
* @param out
* the output
* @return a printer to an output
+ * @throws IOException
+ * thrown if the optional header cannot be printed.
*/
- public CSVPrinter print(final Appendable out) {
+ public CSVPrinter print(final Appendable out) throws IOException {
return new CSVPrinter(out, this);
}
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=1601517&r1=1601516&r2=1601517&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 Mon Jun 9 22:21:22 2014
@@ -45,24 +45,31 @@ public final class CSVPrinter implements
/**
* Creates a printer that will print values to the given stream following the CSVFormat.
* <p>
- * Currently, only a pure encapsulation format or a pure escaping format is supported. Hybrid formats
- * (encapsulation and escaping with a different character) are not supported.
+ * Currently, only a pure encapsulation format or a pure escaping format is supported. Hybrid formats (encapsulation
+ * and escaping with a different character) are not supported.
* </p>
- *
+ *
* @param out
- * stream to which to print. Must not be null.
+ * stream to which to print. Must not be null.
* @param format
- * the CSV format. Must not be null.
+ * the CSV format. Must not be null.
+ * @throws IOException
+ * thrown if the optional header cannot be printed.
* @throws IllegalArgumentException
- * thrown if the parameters of the format are inconsistent or if either out or format are null.
+ * thrown if the parameters of the format are inconsistent or if either out or format are null.
*/
- public CSVPrinter(final Appendable out, final CSVFormat format) {
+ public CSVPrinter(final Appendable out, final CSVFormat format) throws IOException {
Assertions.notNull(out, "out");
Assertions.notNull(format, "format");
this.out = out;
this.format = format;
this.format.validate();
+ // TODO: Is it a good idea to do this here instead of on the first call to a print method?
+ // It seems a pain to have to track whether the header has already been printed or not.
+ if (format.getHeader() != null) {
+ this.printRecord((Object[]) format.getHeader());
+ }
}
// ======================================================
Modified: commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java?rev=1601517&r1=1601516&r2=1601517&view=diff
==============================================================================
--- commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java (original)
+++ commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java Mon Jun 9 22:21:22 2014
@@ -486,6 +486,17 @@ public class CSVPrinterTest {
}
@Test
+ public void testHeader() throws IOException {
+ final StringWriter sw = new StringWriter();
+ final CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT.withQuoteChar(null)
+ .withHeader("C1", "C2", "C3"));
+ printer.printRecord("a", "b", "c");
+ printer.printRecord("x", "y", "z");
+ assertEquals("C1,C2,C3\r\na,b,c\r\nx,y,z\r\n", sw.toString());
+ printer.close();
+ }
+
+ @Test
public void testEOLPlain() throws IOException {
final StringWriter sw = new StringWriter();
final CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT.withQuoteChar(null));
Re: svn commit: r1601517 - in /commons/proper/csv/trunk/src: changes/changes.xml
main/java/org/apache/commons/csv/CSVFormat.java main/java/org/apache/commons/csv/CSVPrinter.java
test/java/org/apache/commons/csv/CSVPrinterTest.java
Posted by Emmanuel Bourg <eb...@apache.org>.
Le 10/06/2014 00:21, ggregory@apache.org a écrit :
> Author: ggregory
> Date: Mon Jun 9 22:21:22 2014
> New Revision: 1601517
>
> URL: http://svn.apache.org/r1601517
> Log:
> <action issue="CSV-120" type="add" dev="ggregory" due-to="Sergei Lebedev">CSVFormat#withHeader doesn't work with CSVPrinter</action>
>
Is it possible to use plain text instead of XML in the commit messages
please ? ;)
Emmanuel Bourg
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org