You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by eb...@apache.org on 2011/11/09 17:54:10 UTC
svn commit: r1199842 - in /commons/sandbox/csv/trunk/src:
main/java/org/apache/commons/csv/ test/java/org/apache/commons/csv/
Author: ebourg
Date: Wed Nov 9 16:54:09 2011
New Revision: 1199842
URL: http://svn.apache.org/viewvc?rev=1199842&view=rev
Log:
Renamed CSVStrategy to CSVFormat
Added:
commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java (contents, props changed)
- copied, changed from r1199827, commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVStrategy.java
commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java (contents, props changed)
- copied, changed from r1199827, commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVStrategyTest.java
Removed:
commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVStrategy.java
commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVStrategyTest.java
Modified:
commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java
commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java
commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVUtils.java
commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java
commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVUtilsTest.java
Copied: commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java (from r1199827, commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVStrategy.java)
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java?p2=commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java&p1=commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVStrategy.java&r1=1199827&r2=1199842&rev=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVStrategy.java (original)
+++ commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java Wed Nov 9 16:54:09 2011
@@ -20,11 +20,11 @@ package org.apache.commons.csv;
import java.io.Serializable;
/**
- * CSVStrategy
+ * The format specification of a CSV file.
*
- * Represents the strategy for a CSV.
+ * This class is immutable.
*/
-public class CSVStrategy implements Cloneable, Serializable {
+public class CSVFormat implements Cloneable, Serializable {
private char delimiter = ',';
private char encapsulator = '"';
@@ -45,27 +45,27 @@ public class CSVStrategy implements Clon
public static final char ENCAPSULATOR_DISABLED = (char) -2;
/** Standard comma separated format. */
- public static final CSVStrategy DEFAULT_STRATEGY = new CSVStrategy(',', '"', COMMENTS_DISABLED, ESCAPE_DISABLED, true, true, false, true);
+ public static final CSVFormat DEFAULT = new CSVFormat(',', '"', COMMENTS_DISABLED, ESCAPE_DISABLED, true, true, false, true);
/** Excel file format (using a comma as the value delimiter). */
- public static final CSVStrategy EXCEL_STRATEGY = new CSVStrategy(',', '"', COMMENTS_DISABLED, ESCAPE_DISABLED, false, false, false, false);
+ public static final CSVFormat EXCEL = new CSVFormat(',', '"', COMMENTS_DISABLED, ESCAPE_DISABLED, false, false, false, false);
/** Tabulation delimited format. */
- public static final CSVStrategy TDF_STRATEGY = new CSVStrategy('\t', '"', COMMENTS_DISABLED, ESCAPE_DISABLED, true, true, false, true);
+ public static final CSVFormat TDF = new CSVFormat('\t', '"', COMMENTS_DISABLED, ESCAPE_DISABLED, true, true, false, true);
/**
- * Creates a CSVStrategy with the default parameters.
+ * Creates a CSVFormat with the default parameters.
*/
- public CSVStrategy() {
+ public CSVFormat() {
}
- public CSVStrategy(char delimiter, char encapsulator, char commentStart) {
+ public CSVFormat(char delimiter, char encapsulator, char commentStart) {
this(delimiter, encapsulator, commentStart, ESCAPE_DISABLED, true, true, false, true);
}
/**
- * Customized CSV strategy constructor.
+ * Customized CSV format constructor.
*
* @param delimiter a char used for value separation
* @param encapsulator a char used as value encapsulation marker
@@ -76,7 +76,7 @@ public class CSVStrategy implements Clon
* @param unicodeEscapesInterpreted TRUE when unicode escapes should be interpreted
* @param emptyLinesIgnored TRUE when the parser should skip emtpy lines
*/
- public CSVStrategy(
+ public CSVFormat(
char delimiter,
char encapsulator,
char commentStart,
@@ -99,30 +99,30 @@ public class CSVStrategy implements Clon
return delimiter;
}
- public CSVStrategy withDelimiter(char delimiter) {
- CSVStrategy strategy = (CSVStrategy) clone();
+ public CSVFormat withDelimiter(char delimiter) {
+ CSVFormat format = (CSVFormat) clone();
this.delimiter = delimiter;
- return strategy;
+ return format;
}
public char getEncapsulator() {
return encapsulator;
}
- public CSVStrategy withEncapsulator(char encapsulator) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.encapsulator = encapsulator;
- return strategy;
+ public CSVFormat withEncapsulator(char encapsulator) {
+ CSVFormat format = (CSVFormat) clone();
+ format.encapsulator = encapsulator;
+ return format;
}
public char getCommentStart() {
return commentStart;
}
- public CSVStrategy withCommentStart(char commentStart) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.commentStart = commentStart;
- return strategy;
+ public CSVFormat withCommentStart(char commentStart) {
+ CSVFormat format = (CSVFormat) clone();
+ format.commentStart = commentStart;
+ return format;
}
public boolean isCommentingDisabled() {
@@ -133,60 +133,60 @@ public class CSVStrategy implements Clon
return escape;
}
- public CSVStrategy withEscape(char escape) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.escape = escape;
- return strategy;
+ public CSVFormat withEscape(char escape) {
+ CSVFormat format = (CSVFormat) clone();
+ format.escape = escape;
+ return format;
}
public boolean isLeadingSpacesIgnored() {
return leadingSpacesIgnored;
}
- public CSVStrategy withLeadingSpacesIgnored(boolean leadingSpacesIgnored) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.leadingSpacesIgnored = leadingSpacesIgnored;
- return strategy;
+ public CSVFormat withLeadingSpacesIgnored(boolean leadingSpacesIgnored) {
+ CSVFormat format = (CSVFormat) clone();
+ format.leadingSpacesIgnored = leadingSpacesIgnored;
+ return format;
}
public boolean isTrailingSpacesIgnored() {
return trailingSpacesIgnored;
}
- public CSVStrategy withTrailingSpacesIgnored(boolean trailingSpacesIgnored) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.trailingSpacesIgnored = trailingSpacesIgnored;
- return strategy;
+ public CSVFormat withTrailingSpacesIgnored(boolean trailingSpacesIgnored) {
+ CSVFormat format = (CSVFormat) clone();
+ format.trailingSpacesIgnored = trailingSpacesIgnored;
+ return format;
}
public boolean isUnicodeEscapesInterpreted() {
return unicodeEscapesInterpreted;
}
- public CSVStrategy withUnicodeEscapesInterpreted(boolean unicodeEscapesInterpreted) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.unicodeEscapesInterpreted = unicodeEscapesInterpreted;
- return strategy;
+ public CSVFormat withUnicodeEscapesInterpreted(boolean unicodeEscapesInterpreted) {
+ CSVFormat format = (CSVFormat) clone();
+ format.unicodeEscapesInterpreted = unicodeEscapesInterpreted;
+ return format;
}
public boolean isEmptyLinesIgnored() {
return emptyLinesIgnored;
}
- public CSVStrategy withEmptyLinesIgnored(boolean emptyLinesIgnored) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.emptyLinesIgnored = emptyLinesIgnored;
- return strategy;
+ public CSVFormat withEmptyLinesIgnored(boolean emptyLinesIgnored) {
+ CSVFormat format = (CSVFormat) clone();
+ format.emptyLinesIgnored = emptyLinesIgnored;
+ return format;
}
public String getLineSeparator() {
return lineSeparator;
}
- public CSVStrategy withLineSeparator(String lineSeparator) {
- CSVStrategy strategy = (CSVStrategy) clone();
- strategy.lineSeparator = lineSeparator;
- return strategy;
+ public CSVFormat withLineSeparator(String lineSeparator) {
+ CSVFormat format = (CSVFormat) clone();
+ format.lineSeparator = lineSeparator;
+ return format;
}
protected Object clone() {
Propchange: commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java?rev=1199842&r1=1199841&r2=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java (original)
+++ commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java Wed Nov 9 16:54:09 2011
@@ -27,23 +27,23 @@ import java.util.List;
* Parses CSV files according to the specified configuration.
*
* Because CSV appears in many different dialects, the parser supports many
- * configuration settings by allowing the specification of a {@link CSVStrategy}.
+ * configuration settings by allowing the specification of a {@link CSVFormat}.
*
* <p>Parsing of a csv-string having tabs as separators,
* '"' as an optional value encapsulator, and comments starting with '#':</p>
* <pre>
* String[][] data =
- * (new CSVParser(new StringReader("a\tb\nc\td"), new CSVStrategy('\t','"','#'))).getAllValues();
+ * (new CSVParser(new StringReader("a\tb\nc\td"), new CSVFormat('\t','"','#'))).getAllValues();
* </pre>
*
* <p>Parsing of a csv-string in Excel CSV format</p>
* <pre>
* String[][] data =
- * (new CSVParser(new StringReader("a;b\nc;d"), CSVStrategy.EXCEL_STRATEGY)).getAllValues();
+ * (new CSVParser(new StringReader("a;b\nc;d"), CSVFormat.EXCEL)).getAllValues();
* </pre>
*
* <p>
- * Internal parser state is completely covered by the strategy
+ * Internal parser state is completely covered by the format
* and the reader-state.</p>
*
* <p>see <a href="package-summary.html">package documentation</a>
@@ -73,7 +73,7 @@ public class CSVParser {
// the input stream
private final ExtendedBufferedReader in;
- private final CSVStrategy strategy;
+ private final CSVFormat format;
// the following objects are shared to reduce garbage
/**
@@ -117,23 +117,23 @@ public class CSVParser {
// ======================================================
/**
- * CSV parser using the default {@link CSVStrategy}.
+ * CSV parser using the default {@link CSVFormat}.
*
* @param input a Reader containing "csv-formatted" input
*/
public CSVParser(Reader input) {
- this(input, CSVStrategy.DEFAULT_STRATEGY);
+ this(input, CSVFormat.DEFAULT);
}
/**
- * Customized CSV parser using the given {@link CSVStrategy}
+ * Customized CSV parser using the given {@link CSVFormat}
*
* @param input a Reader containing "csv-formatted" input
- * @param strategy the CSVStrategy used for CSV parsing
+ * @param format the CSVFormat used for CSV parsing
*/
- public CSVParser(Reader input, CSVStrategy strategy) {
+ public CSVParser(Reader input, CSVFormat format) {
this.in = new ExtendedBufferedReader(input);
- this.strategy = strategy;
+ this.format = format;
}
// ======================================================
@@ -141,7 +141,7 @@ public class CSVParser {
// ======================================================
/**
- * Parses the CSV according to the given strategy
+ * Parses the CSV according to the given format
* and returns the content as an array of records
* (whereas records are arrays of single values).
* <p/>
@@ -260,7 +260,7 @@ public class CSVParser {
c = in.readAgain();
// empty line detection: eol AND (last char was EOL or beginning)
- while (strategy.isEmptyLinesIgnored() && eol
+ while (format.isEmptyLinesIgnored() && eol
&& (lastChar == '\n'
|| lastChar == '\r'
|| lastChar == ExtendedBufferedReader.UNDEFINED)
@@ -278,7 +278,7 @@ public class CSVParser {
}
// did we reach eof during the last iteration already ? TT_EOF
- if (isEndOfFile(lastChar) || (lastChar != strategy.getDelimiter() && isEndOfFile(c))) {
+ if (isEndOfFile(lastChar) || (lastChar != format.getDelimiter() && isEndOfFile(c))) {
tkn.type = TT_EOF;
return tkn;
}
@@ -286,17 +286,17 @@ public class CSVParser {
// important: make sure a new char gets consumed in each iteration
while (!tkn.isReady && tkn.type != TT_EOF) {
// ignore whitespaces at beginning of a token
- while (strategy.isLeadingSpacesIgnored() && isWhitespace(c) && !eol) {
+ while (format.isLeadingSpacesIgnored() && isWhitespace(c) && !eol) {
wsBuf.append((char) c);
c = in.read();
eol = isEndOfLine(c);
}
// ok, start of token reached: comment, encapsulated, or token
- if (c == strategy.getCommentStart()) {
+ if (c == format.getCommentStart()) {
// ignore everything till end of line and continue (incr linecount)
in.readLine();
tkn = nextToken(tkn.reset());
- } else if (c == strategy.getDelimiter()) {
+ } else if (c == format.getDelimiter()) {
// empty token return TT_TOKEN("")
tkn.type = TT_TOKEN;
tkn.isReady = true;
@@ -305,7 +305,7 @@ public class CSVParser {
//noop: tkn.content.append("");
tkn.type = TT_EORECORD;
tkn.isReady = true;
- } else if (c == strategy.getEncapsulator()) {
+ } else if (c == format.getEncapsulator()) {
// consume encapsulated token
encapsulatedTokenLexer(tkn, c);
} else if (isEndOfFile(c)) {
@@ -316,7 +316,7 @@ public class CSVParser {
} else {
// next token must be a simple token
// add removed blanks when not ignoring whitespace chars...
- if (!strategy.isLeadingSpacesIgnored()) {
+ if (!format.isLeadingSpacesIgnored()) {
tkn.content.append(wsBuf);
}
simpleTokenLexer(tkn, c);
@@ -354,15 +354,15 @@ public class CSVParser {
tkn.type = TT_EOF;
tkn.isReady = true;
break;
- } else if (c == strategy.getDelimiter()) {
+ } else if (c == format.getDelimiter()) {
// end of token
tkn.type = TT_TOKEN;
tkn.isReady = true;
break;
- } else if (c == '\\' && strategy.isUnicodeEscapesInterpreted() && in.lookAhead() == 'u') {
+ } else if (c == '\\' && format.isUnicodeEscapesInterpreted() && in.lookAhead() == 'u') {
// interpret unicode escaped chars (like \u0070 -> p)
tkn.content.append((char) unicodeEscapeLexer(c));
- } else if (c == strategy.getEscape()) {
+ } else if (c == format.getEscape()) {
tkn.content.append((char) readEscape(c));
} else {
tkn.content.append((char) c);
@@ -371,7 +371,7 @@ public class CSVParser {
c = in.read();
}
- if (strategy.isTrailingSpacesIgnored()) {
+ if (format.isTrailingSpacesIgnored()) {
tkn.content.trimTrailingWhitespace();
}
@@ -400,12 +400,12 @@ public class CSVParser {
for (; ;) {
c = in.read();
- if (c == '\\' && strategy.isUnicodeEscapesInterpreted() && in.lookAhead() == 'u') {
+ if (c == '\\' && format.isUnicodeEscapesInterpreted() && in.lookAhead() == 'u') {
tkn.content.append((char) unicodeEscapeLexer(c));
- } else if (c == strategy.getEscape()) {
+ } else if (c == format.getEscape()) {
tkn.content.append((char) readEscape(c));
- } else if (c == strategy.getEncapsulator()) {
- if (in.lookAhead() == strategy.getEncapsulator()) {
+ } else if (c == format.getEncapsulator()) {
+ if (in.lookAhead() == format.getEncapsulator()) {
// double or escaped encapsulator -> add single encapsulator to token
c = in.read();
tkn.content.append((char) c);
@@ -413,7 +413,7 @@ public class CSVParser {
// token finish mark (encapsulator) reached: ignore whitespace till delimiter
for (; ;) {
c = in.read();
- if (c == strategy.getDelimiter()) {
+ if (c == format.getDelimiter()) {
tkn.type = TT_TOKEN;
tkn.isReady = true;
return tkn;
@@ -512,12 +512,12 @@ public class CSVParser {
// ======================================================
/**
- * Obtain the specified CSV Strategy. This should not be modified.
+ * Obtain the specified CSV format.
*
- * @return strategy currently being used
+ * @return format currently being used
*/
- public CSVStrategy getStrategy() {
- return this.strategy;
+ public CSVFormat getFormat() {
+ return this.format;
}
// ======================================================
@@ -528,7 +528,7 @@ public class CSVParser {
* @return true if the given char is a whitespace character
*/
private boolean isWhitespace(int c) {
- return Character.isWhitespace((char) c) && (c != strategy.getDelimiter());
+ return Character.isWhitespace((char) c) && (c != format.getDelimiter());
}
/**
Modified: commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java?rev=1199842&r1=1199841&r2=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java (original)
+++ commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVPrinter.java Wed Nov 9 16:54:09 2011
@@ -27,7 +27,7 @@ public class CSVPrinter {
/** The place that the values get written. */
private final Writer out;
- private final CSVStrategy strategy;
+ private final CSVFormat format;
/** True if we just began a new line. */
private boolean newLine = true;
@@ -36,18 +36,17 @@ public class CSVPrinter {
private char[] buf = new char[0];
/**
- * Create a printer that will print values to the given
- * stream following the CSVStrategy.
+ * Create a printer that will print values to the given stream following the CSVFormat.
* <p/>
- * Currently, only a pure encapsulation strategy or a pure escaping strategy
- * is supported. Hybrid strategies (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.
*
- * @param out stream to which to print.
- * @param strategy describes the CSV variation.
+ * @param out stream to which to print.
+ * @param format describes the CSV variation.
*/
- public CSVPrinter(Writer out, CSVStrategy strategy) {
+ public CSVPrinter(Writer out, CSVFormat format) {
this.out = out;
- this.strategy = strategy == null ? CSVStrategy.DEFAULT_STRATEGY : strategy;
+ this.format = format == null ? CSVFormat.DEFAULT : format;
}
// ======================================================
@@ -58,7 +57,7 @@ public class CSVPrinter {
* Output a blank line
*/
public void println() throws IOException {
- out.write(strategy.getLineSeparator());
+ out.write(format.getLineSeparator());
newLine = true;
}
@@ -92,13 +91,13 @@ public class CSVPrinter {
* @param comment the comment to output
*/
public void printlnComment(String comment) throws IOException {
- if (this.strategy.isCommentingDisabled()) {
+ if (this.format.isCommentingDisabled()) {
return;
}
if (!newLine) {
println();
}
- out.write(this.strategy.getCommentStart());
+ out.write(this.format.getCommentStart());
out.write(' ');
for (int i = 0; i < comment.length(); i++) {
char c = comment.charAt(i);
@@ -110,7 +109,7 @@ public class CSVPrinter {
// break intentionally excluded.
case '\n':
println();
- out.write(this.strategy.getCommentStart());
+ out.write(this.format.getCommentStart());
out.write(' ');
break;
default:
@@ -129,9 +128,9 @@ public class CSVPrinter {
return;
}
- if (strategy.getEncapsulator() != CSVStrategy.ENCAPSULATOR_DISABLED) {
+ if (format.getEncapsulator() != CSVFormat.ENCAPSULATOR_DISABLED) {
printAndEncapsulate(value, offset, len);
- } else if (strategy.getEscape() != CSVStrategy.ESCAPE_DISABLED) {
+ } else if (format.getEscape() != CSVFormat.ESCAPE_DISABLED) {
printAndEscape(value, offset, len);
} else {
printSep();
@@ -143,7 +142,7 @@ public class CSVPrinter {
if (newLine) {
newLine = false;
} else {
- out.write(this.strategy.getDelimiter());
+ out.write(this.format.getDelimiter());
}
}
@@ -154,8 +153,8 @@ public class CSVPrinter {
printSep();
- char delim = this.strategy.getDelimiter();
- char escape = this.strategy.getEscape();
+ char delim = this.format.getDelimiter();
+ char escape = this.format.getEscape();
while (pos < end) {
char c = value[pos];
@@ -196,8 +195,8 @@ public class CSVPrinter {
printSep();
- char delim = this.strategy.getDelimiter();
- char encapsulator = this.strategy.getEncapsulator();
+ char delim = this.format.getDelimiter();
+ char encapsulator = this.format.getEncapsulator();
if (len <= 0) {
// always quote an empty token that is the first
Modified: commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVUtils.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVUtils.java?rev=1199842&r1=1199841&r2=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVUtils.java (original)
+++ commons/sandbox/csv/trunk/src/main/java/org/apache/commons/csv/CSVUtils.java Wed Nov 9 16:54:09 2011
@@ -48,10 +48,10 @@ public class CSVUtils {
* @return the CSV string, will be an empty string if the length of the
* value array is 0
*/
- public static String printLine(String[] values, CSVStrategy strategy) {
+ public static String printLine(String[] values, CSVFormat format) {
// set up a CSVUtils
StringWriter stringWriter = new StringWriter();
- CSVPrinter csvPrinter = new CSVPrinter(stringWriter, strategy);
+ CSVPrinter csvPrinter = new CSVPrinter(stringWriter, format);
// check for null values an "null" as strings and convert them
// into the strings "null" and "\"null\""
@@ -78,7 +78,7 @@ public class CSVUtils {
// ======================================================
/**
- * Parses the given String according to the default {@link CSVStrategy}.
+ * Parses the given String according to the default {@link CSVFormat}.
*
* @param s CSV String to be parsed.
* @return parsed String matrix (which is never null)
@@ -90,7 +90,7 @@ public class CSVUtils {
}
String[][] result = (new CSVParser(new StringReader(s))).getAllValues();
if (result == null) {
- // since CSVStrategy ignores empty lines an empty array is returned
+ // since CSVFormat ignores empty lines an empty array is returned
// (i.e. not "result = new String[][] {{""}};")
result = EMPTY_DOUBLE_STRING_ARRAY;
}
@@ -98,7 +98,7 @@ public class CSVUtils {
}
/**
- * Parses the first line only according to the default {@link CSVStrategy}.
+ * Parses the first line only according to the default {@link CSVFormat}.
*
* Parsing empty string will be handled as valid records containing zero
* elements, so the following property holds: parseLine("").length == 0.
Copied: commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java (from r1199827, commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVStrategyTest.java)
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java?p2=commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java&p1=commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVStrategyTest.java&r1=1199827&r2=1199842&rev=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVStrategyTest.java (original)
+++ commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java Wed Nov 9 16:54:09 2011
@@ -19,11 +19,11 @@ package org.apache.commons.csv;
import junit.framework.TestCase;
-public class CSVStrategyTest extends TestCase {
+public class CSVFormatTest extends TestCase {
public void testImmutalibity() {
- CSVStrategy strategy1 = new CSVStrategy('!', '!', '!', '!', true, true, true, true);
- CSVStrategy strategy2 = strategy1.withDelimiter('?')
+ CSVFormat format1 = new CSVFormat('!', '!', '!', '!', true, true, true, true);
+ CSVFormat format2 = format1.withDelimiter('?')
.withEncapsulator('?')
.withCommentStart('?')
.withLineSeparator("?")
@@ -33,16 +33,16 @@ public class CSVStrategyTest extends Tes
.withEmptyLinesIgnored(false)
.withUnicodeEscapesInterpreted(false);
- assertNotSame(strategy1.getDelimiter(), strategy2.getDelimiter());
- assertNotSame(strategy1.getEncapsulator(), strategy2.getEncapsulator());
- assertNotSame(strategy1.getCommentStart(), strategy2.getCommentStart());
- assertNotSame(strategy1.getEscape(), strategy2.getEscape());
- assertNotSame(strategy1.getLineSeparator(), strategy2.getLineSeparator());
+ assertNotSame(format1.getDelimiter(), format2.getDelimiter());
+ assertNotSame(format1.getEncapsulator(), format2.getEncapsulator());
+ assertNotSame(format1.getCommentStart(), format2.getCommentStart());
+ assertNotSame(format1.getEscape(), format2.getEscape());
+ assertNotSame(format1.getLineSeparator(), format2.getLineSeparator());
- assertNotSame(strategy1.isTrailingSpacesIgnored(), strategy2.isTrailingSpacesIgnored());
- assertNotSame(strategy1.isLeadingSpacesIgnored(), strategy2.isLeadingSpacesIgnored());
- assertNotSame(strategy1.isEmptyLinesIgnored(), strategy2.isEmptyLinesIgnored());
- assertNotSame(strategy1.isUnicodeEscapesInterpreted(), strategy2.isUnicodeEscapesInterpreted());
+ assertNotSame(format1.isTrailingSpacesIgnored(), format2.isTrailingSpacesIgnored());
+ assertNotSame(format1.isLeadingSpacesIgnored(), format2.isLeadingSpacesIgnored());
+ assertNotSame(format1.isEmptyLinesIgnored(), format2.isEmptyLinesIgnored());
+ assertNotSame(format1.isUnicodeEscapesInterpreted(), format2.isUnicodeEscapesInterpreted());
}
}
Propchange: commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVFormatTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java?rev=1199842&r1=1199841&r2=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java (original)
+++ commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVParserTest.java Wed Nov 9 16:54:09 2011
@@ -47,8 +47,8 @@ public class CSVParserTest extends TestC
super(in);
}
- TestCSVParser(Reader in, CSVStrategy strategy) {
- super(in, strategy);
+ TestCSVParser(Reader in, CSVFormat format) {
+ super(in, format);
}
/**
@@ -94,9 +94,9 @@ public class CSVParserTest extends TestC
*
*/
String code = "1,2,3,\na,b x,c\n#foo\n\nd,e,\n\n";
- CSVStrategy strategy = CSVStrategy.DEFAULT_STRATEGY.withCommentStart('#');
+ CSVFormat format = CSVFormat.DEFAULT.withCommentStart('#');
- TestCSVParser parser = new TestCSVParser(new StringReader(code), strategy);
+ TestCSVParser parser = new TestCSVParser(new StringReader(code), format);
assertEquals(CSVParser.TT_TOKEN + ";1;", parser.testNextToken());
@@ -121,8 +121,8 @@ public class CSVParserTest extends TestC
* \,,
*/
String code = "a,\\,,b\n\\,,";
- CSVStrategy strategy = CSVStrategy.DEFAULT_STRATEGY.withCommentStart('#');
- TestCSVParser parser = new TestCSVParser(new StringReader(code), strategy);
+ CSVFormat format = CSVFormat.DEFAULT.withCommentStart('#');
+ TestCSVParser parser = new TestCSVParser(new StringReader(code), format);
assertEquals(CSVParser.TT_TOKEN + ";a;", parser.testNextToken());
// an unquoted single backslash is not an escape char
@@ -182,7 +182,7 @@ public class CSVParserTest extends TestC
* ;;
*/
String code = "a;'b and '' more\n'\n!comment;;;;\n;;";
- TestCSVParser parser = new TestCSVParser(new StringReader(code), new CSVStrategy(';', '\'', '!'));
+ TestCSVParser parser = new TestCSVParser(new StringReader(code), new CSVFormat(';', '\'', '!'));
assertEquals(CSVParser.TT_TOKEN + ";a;", parser.testNextToken());
assertEquals(
CSVParser.TT_EORECORD + ";b and ' more\n;",
@@ -228,7 +228,7 @@ public class CSVParserTest extends TestC
}
}
- public void testExcelStrategy1() throws IOException {
+ public void testExcelFormat1() throws IOException {
String code =
"value1,value2,value3,value4\r\na,b,c,d\r\n x,,,"
+ "\r\n\r\n\"\"\"hello\"\"\",\" \"\"world\"\"\",\"abc\ndef\",\r\n";
@@ -239,7 +239,7 @@ public class CSVParserTest extends TestC
{""},
{"\"hello\"", " \"world\"", "abc\ndef", ""}
};
- CSVParser parser = new CSVParser(new StringReader(code), CSVStrategy.EXCEL_STRATEGY);
+ CSVParser parser = new CSVParser(new StringReader(code), CSVFormat.EXCEL);
String[][] tmp = parser.getAllValues();
assertEquals(res.length, tmp.length);
assertTrue(tmp.length > 0);
@@ -248,7 +248,7 @@ public class CSVParserTest extends TestC
}
}
- public void testExcelStrategy2() throws Exception {
+ public void testExcelFormat2() throws Exception {
String code = "foo,baar\r\n\r\nhello,\r\n\r\nworld,\r\n";
String[][] res = {
{"foo", "baar"},
@@ -257,7 +257,7 @@ public class CSVParserTest extends TestC
{""},
{"world", ""}
};
- CSVParser parser = new CSVParser(new StringReader(code), CSVStrategy.EXCEL_STRATEGY);
+ CSVParser parser = new CSVParser(new StringReader(code), CSVFormat.EXCEL);
String[][] tmp = parser.getAllValues();
assertEquals(res.length, tmp.length);
assertTrue(tmp.length > 0);
@@ -279,13 +279,13 @@ public class CSVParserTest extends TestC
};
String[][] res = {
{"hello", ""},
- {""}, // ExcelStrategy does not ignore empty lines
+ {""}, // Excel format does not ignore empty lines
{"world", ""}
};
String code;
for (int codeIndex = 0; codeIndex < codes.length; codeIndex++) {
code = codes[codeIndex];
- CSVParser parser = new CSVParser(new StringReader(code), CSVStrategy.EXCEL_STRATEGY);
+ CSVParser parser = new CSVParser(new StringReader(code), CSVFormat.EXCEL);
String[][] tmp = parser.getAllValues();
assertEquals(res.length, tmp.length);
assertTrue(tmp.length > 0);
@@ -307,7 +307,7 @@ public class CSVParserTest extends TestC
"hello,\r\n\r\nworld,\"\""
};
String[][] res = {
- {"hello", ""}, // CSV Strategy ignores empty lines
+ {"hello", ""}, // CSV format ignores empty lines
{"world", ""}
};
String code;
@@ -332,13 +332,13 @@ public class CSVParserTest extends TestC
};
String[][] res = {
{"hello", ""},
- {""}, // ExcelStrategy does not ignore empty lines
+ {""}, // Excel format does not ignore empty lines
{""}
};
String code;
for (int codeIndex = 0; codeIndex < codes.length; codeIndex++) {
code = codes[codeIndex];
- CSVParser parser = new CSVParser(new StringReader(code), CSVStrategy.EXCEL_STRATEGY);
+ CSVParser parser = new CSVParser(new StringReader(code), CSVFormat.EXCEL);
String[][] tmp = parser.getAllValues();
assertEquals(res.length, tmp.length);
assertTrue(tmp.length > 0);
@@ -356,7 +356,7 @@ public class CSVParserTest extends TestC
"hello,\"\"\n\n\n"
};
String[][] res = {
- {"hello", ""} // CSV Strategy ignores empty lines
+ {"hello", ""} // CSV format ignores empty lines
};
String code;
for (int codeIndex = 0; codeIndex < codes.length; codeIndex++) {
@@ -434,9 +434,9 @@ public class CSVParserTest extends TestC
};
- CSVStrategy strategy = new CSVStrategy(',', '\'', CSVStrategy.COMMENTS_DISABLED, '/', false, false, true, true);
+ CSVFormat format = new CSVFormat(',', '\'', CSVFormat.COMMENTS_DISABLED, '/', false, false, true, true);
- CSVParser parser = new CSVParser(new StringReader(code), strategy);
+ CSVParser parser = new CSVParser(new StringReader(code), format);
String[][] tmp = parser.getAllValues();
assertTrue(tmp.length > 0);
for (int i = 0; i < res.length; i++) {
@@ -462,9 +462,9 @@ public class CSVParserTest extends TestC
};
- CSVStrategy strategy = new CSVStrategy(',', CSVStrategy.ENCAPSULATOR_DISABLED, CSVStrategy.COMMENTS_DISABLED, '/', false, false, true, true);
+ CSVFormat format = new CSVFormat(',', CSVFormat.ENCAPSULATOR_DISABLED, CSVFormat.COMMENTS_DISABLED, '/', false, false, true, true);
- CSVParser parser = new CSVParser(new StringReader(code), strategy);
+ CSVParser parser = new CSVParser(new StringReader(code), format);
String[][] tmp = parser.getAllValues();
assertTrue(tmp.length > 0);
@@ -475,7 +475,7 @@ public class CSVParserTest extends TestC
}
- public void testDefaultStrategy() throws IOException {
+ public void testDefaultFormat() throws IOException {
String code = ""
+ "a,b\n" // 1)
@@ -488,10 +488,10 @@ public class CSVParserTest extends TestC
{"", "#"},
};
- CSVStrategy strategy = CSVStrategy.DEFAULT_STRATEGY;
- assertEquals(CSVStrategy.COMMENTS_DISABLED, strategy.getCommentStart());
+ CSVFormat format = CSVFormat.DEFAULT;
+ assertEquals(CSVFormat.COMMENTS_DISABLED, format.getCommentStart());
- CSVParser parser = new CSVParser(new StringReader(code), strategy);
+ CSVParser parser = new CSVParser(new StringReader(code), format);
String[][] tmp = parser.getAllValues();
assertTrue(tmp.length > 0);
@@ -505,8 +505,8 @@ public class CSVParserTest extends TestC
{""},
};
- strategy = new CSVStrategy(',', '"', '#');
- parser = new CSVParser(new StringReader(code), strategy);
+ format = new CSVFormat(',', '"', '#');
+ parser = new CSVParser(new StringReader(code), format);
tmp = parser.getAllValues();
if (!CSVPrinterTest.equals(res_comments, tmp)) {
@@ -517,7 +517,7 @@ public class CSVParserTest extends TestC
public void testUnicodeEscape() throws IOException {
String code = "abc,\\u0070\\u0075\\u0062\\u006C\\u0069\\u0063";
- CSVParser parser = new CSVParser(new StringReader(code), CSVStrategy.DEFAULT_STRATEGY.withUnicodeEscapesInterpreted(true));
+ CSVParser parser = new CSVParser(new StringReader(code), CSVFormat.DEFAULT.withUnicodeEscapesInterpreted(true));
String[] data = parser.getLine();
assertEquals(2, data.length);
assertEquals("abc", data[0]);
@@ -557,7 +557,7 @@ public class CSVParserTest extends TestC
// From SANDBOX-153
public void testDelimiterIsWhitespace() throws IOException {
String code = "one\ttwo\t\tfour \t five\t six";
- TestCSVParser parser = new TestCSVParser(new StringReader(code), CSVStrategy.TDF_STRATEGY);
+ TestCSVParser parser = new TestCSVParser(new StringReader(code), CSVFormat.TDF);
assertEquals(CSVParser.TT_TOKEN + ";one;", parser.testNextToken());
assertEquals(CSVParser.TT_TOKEN + ";two;", parser.testNextToken());
assertEquals(CSVParser.TT_TOKEN + ";;", parser.testNextToken());
Modified: commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java?rev=1199842&r1=1199841&r2=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java (original)
+++ commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVPrinterTest.java Wed Nov 9 16:54:09 2011
@@ -32,7 +32,7 @@ public class CSVPrinterTest extends Test
public void testPrinter1() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.DEFAULT_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT);
String[] line1 = {"a", "b"};
printer.println(line1);
assertEquals("a,b" + lineSeparator, sw.toString());
@@ -40,7 +40,7 @@ public class CSVPrinterTest extends Test
public void testPrinter2() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.DEFAULT_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT);
String[] line1 = {"a,b", "b"};
printer.println(line1);
assertEquals("\"a,b\",b" + lineSeparator, sw.toString());
@@ -48,7 +48,7 @@ public class CSVPrinterTest extends Test
public void testPrinter3() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.DEFAULT_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT);
String[] line1 = {"a, b", "b "};
printer.println(line1);
assertEquals("\"a, b\",\"b \"" + lineSeparator, sw.toString());
@@ -56,7 +56,7 @@ public class CSVPrinterTest extends Test
public void testPrinter4() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.DEFAULT_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT);
String[] line1 = {"a", "b\"c"};
printer.println(line1);
assertEquals("a,\"b\"\"c\"" + lineSeparator, sw.toString());
@@ -64,7 +64,7 @@ public class CSVPrinterTest extends Test
public void testPrinter5() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.DEFAULT_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT);
String[] line1 = {"a", "b\nc"};
printer.println(line1);
assertEquals("a,\"b\nc\"" + lineSeparator, sw.toString());
@@ -72,7 +72,7 @@ public class CSVPrinterTest extends Test
public void testPrinter6() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.DEFAULT_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT);
String[] line1 = {"a", "b\r\nc"};
printer.println(line1);
assertEquals("a,\"b\r\nc\"" + lineSeparator, sw.toString());
@@ -80,7 +80,7 @@ public class CSVPrinterTest extends Test
public void testPrinter7() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.DEFAULT_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT);
String[] line1 = {"a", "b\\c"};
printer.println(line1);
assertEquals("a,b\\c" + lineSeparator, sw.toString());
@@ -88,7 +88,7 @@ public class CSVPrinterTest extends Test
public void testExcelPrinter1() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.EXCEL_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.EXCEL);
String[] line1 = {"a", "b"};
printer.println(line1);
assertEquals("a,b" + lineSeparator, sw.toString());
@@ -96,7 +96,7 @@ public class CSVPrinterTest extends Test
public void testExcelPrinter2() throws IOException {
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, CSVStrategy.EXCEL_STRATEGY);
+ CSVPrinter printer = new CSVPrinter(sw, CSVFormat.EXCEL);
String[] line1 = {"a,b", "b"};
printer.println(line1);
assertEquals("\"a,b\",b" + lineSeparator, sw.toString());
@@ -105,18 +105,18 @@ public class CSVPrinterTest extends Test
public void testRandom() throws Exception {
int iter = 10000;
- strategy = CSVStrategy.DEFAULT_STRATEGY;
+ format = CSVFormat.DEFAULT;
doRandom(iter);
- strategy = CSVStrategy.EXCEL_STRATEGY;
+ format = CSVFormat.EXCEL;
doRandom(iter);
- // Strategy for MySQL
- strategy = new CSVStrategy('\t', CSVStrategy.ENCAPSULATOR_DISABLED, CSVStrategy.COMMENTS_DISABLED, '\\', false, false, false, false);
+ // Format for MySQL
+ format = new CSVFormat('\t', CSVFormat.ENCAPSULATOR_DISABLED, CSVFormat.COMMENTS_DISABLED, '\\', false, false, false, false);
doRandom(iter);
}
Random r = new Random();
- CSVStrategy strategy;
+ CSVFormat format;
public void doRandom(int iter) throws Exception {
for (int i = 0; i < iter; i++) {
@@ -138,7 +138,7 @@ public class CSVPrinterTest extends Test
}
StringWriter sw = new StringWriter();
- CSVPrinter printer = new CSVPrinter(sw, strategy);
+ CSVPrinter printer = new CSVPrinter(sw, format);
for (int i = 0; i < nLines; i++) {
// for (int j=0; j<lines[i].length; j++) System.out.println("### VALUE=:" + printable(lines[i][j]));
@@ -151,7 +151,7 @@ public class CSVPrinterTest extends Test
StringReader reader = new StringReader(result);
- CSVParser parser = new CSVParser(reader, strategy);
+ CSVParser parser = new CSVParser(reader, format);
String[][] parseResult = parser.getAllValues();
if (!equals(lines, parseResult)) {
Modified: commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVUtilsTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVUtilsTest.java?rev=1199842&r1=1199841&r2=1199842&view=diff
==============================================================================
--- commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVUtilsTest.java (original)
+++ commons/sandbox/csv/trunk/src/test/java/org/apache/commons/csv/CSVUtilsTest.java Wed Nov 9 16:54:09 2011
@@ -81,7 +81,7 @@ public class CSVUtilsTest extends TestCa
public void testParse6() throws IOException {
String[][] data = CSVUtils.parse("");
- // default strategy is CSV, which ignores empty lines
+ // default format is CSV, which ignores empty lines
assertEquals(0, data.length);
}