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 2013/03/28 15:23:56 UTC
svn commit: r1462110 - in /commons/proper/csv/trunk/src:
main/java/org/apache/commons/csv/CSVRecord.java
test/java/org/apache/commons/csv/CSVParserTest.java
Author: ggregory
Date: Thu Mar 28 14:23:56 2013
New Revision: 1462110
URL: http://svn.apache.org/r1462110
Log:
[CSV-96] CSVRecord does not verify that the length of the header mapping matches the number of values.
Modified:
commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java
commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java
Modified: commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java
URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java?rev=1462110&r1=1462109&r2=1462110&view=diff
==============================================================================
--- commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java (original)
+++ commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java Thu Mar 28 14:23:56 2013
@@ -83,6 +83,17 @@ public class CSVRecord implements Serial
}
/**
+ * Returns true if this record is consistent, false if not. Currently, the only check is matching the record size to
+ * the header size. Some programs can export files that fails this test but still produce parsable files.
+ *
+ * @return true of this record is valid, false if not
+ * @see CSVParserTest#org.apache.commons.csv.CSVParserTest.testMappedButNotSetAsOutlook2007ContactExport()
+ */
+ public boolean isConsistent() {
+ return mapping == null ? true : mapping.size() == values.length;
+ }
+
+ /**
* Checks whether a given column is mapped.
*
* @param name
Modified: commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java
URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java?rev=1462110&r1=1462109&r2=1462110&view=diff
==============================================================================
--- commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java (original)
+++ commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java Thu Mar 28 14:23:56 2013
@@ -550,6 +550,7 @@ public class CSVParserTest {
assertEquals("a", record.get("A"));
assertEquals("b", record.get("B"));
assertEquals("c", record.get("C"));
+ assertTrue(record.isConsistent());
// 1st record
record = records.next();
@@ -561,6 +562,7 @@ public class CSVParserTest {
assertFalse(record.isSet("C"));
assertEquals("1", record.get("A"));
assertEquals("2", record.get("B"));
+ assertFalse(record.isConsistent());
// 2nd record
record = records.next();
@@ -573,6 +575,7 @@ public class CSVParserTest {
assertEquals("x", record.get("A"));
assertEquals("y", record.get("B"));
assertEquals("z", record.get("C"));
+ assertTrue(record.isConsistent());
assertFalse(records.hasNext());
}