diff --git a/src/main/java/org/apache/commons/csv/CSVFormat.java b/src/main/java/org/apache/commons/csv/CSVFormat.java index 4d89c39d19..409c0f4bb8 100644 --- a/src/main/java/org/apache/commons/csv/CSVFormat.java +++ b/src/main/java/org/apache/commons/csv/CSVFormat.java @@ -210,6 +210,7 @@ public CSVFormat getFormat() { private final String[] header; // array of header column names private final String[] headerComments; // array of header comment lines private final boolean skipHeaderRecord; + private final boolean ignoreHeaderCase; // should ignore header names case /** * Standard comma separated format, as for {@link #RFC4180} but allowing empty lines. @@ -226,7 +227,7 @@ public CSVFormat getFormat() { * @see Predefined#Default */ public static final CSVFormat DEFAULT = new CSVFormat(COMMA, DOUBLE_QUOTE_CHAR, null, null, null, false, true, - CRLF, null, null, null, false, false); + CRLF, null, null, null, false, false, false); /** * Comma separated format as defined by RFC 4180. @@ -361,7 +362,7 @@ private static boolean isLineBreak(final Character c) { * @see #TDF */ public static CSVFormat newFormat(final char delimiter) { - return new CSVFormat(delimiter, null, null, null, null, false, false, null, null, null, null, false, false); + return new CSVFormat(delimiter, null, null, null, null, false, false, null, null, null, null, false, false, false); } /** @@ -405,6 +406,8 @@ public static CSVFormat valueOf(final String format) { * TODO * @param allowMissingColumnNames * TODO + * @param ignoreHeaderCase + * TODO * @throws IllegalArgumentException * if the delimiter is a line break character */ @@ -412,7 +415,7 @@ private CSVFormat(final char delimiter, final Character quoteChar, final QuoteMo final Character commentStart, final Character escape, final boolean ignoreSurroundingSpaces, final boolean ignoreEmptyLines, final String recordSeparator, final String nullString, final Object[] headerComments, final String[] header, final boolean skipHeaderRecord, - final boolean allowMissingColumnNames) { + final boolean allowMissingColumnNames, final boolean ignoreHeaderCase) { this.delimiter = delimiter; this.quoteCharacter = quoteChar; this.quoteMode = quoteMode; @@ -426,6 +429,7 @@ private CSVFormat(final char delimiter, final Character quoteChar, final QuoteMo this.headerComments = toStringArray(headerComments); this.header = header == null ? null : header.clone(); this.skipHeaderRecord = skipHeaderRecord; + this.ignoreHeaderCase = ignoreHeaderCase; validate(); } @@ -602,6 +606,15 @@ public boolean getIgnoreSurroundingSpaces() { return ignoreSurroundingSpaces; } + /** + * Specifies whether header names will be accessed ignoring case. + * + * @return {@code true} if header names cases are ignored, {@code false} if they are case sensitive. + */ + public boolean getIgnoreHeaderCase() { + return ignoreHeaderCase; + } + /** * Gets the String to convert to and from {@code null}. *