You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by de...@apache.org on 2007/01/06 16:40:41 UTC
svn commit: r493488 [1/2] - in /jakarta/commons/sandbox/csv/trunk: ./
src/java/org/apache/commons/csv/ src/java/org/apache/commons/csv/writer/
src/test/ src/test/org/apache/commons/csv/
src/test/org/apache/commons/csv/writer/
Author: dennisl
Date: Sat Jan 6 07:40:40 2007
New Revision: 493488
URL: http://svn.apache.org/viewvc?view=rev&rev=493488
Log:
Set EOL-style to native.
Modified:
jakarta/commons/sandbox/csv/trunk/checkstyle.xml (props changed)
jakarta/commons/sandbox/csv/trunk/pom.xml (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CSVUtils.java (props changed)
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CharBuffer.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfig.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfigGuesser.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVField.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVWriter.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/AllTests.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/AllTests.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CSVUtilsTest.java (props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CharBufferTest.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/AllTests.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/CSVConfigGuesserTest.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/CSVConfigTest.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/CSVFieldTest.java (contents, props changed)
jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/CSVWriterTest.java (contents, props changed)
Propchange: jakarta/commons/sandbox/csv/trunk/checkstyle.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/pom.xml
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/pom.xml?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/pom.xml (original)
+++ jakarta/commons/sandbox/csv/trunk/pom.xml Sat Jan 6 07:40:40 2007
@@ -1,71 +1,71 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-sandbox</artifactId>
- <version>1-SNAPSHOT</version>
- </parent>
-
- <artifactId>commons-csv</artifactId>
- <version>1.0-SNAPSHOT</version>
- <name>Commons CSV</name>
- <url>http://jakarta.apache.org/commons/sandbox/csv/</url>
-
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <developers>
- <developer>
- <id>bayard</id>
- <name>Henri Yandell</name>
- <email>bayard AT apache DOT org</email>
- <organization>Apache</organization>
- <timezone>-5</timezone>
- </developer>
- </developers>
- <contributors>
- </contributors>
-
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/sandbox/csv/trunk</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/sandbox/csv/trunk</developerConnection>
- <url>http://svn.apache.org/repos/asf/jakarta/commons/sandbox/csv/trunk</url>
- </scm>
-
- <distributionManagement>
- <site>
- <id>website</id>
- <name>Apache Website</name>
- <url>scp://people.apache.org/www/jakarta.apache.org/commons/sandbox/csv/</url>
- </site>
- </distributionManagement>
-
- <build>
- <sourceDirectory>src/java</sourceDirectory>
- <testSourceDirectory>src/test</testSourceDirectory>
- </build>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-changes-plugin</artifactId>
- <reportSets>
- <reportSet>
- <reports>
- <report>changes-report</report>
- </reports>
- </reportSet>
- </reportSets>
- </plugin>
- </plugins>
- </reporting>
-
-</project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-sandbox</artifactId>
+ <version>1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>commons-csv</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <name>Commons CSV</name>
+ <url>http://jakarta.apache.org/commons/sandbox/csv/</url>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <developers>
+ <developer>
+ <id>bayard</id>
+ <name>Henri Yandell</name>
+ <email>bayard AT apache DOT org</email>
+ <organization>Apache</organization>
+ <timezone>-5</timezone>
+ </developer>
+ </developers>
+ <contributors>
+ </contributors>
+
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/sandbox/csv/trunk</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/sandbox/csv/trunk</developerConnection>
+ <url>http://svn.apache.org/repos/asf/jakarta/commons/sandbox/csv/trunk</url>
+ </scm>
+
+ <distributionManagement>
+ <site>
+ <id>website</id>
+ <name>Apache Website</name>
+ <url>scp://people.apache.org/www/jakarta.apache.org/commons/sandbox/csv/</url>
+ </site>
+ </distributionManagement>
+
+ <build>
+ <sourceDirectory>src/java</sourceDirectory>
+ <testSourceDirectory>src/test</testSourceDirectory>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-changes-plugin</artifactId>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>changes-report</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+
+</project>
Propchange: jakarta/commons/sandbox/csv/trunk/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CSVUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CharBuffer.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CharBuffer.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CharBuffer.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CharBuffer.java Sat Jan 6 07:40:40 2007
@@ -1,191 +1,191 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.csv;
-
-/**
- * A simple StringBuffer replacement that aims to
- * reduce copying as much as possible. The buffer
- * grows as necessary.
- * This class is not thread safe.
- *
- * @author Ortwin Glück
- */
-public class CharBuffer {
- private char[] c;
- /**
- * Actually used number of characters in the array.
- * It is also the index at which
- * a new character will be inserted into <code>c</code>.
- */
- private int length;
-
- /**
- * Creates a new CharBuffer with an initial capacity of 32 characters.
- */
- public CharBuffer() {
- this(32);
- }
-
- /**
- * Creates a new CharBuffer with an initial capacity
- * of <code>length</code> characters.
- */
- public CharBuffer(final int length) {
- if (length == 0) throw new IllegalArgumentException("Can't create an empty CharBuffer");
- this.c = new char[length];
- }
-
- /**
- * Empties the buffer. The capacity still remains the same, so no memory is freed.
- */
- public void clear() {
- length = 0;
- }
-
- /**
- * Returns the number of characters in the buffer.
- * @return the number of characters
- */
- public int length() {
- return length;
- }
-
- /**
- * Returns the current capacity of the buffer.
- * @return the maximum number of characters that can be stored in this buffer without
- * resizing it.
- */
- public int capacity() {
- return c.length;
- }
-
- /**
- * Appends the contents of <code>cb</code> to the end of this CharBuffer.
- * @param cb the CharBuffer to append or null
- */
- public void append(final CharBuffer cb) {
- if (cb == null) return;
- provideCapacity(length + cb.length);
- System.arraycopy(cb.c, 0, c, length, cb.length);
- length += cb.length;
- }
-
- /**
- * Appends <code>s</code> to the end of this CharBuffer.
- * This method involves copying the new data once!
- * @param s the String to append or null
- */
- public void append(final String s) {
- if (s == null) return;
- append(s.toCharArray());
- }
-
- /**
- * Appends <code>sb</code> to the end of this CharBuffer.
- * This method involves copying the new data once!
- * @param sb the StringBuffer to append or null
- */
- public void append(final StringBuffer sb) {
- if (sb == null) return;
- provideCapacity(length + sb.length());
- sb.getChars(0, sb.length(), c, length);
- length += sb.length();
- }
-
- /**
- * Appends <code>data</code> to the end of this CharBuffer.
- * This method involves copying the new data once!
- * @param data the char[] to append or null
- */
- public void append(final char[] data) {
- if (data == null) return;
- provideCapacity(length + data.length);
- System.arraycopy(data, 0, c, length, data.length);
- length += data.length;
- }
-
- /**
- * Appends a single character to the end of this CharBuffer.
- * This method involves copying the new data once!
- * @param data the char to append
- */
- public void append(final char data) {
- provideCapacity(length + 1);
- c[length] = data;
- length++;
- }
-
- /**
- * Shrinks the capacity of the buffer to the current length if necessary.
- * This method involves copying the data once!
- */
- public void shrink() {
- if (c.length == length) return;
- char[] newc = new char[length];
- System.arraycopy(c, 0, newc, 0, length);
- c = newc;
- }
-
- /**
- * Returns the contents of the buffer as a char[]. The returned array may
- * be the internal array of the buffer, so the caller must take care when
- * modifying it.
- * This method allows to avoid copying if the caller knows the exact capacity
- * before.
- * @return
- */
- public char[] getCharacters() {
- if (c.length == length) return c;
- char[] chars = new char[length];
- System.arraycopy(c, 0, chars, 0, length);
- return chars;
- }
-
- /**
- * Converts the contents of the buffer into a StringBuffer.
- * This method involves copying the new data once!
- * @return
- */
- public StringBuffer toStringBuffer() {
- StringBuffer sb = new StringBuffer(length);
- sb.append(c, 0, length);
- return sb;
- }
-
- /**
- * Converts the contents of the buffer into a StringBuffer.
- * This method involves copying the new data once!
- * @return
- */
- public String toString() {
- return new String(c, 0, length);
- }
-
- /**
- * Copies the data into a new array of at least <code>capacity</code> size.
- * @param capacity
- */
- public void provideCapacity(final int capacity) {
- if (c.length >= capacity) return;
- int newcapacity = capacity;
- char[] newc = new char[newcapacity];
- System.arraycopy(c, 0, newc, 0, length);
- c = newc;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.csv;
+
+/**
+ * A simple StringBuffer replacement that aims to
+ * reduce copying as much as possible. The buffer
+ * grows as necessary.
+ * This class is not thread safe.
+ *
+ * @author Ortwin Glück
+ */
+public class CharBuffer {
+ private char[] c;
+ /**
+ * Actually used number of characters in the array.
+ * It is also the index at which
+ * a new character will be inserted into <code>c</code>.
+ */
+ private int length;
+
+ /**
+ * Creates a new CharBuffer with an initial capacity of 32 characters.
+ */
+ public CharBuffer() {
+ this(32);
+ }
+
+ /**
+ * Creates a new CharBuffer with an initial capacity
+ * of <code>length</code> characters.
+ */
+ public CharBuffer(final int length) {
+ if (length == 0) throw new IllegalArgumentException("Can't create an empty CharBuffer");
+ this.c = new char[length];
+ }
+
+ /**
+ * Empties the buffer. The capacity still remains the same, so no memory is freed.
+ */
+ public void clear() {
+ length = 0;
+ }
+
+ /**
+ * Returns the number of characters in the buffer.
+ * @return the number of characters
+ */
+ public int length() {
+ return length;
+ }
+
+ /**
+ * Returns the current capacity of the buffer.
+ * @return the maximum number of characters that can be stored in this buffer without
+ * resizing it.
+ */
+ public int capacity() {
+ return c.length;
+ }
+
+ /**
+ * Appends the contents of <code>cb</code> to the end of this CharBuffer.
+ * @param cb the CharBuffer to append or null
+ */
+ public void append(final CharBuffer cb) {
+ if (cb == null) return;
+ provideCapacity(length + cb.length);
+ System.arraycopy(cb.c, 0, c, length, cb.length);
+ length += cb.length;
+ }
+
+ /**
+ * Appends <code>s</code> to the end of this CharBuffer.
+ * This method involves copying the new data once!
+ * @param s the String to append or null
+ */
+ public void append(final String s) {
+ if (s == null) return;
+ append(s.toCharArray());
+ }
+
+ /**
+ * Appends <code>sb</code> to the end of this CharBuffer.
+ * This method involves copying the new data once!
+ * @param sb the StringBuffer to append or null
+ */
+ public void append(final StringBuffer sb) {
+ if (sb == null) return;
+ provideCapacity(length + sb.length());
+ sb.getChars(0, sb.length(), c, length);
+ length += sb.length();
+ }
+
+ /**
+ * Appends <code>data</code> to the end of this CharBuffer.
+ * This method involves copying the new data once!
+ * @param data the char[] to append or null
+ */
+ public void append(final char[] data) {
+ if (data == null) return;
+ provideCapacity(length + data.length);
+ System.arraycopy(data, 0, c, length, data.length);
+ length += data.length;
+ }
+
+ /**
+ * Appends a single character to the end of this CharBuffer.
+ * This method involves copying the new data once!
+ * @param data the char to append
+ */
+ public void append(final char data) {
+ provideCapacity(length + 1);
+ c[length] = data;
+ length++;
+ }
+
+ /**
+ * Shrinks the capacity of the buffer to the current length if necessary.
+ * This method involves copying the data once!
+ */
+ public void shrink() {
+ if (c.length == length) return;
+ char[] newc = new char[length];
+ System.arraycopy(c, 0, newc, 0, length);
+ c = newc;
+ }
+
+ /**
+ * Returns the contents of the buffer as a char[]. The returned array may
+ * be the internal array of the buffer, so the caller must take care when
+ * modifying it.
+ * This method allows to avoid copying if the caller knows the exact capacity
+ * before.
+ * @return
+ */
+ public char[] getCharacters() {
+ if (c.length == length) return c;
+ char[] chars = new char[length];
+ System.arraycopy(c, 0, chars, 0, length);
+ return chars;
+ }
+
+ /**
+ * Converts the contents of the buffer into a StringBuffer.
+ * This method involves copying the new data once!
+ * @return
+ */
+ public StringBuffer toStringBuffer() {
+ StringBuffer sb = new StringBuffer(length);
+ sb.append(c, 0, length);
+ return sb;
+ }
+
+ /**
+ * Converts the contents of the buffer into a StringBuffer.
+ * This method involves copying the new data once!
+ * @return
+ */
+ public String toString() {
+ return new String(c, 0, length);
+ }
+
+ /**
+ * Copies the data into a new array of at least <code>capacity</code> size.
+ * @param capacity
+ */
+ public void provideCapacity(final int capacity) {
+ if (c.length >= capacity) return;
+ int newcapacity = capacity;
+ char[] newc = new char[newcapacity];
+ System.arraycopy(c, 0, newc, 0, length);
+ c = newc;
+ }
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/CharBuffer.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfig.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfig.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfig.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfig.java Sat Jan 6 07:40:40 2007
@@ -1,287 +1,287 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.csv.writer;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * The CSVConfig is used to configure the CSV writer
- *
- * @author Martin van den Bemt
- * @version $Id: $
- */
-public class CSVConfig {
-
- /** specifies if it is a fixed width csv file **/
- private boolean fixedWidth;
- /** list of fields **/
- private List fields;
-
- /** Do no do any filling **/
- public static final int FILLNONE = 0;
- /** Fill content the the left. Mainly usable together with fixedWidth **/
- public static final int FILLLEFT = 1;
- /** Fill content to the right. Mainly usable together with fixedWidth **/
- public static final int FILLRIGHT = 2;
-
- /** The fill pattern */
- private int fill;
- /** The fill char. Defaults to a space */
- private char fillChar = ' ';
- /** The seperator character. Defaults to , */
- private char delimiter = ',';
- /** Should we ignore the delimiter. Defaults to false */
- private boolean ignoreDelimiter = false;
- /** the value delimiter. Defaults to " */
- private char valueDelimiter = '"';
- /** Should we ignore the value delimiter. Defaults to true */
- private boolean ignoreValueDelimiter = true;
- /** Specifies if we want to use a field header */
- private boolean fieldHeader = false;
- /** Specifies if the end of the line needs to be trimmed */
- private boolean endTrimmed = false;
- /**
- *
- */
- public CSVConfig() {
- super();
- }
-
- /**
- * @return if the CSV file is fixedWidth
- */
- public boolean isFixedWidth() {
- return fixedWidth;
- }
-
- /**
- * Specify if the CSV file is fixed width.
- * Defaults to false
- * @param fixedWidth the fixedwidth
- */
- public void setFixedWidth(boolean fixedWidth) {
- this.fixedWidth = fixedWidth;
- }
-
- public void addField(CSVField field) {
- if (fields == null) {
- fields = new ArrayList();
- }
- fields.add(field);
- }
-
- /**
- * Set the fields that should be used by the writer.
- * This will overwrite currently added fields completely!
- * @param csvFields the csvfields array. If null it will do nothing
- */
- public void setFields(CSVField[] csvFields) {
- if (csvFields == null) {
- return;
- }
- fields = new ArrayList(Arrays.asList(csvFields));
- }
-
- /**
- * Set the fields that should be used by the writer
- * @param csvField a collection with fields. If null it will do nothing
- */
- public void setFields(Collection csvField) {
- if (csvField == null) {
- return;
- }
- fields = new ArrayList(csvField);
- }
-
- /**
- * @return an array with the known fields (even if no fields are specified)
- */
- public CSVField[] getFields() {
- CSVField[] csvFields = new CSVField[0];
- if (fields != null) {
- return (CSVField[]) fields.toArray(csvFields);
- }
- return csvFields;
- }
-
- public CSVField getField(String name) {
- if (fields == null || name == null) {
- return null;
- }
- for(int i = 0; i < fields.size(); i++) {
- CSVField field = (CSVField) fields.get(i);
- if (name.equals(field.getName())) {
- return field;
- }
- }
- return null;
- }
-
- /**
- * @return the fill pattern.
- */
- public int getFill() {
- return fill;
- }
-
- /**
- * Set the fill pattern. Defaults to {@link #FILLNONE}
- * <br/>Other options are : {@link #FILLLEFT} and {@link #FILLRIGHT}
- * @param fill the fill pattern.
- */
- public void setFill(int fill) {
- this.fill = fill;
- }
-
- /**
- *
- * @return the fillchar. Defaults to a space.
- */
- public char getFillChar() {
- return fillChar;
- }
-
- /**
- * Set the fill char
- * @param fillChar the fill char
- */
- public void setFillChar(char fillChar) {
- this.fillChar = fillChar;
- }
-
- /**
- * @return the delimeter used.
- */
- public char getDelimiter() {
- return delimiter;
- }
-
- /**
- * Set the delimiter to use
- * @param delimiter the delimiter character.
- */
- public void setDelimiter(char delimiter) {
- this.delimiter = delimiter;
- }
-
- /**
- * @return if the writer should ignore the delimiter character.
- */
- public boolean isDelimiterIgnored() {
- return ignoreDelimiter;
- }
-
- /**
- * Specify if the writer should ignore the delimiter.
- * @param ignoreDelimiter defaults to false.
- */
- public void setIgnoreDelimiter(boolean ignoreDelimiter) {
- this.ignoreDelimiter = ignoreDelimiter;
- }
-
- /**
- * @return the value delimeter used. Defaults to "
- */
- public char getValueDelimiter() {
- return valueDelimiter;
- }
-
- /**
- * Set the value delimiter to use
- * @param valueDelimiter the value delimiter character.
- */
- public void setValueDelimiter(char valueDelimiter) {
- this.valueDelimiter = valueDelimiter;
- }
-
- /**
- * @return if the writer should ignore the value delimiter character.
- * Defaults to true.
- */
- public boolean isValueDelimiterIgnored() {
- return ignoreValueDelimiter;
- }
-
- /**
- * Specify if the writer should ignore the value delimiter.
- * @param ignoreValueDelimiter defaults to false.
- */
- public void setIgnoreValueDelimiter(boolean ignoreValueDelimiter) {
- this.ignoreValueDelimiter = ignoreValueDelimiter;
- }
-
- /**
- * @return if a field header is used. Defaults to false
- */
- public boolean isFieldHeader() {
- return fieldHeader;
- }
- /**
- * Specify if you want to use a field header.
- * @param fieldHeader true or false.
- */
- public void setFieldHeader(boolean fieldHeader) {
- this.fieldHeader = fieldHeader;
- }
-
- /**
- * TODO..
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (obj == null && !(obj instanceof CSVConfig)) {
- return false;
- }
- return super.equals(obj);
-// CSVConfig config = (CSVConfig) obj;
-// getFill() == config.getFill()
-// getFields().equals(config.getFields())
- }
-
- /**
- * Creates a config based on a stream. It tries to guess<br/>
- * NOTE : The stream will be closed.
- * @param inputStream the inputstream.
- * @return the guessed config.
- */
- public static CSVConfig guessConfig(InputStream inputStream) {
- return null;
- }
-
- /**
- * @return if the end of the line should be trimmed. Default is false.
- */
- public boolean isEndTrimmed() {
- return endTrimmed;
- }
-
- /**
- * Specify if the end of the line needs to be trimmed. Defaults to false.
- * @param endTrimmed
- */
- public void setEndTrimmed(boolean endTrimmed) {
- this.endTrimmed = endTrimmed;
- }
-
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.csv.writer;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * The CSVConfig is used to configure the CSV writer
+ *
+ * @author Martin van den Bemt
+ * @version $Id: $
+ */
+public class CSVConfig {
+
+ /** specifies if it is a fixed width csv file **/
+ private boolean fixedWidth;
+ /** list of fields **/
+ private List fields;
+
+ /** Do no do any filling **/
+ public static final int FILLNONE = 0;
+ /** Fill content the the left. Mainly usable together with fixedWidth **/
+ public static final int FILLLEFT = 1;
+ /** Fill content to the right. Mainly usable together with fixedWidth **/
+ public static final int FILLRIGHT = 2;
+
+ /** The fill pattern */
+ private int fill;
+ /** The fill char. Defaults to a space */
+ private char fillChar = ' ';
+ /** The seperator character. Defaults to , */
+ private char delimiter = ',';
+ /** Should we ignore the delimiter. Defaults to false */
+ private boolean ignoreDelimiter = false;
+ /** the value delimiter. Defaults to " */
+ private char valueDelimiter = '"';
+ /** Should we ignore the value delimiter. Defaults to true */
+ private boolean ignoreValueDelimiter = true;
+ /** Specifies if we want to use a field header */
+ private boolean fieldHeader = false;
+ /** Specifies if the end of the line needs to be trimmed */
+ private boolean endTrimmed = false;
+ /**
+ *
+ */
+ public CSVConfig() {
+ super();
+ }
+
+ /**
+ * @return if the CSV file is fixedWidth
+ */
+ public boolean isFixedWidth() {
+ return fixedWidth;
+ }
+
+ /**
+ * Specify if the CSV file is fixed width.
+ * Defaults to false
+ * @param fixedWidth the fixedwidth
+ */
+ public void setFixedWidth(boolean fixedWidth) {
+ this.fixedWidth = fixedWidth;
+ }
+
+ public void addField(CSVField field) {
+ if (fields == null) {
+ fields = new ArrayList();
+ }
+ fields.add(field);
+ }
+
+ /**
+ * Set the fields that should be used by the writer.
+ * This will overwrite currently added fields completely!
+ * @param csvFields the csvfields array. If null it will do nothing
+ */
+ public void setFields(CSVField[] csvFields) {
+ if (csvFields == null) {
+ return;
+ }
+ fields = new ArrayList(Arrays.asList(csvFields));
+ }
+
+ /**
+ * Set the fields that should be used by the writer
+ * @param csvField a collection with fields. If null it will do nothing
+ */
+ public void setFields(Collection csvField) {
+ if (csvField == null) {
+ return;
+ }
+ fields = new ArrayList(csvField);
+ }
+
+ /**
+ * @return an array with the known fields (even if no fields are specified)
+ */
+ public CSVField[] getFields() {
+ CSVField[] csvFields = new CSVField[0];
+ if (fields != null) {
+ return (CSVField[]) fields.toArray(csvFields);
+ }
+ return csvFields;
+ }
+
+ public CSVField getField(String name) {
+ if (fields == null || name == null) {
+ return null;
+ }
+ for(int i = 0; i < fields.size(); i++) {
+ CSVField field = (CSVField) fields.get(i);
+ if (name.equals(field.getName())) {
+ return field;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @return the fill pattern.
+ */
+ public int getFill() {
+ return fill;
+ }
+
+ /**
+ * Set the fill pattern. Defaults to {@link #FILLNONE}
+ * <br/>Other options are : {@link #FILLLEFT} and {@link #FILLRIGHT}
+ * @param fill the fill pattern.
+ */
+ public void setFill(int fill) {
+ this.fill = fill;
+ }
+
+ /**
+ *
+ * @return the fillchar. Defaults to a space.
+ */
+ public char getFillChar() {
+ return fillChar;
+ }
+
+ /**
+ * Set the fill char
+ * @param fillChar the fill char
+ */
+ public void setFillChar(char fillChar) {
+ this.fillChar = fillChar;
+ }
+
+ /**
+ * @return the delimeter used.
+ */
+ public char getDelimiter() {
+ return delimiter;
+ }
+
+ /**
+ * Set the delimiter to use
+ * @param delimiter the delimiter character.
+ */
+ public void setDelimiter(char delimiter) {
+ this.delimiter = delimiter;
+ }
+
+ /**
+ * @return if the writer should ignore the delimiter character.
+ */
+ public boolean isDelimiterIgnored() {
+ return ignoreDelimiter;
+ }
+
+ /**
+ * Specify if the writer should ignore the delimiter.
+ * @param ignoreDelimiter defaults to false.
+ */
+ public void setIgnoreDelimiter(boolean ignoreDelimiter) {
+ this.ignoreDelimiter = ignoreDelimiter;
+ }
+
+ /**
+ * @return the value delimeter used. Defaults to "
+ */
+ public char getValueDelimiter() {
+ return valueDelimiter;
+ }
+
+ /**
+ * Set the value delimiter to use
+ * @param valueDelimiter the value delimiter character.
+ */
+ public void setValueDelimiter(char valueDelimiter) {
+ this.valueDelimiter = valueDelimiter;
+ }
+
+ /**
+ * @return if the writer should ignore the value delimiter character.
+ * Defaults to true.
+ */
+ public boolean isValueDelimiterIgnored() {
+ return ignoreValueDelimiter;
+ }
+
+ /**
+ * Specify if the writer should ignore the value delimiter.
+ * @param ignoreValueDelimiter defaults to false.
+ */
+ public void setIgnoreValueDelimiter(boolean ignoreValueDelimiter) {
+ this.ignoreValueDelimiter = ignoreValueDelimiter;
+ }
+
+ /**
+ * @return if a field header is used. Defaults to false
+ */
+ public boolean isFieldHeader() {
+ return fieldHeader;
+ }
+ /**
+ * Specify if you want to use a field header.
+ * @param fieldHeader true or false.
+ */
+ public void setFieldHeader(boolean fieldHeader) {
+ this.fieldHeader = fieldHeader;
+ }
+
+ /**
+ * TODO..
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ if (obj == null && !(obj instanceof CSVConfig)) {
+ return false;
+ }
+ return super.equals(obj);
+// CSVConfig config = (CSVConfig) obj;
+// getFill() == config.getFill()
+// getFields().equals(config.getFields())
+ }
+
+ /**
+ * Creates a config based on a stream. It tries to guess<br/>
+ * NOTE : The stream will be closed.
+ * @param inputStream the inputstream.
+ * @return the guessed config.
+ */
+ public static CSVConfig guessConfig(InputStream inputStream) {
+ return null;
+ }
+
+ /**
+ * @return if the end of the line should be trimmed. Default is false.
+ */
+ public boolean isEndTrimmed() {
+ return endTrimmed;
+ }
+
+ /**
+ * Specify if the end of the line needs to be trimmed. Defaults to false.
+ * @param endTrimmed
+ */
+ public void setEndTrimmed(boolean endTrimmed) {
+ this.endTrimmed = endTrimmed;
+ }
+
+
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfigGuesser.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfigGuesser.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfigGuesser.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfigGuesser.java Sat Jan 6 07:40:40 2007
@@ -1,189 +1,189 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.csv.writer;
-
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-/**
- * Tries to guess a config based on an InputStream.
- *
- * @author Martin van den Bemt
- * @version $Id: $
- */
-public class CSVConfigGuesser {
-
- /** The stream to read */
- private InputStream in;
- /**
- * if the file has a field header (need this info, to be able to guess better)
- * Defaults to false
- */
- private boolean hasFieldHeader = false;
- /** The found config */
- protected CSVConfig config;
-
- /**
- *
- */
- public CSVConfigGuesser() {
- this.config = new CSVConfig();
- }
-
- /**
- * @param in the inputstream to guess from
- */
- public CSVConfigGuesser(InputStream in) {
- this();
- setInputStream(in);
- }
-
- public void setInputStream(InputStream in) {
- this.in = in;
- }
-
- /**
- * Allow override.
- * @return the inputstream that was set.
- */
- protected InputStream getInputStream() {
- return in;
- }
-
- /**
- * Guess the config based on the first 10 (or less when less available)
- * records of a CSV file.
- *
- * @return the guessed config.
- */
- public CSVConfig guess() {
- try {
- // tralalal
- BufferedReader bIn = new BufferedReader(new InputStreamReader((getInputStream())));
- String[] lines = new String[10];
- String line = null;
- int counter = 0;
- while ( (line = bIn.readLine()) != null || counter > 10) {
- lines[counter] = line;
- counter++;
- }
- if (counter < 10) {
- // remove nulls from the array, so we can skip the null checking.
- String[] newLines = new String[counter];
- System.arraycopy(lines, 0, newLines, 0, counter);
- lines = newLines;
- }
- analyseLines(lines);
- } catch(Exception e) {
- e.printStackTrace();
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch(Exception e) {
- // ignore exception.
- }
- }
- }
- CSVConfig conf = config;
- // cleanup the config.
- config = null;
- return conf;
- }
-
- protected void analyseLines(String[] lines) {
- guessFixedWidth(lines);
- guessFieldSeperator(lines);
- }
-
- /**
- * Guess if this file is fixedwidth.
- * Just basing the fact on all lines being of the same length
- * @param lines
- */
- protected void guessFixedWidth(String[] lines) {
- int lastLength = 0;
- // assume fixedlength.
- config.setFixedWidth(true);
- for (int i = 0; i < lines.length; i++) {
- if (i == 0) {
- lastLength = lines[i].length();
- } else {
- if (lastLength != lines[i].length()) {
- config.setFixedWidth(false);
- }
- }
- }
- }
-
-
- protected void guessFieldSeperator(String[] lines) {
- if (config.isFixedWidth()) {
- guessFixedWidthSeperator(lines);
- return;
- }
- for (int i = 0; i < lines.length; i++) {
- }
- }
-
- protected void guessFixedWidthSeperator(String[] lines) {
- // keep track of the fieldlength
- int previousMatch = -1;
- for (int i = 0; i < lines[0].length(); i++) {
- char last = ' ';
- boolean charMatches = true;
- for (int j = 0; j < lines.length; j++) {
- if (j == 0) {
- last = lines[j].charAt(i);
- }
- if (last != lines[j].charAt(i)) {
- charMatches = false;
- break;
- }
- }
- if (charMatches) {
- if (previousMatch == -1) {
- previousMatch = 0;
- }
- CSVField field = new CSVField();
- field.setName("field"+config.getFields().length+1);
- field.setSize((i-previousMatch));
- config.addField(field);
- }
- }
- }
- /**
- *
- * @return if the field uses a field header. Defaults to false.
- */
- public boolean hasFieldHeader() {
- return hasFieldHeader;
- }
-
- /**
- * Specify if the CSV file has a field header
- * @param hasFieldHeader true or false
- */
- public void setHasFieldHeader(boolean hasFieldHeader) {
- this.hasFieldHeader = hasFieldHeader;
- }
-
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.csv.writer;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+ * Tries to guess a config based on an InputStream.
+ *
+ * @author Martin van den Bemt
+ * @version $Id: $
+ */
+public class CSVConfigGuesser {
+
+ /** The stream to read */
+ private InputStream in;
+ /**
+ * if the file has a field header (need this info, to be able to guess better)
+ * Defaults to false
+ */
+ private boolean hasFieldHeader = false;
+ /** The found config */
+ protected CSVConfig config;
+
+ /**
+ *
+ */
+ public CSVConfigGuesser() {
+ this.config = new CSVConfig();
+ }
+
+ /**
+ * @param in the inputstream to guess from
+ */
+ public CSVConfigGuesser(InputStream in) {
+ this();
+ setInputStream(in);
+ }
+
+ public void setInputStream(InputStream in) {
+ this.in = in;
+ }
+
+ /**
+ * Allow override.
+ * @return the inputstream that was set.
+ */
+ protected InputStream getInputStream() {
+ return in;
+ }
+
+ /**
+ * Guess the config based on the first 10 (or less when less available)
+ * records of a CSV file.
+ *
+ * @return the guessed config.
+ */
+ public CSVConfig guess() {
+ try {
+ // tralalal
+ BufferedReader bIn = new BufferedReader(new InputStreamReader((getInputStream())));
+ String[] lines = new String[10];
+ String line = null;
+ int counter = 0;
+ while ( (line = bIn.readLine()) != null || counter > 10) {
+ lines[counter] = line;
+ counter++;
+ }
+ if (counter < 10) {
+ // remove nulls from the array, so we can skip the null checking.
+ String[] newLines = new String[counter];
+ System.arraycopy(lines, 0, newLines, 0, counter);
+ lines = newLines;
+ }
+ analyseLines(lines);
+ } catch(Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch(Exception e) {
+ // ignore exception.
+ }
+ }
+ }
+ CSVConfig conf = config;
+ // cleanup the config.
+ config = null;
+ return conf;
+ }
+
+ protected void analyseLines(String[] lines) {
+ guessFixedWidth(lines);
+ guessFieldSeperator(lines);
+ }
+
+ /**
+ * Guess if this file is fixedwidth.
+ * Just basing the fact on all lines being of the same length
+ * @param lines
+ */
+ protected void guessFixedWidth(String[] lines) {
+ int lastLength = 0;
+ // assume fixedlength.
+ config.setFixedWidth(true);
+ for (int i = 0; i < lines.length; i++) {
+ if (i == 0) {
+ lastLength = lines[i].length();
+ } else {
+ if (lastLength != lines[i].length()) {
+ config.setFixedWidth(false);
+ }
+ }
+ }
+ }
+
+
+ protected void guessFieldSeperator(String[] lines) {
+ if (config.isFixedWidth()) {
+ guessFixedWidthSeperator(lines);
+ return;
+ }
+ for (int i = 0; i < lines.length; i++) {
+ }
+ }
+
+ protected void guessFixedWidthSeperator(String[] lines) {
+ // keep track of the fieldlength
+ int previousMatch = -1;
+ for (int i = 0; i < lines[0].length(); i++) {
+ char last = ' ';
+ boolean charMatches = true;
+ for (int j = 0; j < lines.length; j++) {
+ if (j == 0) {
+ last = lines[j].charAt(i);
+ }
+ if (last != lines[j].charAt(i)) {
+ charMatches = false;
+ break;
+ }
+ }
+ if (charMatches) {
+ if (previousMatch == -1) {
+ previousMatch = 0;
+ }
+ CSVField field = new CSVField();
+ field.setName("field"+config.getFields().length+1);
+ field.setSize((i-previousMatch));
+ config.addField(field);
+ }
+ }
+ }
+ /**
+ *
+ * @return if the field uses a field header. Defaults to false.
+ */
+ public boolean hasFieldHeader() {
+ return hasFieldHeader;
+ }
+
+ /**
+ * Specify if the CSV file has a field header
+ * @param hasFieldHeader true or false
+ */
+ public void setHasFieldHeader(boolean hasFieldHeader) {
+ this.hasFieldHeader = hasFieldHeader;
+ }
+
+
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVConfigGuesser.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVField.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVField.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVField.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVField.java Sat Jan 6 07:40:40 2007
@@ -1,113 +1,113 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.csv.writer;
-
-
-/**
- *
- * @author Martin van den Bemt
- * @version $Id: $
- */
-public class CSVField {
-
- private String name;
- private int size;
- private int fill;
- private boolean overrideFill;
-
- /**
- *
- */
- public CSVField() {
- }
-
- /**
- * @param name the name of the field
- */
- public CSVField(String name) {
- setName(name);
- }
-
- /**
- * @param name the name of the field
- * @param size the size of the field
- */
- public CSVField(String name, int size) {
- setName(name);
- setSize(size);
- }
-
- /**
- * @return the name of the field
- */
- public String getName() {
- return name;
- }
-
- /**
- * Set the name of the field
- * @param name the name
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- *
- * @return the size of the field
- */
- public int getSize() {
- return size;
- }
-
- /**
- * Set the size of the field.
- * The size will be ignored when fixedwidth is set to false in the CSVConfig
- * @param size the size of the field.
- */
- public void setSize(int size) {
- this.size = size;
- }
-
- /**
- * @return the fill pattern.
- */
- public int getFill() {
- return fill;
- }
-
- /**
- * Sets overrideFill to true.
- * @param fill the file pattern
- */
- public void setFill(int fill) {
- overrideFill = true;
- this.fill = fill;
- }
-
- /**
- * Does this field override fill ?
- *
- * @return
- */
- public boolean overrideFill() {
- return overrideFill;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.csv.writer;
+
+
+/**
+ *
+ * @author Martin van den Bemt
+ * @version $Id: $
+ */
+public class CSVField {
+
+ private String name;
+ private int size;
+ private int fill;
+ private boolean overrideFill;
+
+ /**
+ *
+ */
+ public CSVField() {
+ }
+
+ /**
+ * @param name the name of the field
+ */
+ public CSVField(String name) {
+ setName(name);
+ }
+
+ /**
+ * @param name the name of the field
+ * @param size the size of the field
+ */
+ public CSVField(String name, int size) {
+ setName(name);
+ setSize(size);
+ }
+
+ /**
+ * @return the name of the field
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Set the name of the field
+ * @param name the name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ *
+ * @return the size of the field
+ */
+ public int getSize() {
+ return size;
+ }
+
+ /**
+ * Set the size of the field.
+ * The size will be ignored when fixedwidth is set to false in the CSVConfig
+ * @param size the size of the field.
+ */
+ public void setSize(int size) {
+ this.size = size;
+ }
+
+ /**
+ * @return the fill pattern.
+ */
+ public int getFill() {
+ return fill;
+ }
+
+ /**
+ * Sets overrideFill to true.
+ * @param fill the file pattern
+ */
+ public void setFill(int fill) {
+ overrideFill = true;
+ this.fill = fill;
+ }
+
+ /**
+ * Does this field override fill ?
+ *
+ * @return
+ */
+ public boolean overrideFill() {
+ return overrideFill;
+ }
+
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVField.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVWriter.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVWriter.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVWriter.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVWriter.java Sat Jan 6 07:40:40 2007
@@ -1,133 +1,133 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.csv.writer;
-
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Map;
-
-
-/**
- * CSVWriter
- *
- * @author Martin van den Bemt
- * @version $Id: $
- */
-public class CSVWriter {
-
- /** The CSV config **/
- private CSVConfig config;
- /** The writer **/
- private Writer writer;
- /**
- *
- */
- public CSVWriter() {
- }
-
- public CSVWriter(CSVConfig config) {
- setConfig(config);
- }
-
- public void writeRecord(Map map) {
- CSVField[] fields = config.getFields();
- try {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < fields.length; i++) {
- String value = (String) map.get(fields[i].getName());
- value = writeValue(fields[i], value);
- sb.append(value);
- if (!config.isDelimiterIgnored() && fields.length != (i+1)) {
- sb.append(config.getDelimiter());
- }
- }
- if (config.isEndTrimmed()) {
- for (int i = sb.length()-1; i >= 0; i--) {
- System.out.println("i : " + i);
- if (Character.isWhitespace(sb.charAt(i))) {
- sb.deleteCharAt(i);
- } else {
- break;
- }
- }
- }
- sb.append("\n");
- String line = sb.toString();
- writer.write(line);
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
-
- protected String writeValue(CSVField field, String value) throws Exception {
- if (config.isFixedWidth()) {
- if (value.length() < field.getSize()) {
- int fillPattern = config.getFill();
- if (field.overrideFill()) {
- fillPattern = field.getFill();
- }
- StringBuffer sb = new StringBuffer();
- int fillSize = (field.getSize() - value.length());
- char[] fill = new char[fillSize];
- Arrays.fill(fill, config.getFillChar());
- if (fillPattern == CSVConfig.FILLLEFT) {
- sb.append(fill);
- sb.append(value);
- value = sb.toString();
- } else {
- // defaults to fillpattern FILLRIGHT when fixedwidth is used
- sb.append(value);
- sb.append(fill);
- value = sb.toString();
- }
- } else if (value.length() > field.getSize()) {
- // value to big..
- value = value.substring(0, field.getSize());
- }
- if (!config.isValueDelimiterIgnored()) {
- // add the value delimiter..
- value = config.getValueDelimiter()+value+config.getValueDelimiter();
- }
- }
- return value;
- }
- /**
- * @return the CVSConfig or null if not present
- */
- public CSVConfig getConfig() {
- return config;
- }
-
- /**
- * Set the CSVConfig
- * @param config the CVSConfig
- */
- public void setConfig(CSVConfig config) {
- this.config = config;
- }
-
- /**
- * Set the writer to write the CSV file to.
- * @param writer the writer.
- */
- public void setWriter(Writer writer) {
- this.writer = writer;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.csv.writer;
+
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.Map;
+
+
+/**
+ * CSVWriter
+ *
+ * @author Martin van den Bemt
+ * @version $Id: $
+ */
+public class CSVWriter {
+
+ /** The CSV config **/
+ private CSVConfig config;
+ /** The writer **/
+ private Writer writer;
+ /**
+ *
+ */
+ public CSVWriter() {
+ }
+
+ public CSVWriter(CSVConfig config) {
+ setConfig(config);
+ }
+
+ public void writeRecord(Map map) {
+ CSVField[] fields = config.getFields();
+ try {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < fields.length; i++) {
+ String value = (String) map.get(fields[i].getName());
+ value = writeValue(fields[i], value);
+ sb.append(value);
+ if (!config.isDelimiterIgnored() && fields.length != (i+1)) {
+ sb.append(config.getDelimiter());
+ }
+ }
+ if (config.isEndTrimmed()) {
+ for (int i = sb.length()-1; i >= 0; i--) {
+ System.out.println("i : " + i);
+ if (Character.isWhitespace(sb.charAt(i))) {
+ sb.deleteCharAt(i);
+ } else {
+ break;
+ }
+ }
+ }
+ sb.append("\n");
+ String line = sb.toString();
+ writer.write(line);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ protected String writeValue(CSVField field, String value) throws Exception {
+ if (config.isFixedWidth()) {
+ if (value.length() < field.getSize()) {
+ int fillPattern = config.getFill();
+ if (field.overrideFill()) {
+ fillPattern = field.getFill();
+ }
+ StringBuffer sb = new StringBuffer();
+ int fillSize = (field.getSize() - value.length());
+ char[] fill = new char[fillSize];
+ Arrays.fill(fill, config.getFillChar());
+ if (fillPattern == CSVConfig.FILLLEFT) {
+ sb.append(fill);
+ sb.append(value);
+ value = sb.toString();
+ } else {
+ // defaults to fillpattern FILLRIGHT when fixedwidth is used
+ sb.append(value);
+ sb.append(fill);
+ value = sb.toString();
+ }
+ } else if (value.length() > field.getSize()) {
+ // value to big..
+ value = value.substring(0, field.getSize());
+ }
+ if (!config.isValueDelimiterIgnored()) {
+ // add the value delimiter..
+ value = config.getValueDelimiter()+value+config.getValueDelimiter();
+ }
+ }
+ return value;
+ }
+ /**
+ * @return the CVSConfig or null if not present
+ */
+ public CSVConfig getConfig() {
+ return config;
+ }
+
+ /**
+ * Set the CSVConfig
+ * @param config the CVSConfig
+ */
+ public void setConfig(CSVConfig config) {
+ this.config = config;
+ }
+
+ /**
+ * Set the writer to write the CSV file to.
+ * @param writer the writer.
+ */
+ public void setWriter(Writer writer) {
+ this.writer = writer;
+ }
+
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/java/org/apache/commons/csv/writer/CSVWriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/test/AllTests.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/test/AllTests.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/test/AllTests.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/test/AllTests.java Sat Jan 6 07:40:40 2007
@@ -1,33 +1,33 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Test for default package");
- //$JUnit-BEGIN$
- suite.addTest(org.apache.commons.csv.AllTests.suite());
- suite.addTest(org.apache.commons.csv.writer.AllTests.suite());
- //$JUnit-END$
- return suite;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite("Test for default package");
+ //$JUnit-BEGIN$
+ suite.addTest(org.apache.commons.csv.AllTests.suite());
+ suite.addTest(org.apache.commons.csv.writer.AllTests.suite());
+ //$JUnit-END$
+ return suite;
+ }
+
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/test/AllTests.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/AllTests.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/AllTests.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/AllTests.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/AllTests.java Sat Jan 6 07:40:40 2007
@@ -1,38 +1,38 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.csv;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Test for org.apache.commons.csv");
- //$JUnit-BEGIN$
- suite.addTest(ExtendedBufferedReaderTest.suite());
- suite.addTest(CSVPrinterTest.suite());
- suite.addTest(CSVParserTest.suite());
- suite.addTest(CSVStrategyTest.suite());
- suite.addTestSuite(CSVUtilsTest.class);
- //$JUnit-END$
- return suite;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.csv;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite("Test for org.apache.commons.csv");
+ //$JUnit-BEGIN$
+ suite.addTest(ExtendedBufferedReaderTest.suite());
+ suite.addTest(CSVPrinterTest.suite());
+ suite.addTest(CSVParserTest.suite());
+ suite.addTest(CSVStrategyTest.suite());
+ suite.addTestSuite(CSVUtilsTest.class);
+ //$JUnit-END$
+ return suite;
+ }
+
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/AllTests.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CSVUtilsTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CharBufferTest.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CharBufferTest.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CharBufferTest.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CharBufferTest.java Sat Jan 6 07:40:40 2007
@@ -1,196 +1,196 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.csv;
-
-import junit.framework.TestCase;
-
-/**
- *
- * @author Ortwin Glück
- */
-public class CharBufferTest extends TestCase {
- public void testCreate() {
- CharBuffer cb = new CharBuffer();
- assertEquals(0, cb.length());
- try {
- cb = new CharBuffer(0);
- fail("Should not be possible");
- } catch(IllegalArgumentException e) {
- // expected
- }
-
- cb = new CharBuffer(128);
- assertEquals(0, cb.length());
- }
-
- public void testAppendChar() {
- CharBuffer cb = new CharBuffer(1);
- String expected = "";
- for (char c = 'a'; c < 'z'; c++) {
- cb.append(c);
- expected += c;
- assertEquals(expected, cb.toString());
- assertEquals(expected.length(), cb.length());
- }
- }
-
- public void testAppendCharArray() {
- CharBuffer cb = new CharBuffer(1);
- char[] abcd = "abcd".toCharArray();
- String expected = "";
- for (int i=0; i<10; i++) {
- cb.append(abcd);
- expected += "abcd";
- assertEquals(expected, cb.toString());
- assertEquals(4*(i+1), cb.length());
- }
- }
-
- public void testAppendString() {
- CharBuffer cb = new CharBuffer(1);
- String abcd = "abcd";
- String expected = "";
- for (int i=0; i<10; i++) {
- cb.append(abcd);
- expected += abcd;
- assertEquals(expected, cb.toString());
- assertEquals(4*(i+1), cb.length());
- }
- }
-
- public void testAppendStringBuffer() {
- CharBuffer cb = new CharBuffer(1);
- StringBuffer abcd = new StringBuffer("abcd");
- String expected = "";
- for (int i=0; i<10; i++) {
- cb.append(abcd);
- expected += "abcd";
- assertEquals(expected, cb.toString());
- assertEquals(4*(i+1), cb.length());
- }
- }
-
- public void testAppendCharBuffer() {
- CharBuffer cb = new CharBuffer(1);
- CharBuffer abcd = new CharBuffer(17);
- abcd.append("abcd");
- String expected = "";
- for (int i=0; i<10; i++) {
- cb.append(abcd);
- expected += "abcd";
- assertEquals(expected, cb.toString());
- assertEquals(4*(i+1), cb.length());
- }
- }
-
- public void testShrink() {
- String data = "123456789012345678901234567890";
-
- CharBuffer cb = new CharBuffer(data.length() + 100);
- assertEquals(data.length() + 100, cb.capacity());
- cb.append(data);
- assertEquals(data.length() + 100, cb.capacity());
- assertEquals(data.length(), cb.length());
- cb.shrink();
- assertEquals(data.length(), cb.capacity());
- assertEquals(data.length(), cb.length());
- assertEquals(data, cb.toString());
- }
-
- //-- the following test cases have been adapted from the HttpComponents project
- //-- written by Oleg Kalnichevski
-
- public void testSimpleAppend() throws Exception {
- CharBuffer buffer = new CharBuffer(16);
- assertEquals(16, buffer.capacity());
- assertEquals(0, buffer.length());
- char[] b1 = buffer.getCharacters();
- assertNotNull(b1);
- assertEquals(0, b1.length);
- assertEquals(0, buffer.length());
-
- char[] tmp = new char[] { '1', '2', '3', '4'};
- buffer.append(tmp);
- assertEquals(16, buffer.capacity());
- assertEquals(4, buffer.length());
-
- char[] b2 = buffer.getCharacters();
- assertNotNull(b2);
- assertEquals(4, b2.length);
- for (int i = 0; i < tmp.length; i++) {
- assertEquals(tmp[i], b2[i]);
- }
- assertEquals("1234", buffer.toString());
-
- buffer.clear();
- assertEquals(16, buffer.capacity());
- assertEquals(0, buffer.length());
- }
-
- public void testAppendString2() throws Exception {
- CharBuffer buffer = new CharBuffer(8);
- buffer.append("stuff");
- buffer.append(" and more stuff");
- assertEquals("stuff and more stuff", buffer.toString());
- }
-
- public void testAppendNull() throws Exception {
- CharBuffer buffer = new CharBuffer(8);
-
- buffer.append((StringBuffer)null);
- assertEquals("", buffer.toString());
-
- buffer.append((String)null);
- assertEquals("", buffer.toString());
-
- buffer.append((CharBuffer)null);
- assertEquals("", buffer.toString());
-
- buffer.append((char[])null);
- assertEquals("", buffer.toString());
- }
-
- public void testAppendCharArrayBuffer() throws Exception {
- CharBuffer buffer1 = new CharBuffer(8);
- buffer1.append(" and more stuff");
- CharBuffer buffer2 = new CharBuffer(8);
- buffer2.append("stuff");
- buffer2.append(buffer1);
- assertEquals("stuff and more stuff", buffer2.toString());
- }
-
- public void testAppendSingleChar() throws Exception {
- CharBuffer buffer = new CharBuffer(4);
- buffer.append('1');
- buffer.append('2');
- buffer.append('3');
- buffer.append('4');
- buffer.append('5');
- buffer.append('6');
- assertEquals("123456", buffer.toString());
- }
-
- public void testProvideCapacity() throws Exception {
- CharBuffer buffer = new CharBuffer(4);
- buffer.provideCapacity(2);
- assertEquals(4, buffer.capacity());
- buffer.provideCapacity(8);
- assertTrue(buffer.capacity() >= 8);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.csv;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ * @author Ortwin Glück
+ */
+public class CharBufferTest extends TestCase {
+ public void testCreate() {
+ CharBuffer cb = new CharBuffer();
+ assertEquals(0, cb.length());
+ try {
+ cb = new CharBuffer(0);
+ fail("Should not be possible");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+
+ cb = new CharBuffer(128);
+ assertEquals(0, cb.length());
+ }
+
+ public void testAppendChar() {
+ CharBuffer cb = new CharBuffer(1);
+ String expected = "";
+ for (char c = 'a'; c < 'z'; c++) {
+ cb.append(c);
+ expected += c;
+ assertEquals(expected, cb.toString());
+ assertEquals(expected.length(), cb.length());
+ }
+ }
+
+ public void testAppendCharArray() {
+ CharBuffer cb = new CharBuffer(1);
+ char[] abcd = "abcd".toCharArray();
+ String expected = "";
+ for (int i=0; i<10; i++) {
+ cb.append(abcd);
+ expected += "abcd";
+ assertEquals(expected, cb.toString());
+ assertEquals(4*(i+1), cb.length());
+ }
+ }
+
+ public void testAppendString() {
+ CharBuffer cb = new CharBuffer(1);
+ String abcd = "abcd";
+ String expected = "";
+ for (int i=0; i<10; i++) {
+ cb.append(abcd);
+ expected += abcd;
+ assertEquals(expected, cb.toString());
+ assertEquals(4*(i+1), cb.length());
+ }
+ }
+
+ public void testAppendStringBuffer() {
+ CharBuffer cb = new CharBuffer(1);
+ StringBuffer abcd = new StringBuffer("abcd");
+ String expected = "";
+ for (int i=0; i<10; i++) {
+ cb.append(abcd);
+ expected += "abcd";
+ assertEquals(expected, cb.toString());
+ assertEquals(4*(i+1), cb.length());
+ }
+ }
+
+ public void testAppendCharBuffer() {
+ CharBuffer cb = new CharBuffer(1);
+ CharBuffer abcd = new CharBuffer(17);
+ abcd.append("abcd");
+ String expected = "";
+ for (int i=0; i<10; i++) {
+ cb.append(abcd);
+ expected += "abcd";
+ assertEquals(expected, cb.toString());
+ assertEquals(4*(i+1), cb.length());
+ }
+ }
+
+ public void testShrink() {
+ String data = "123456789012345678901234567890";
+
+ CharBuffer cb = new CharBuffer(data.length() + 100);
+ assertEquals(data.length() + 100, cb.capacity());
+ cb.append(data);
+ assertEquals(data.length() + 100, cb.capacity());
+ assertEquals(data.length(), cb.length());
+ cb.shrink();
+ assertEquals(data.length(), cb.capacity());
+ assertEquals(data.length(), cb.length());
+ assertEquals(data, cb.toString());
+ }
+
+ //-- the following test cases have been adapted from the HttpComponents project
+ //-- written by Oleg Kalnichevski
+
+ public void testSimpleAppend() throws Exception {
+ CharBuffer buffer = new CharBuffer(16);
+ assertEquals(16, buffer.capacity());
+ assertEquals(0, buffer.length());
+ char[] b1 = buffer.getCharacters();
+ assertNotNull(b1);
+ assertEquals(0, b1.length);
+ assertEquals(0, buffer.length());
+
+ char[] tmp = new char[] { '1', '2', '3', '4'};
+ buffer.append(tmp);
+ assertEquals(16, buffer.capacity());
+ assertEquals(4, buffer.length());
+
+ char[] b2 = buffer.getCharacters();
+ assertNotNull(b2);
+ assertEquals(4, b2.length);
+ for (int i = 0; i < tmp.length; i++) {
+ assertEquals(tmp[i], b2[i]);
+ }
+ assertEquals("1234", buffer.toString());
+
+ buffer.clear();
+ assertEquals(16, buffer.capacity());
+ assertEquals(0, buffer.length());
+ }
+
+ public void testAppendString2() throws Exception {
+ CharBuffer buffer = new CharBuffer(8);
+ buffer.append("stuff");
+ buffer.append(" and more stuff");
+ assertEquals("stuff and more stuff", buffer.toString());
+ }
+
+ public void testAppendNull() throws Exception {
+ CharBuffer buffer = new CharBuffer(8);
+
+ buffer.append((StringBuffer)null);
+ assertEquals("", buffer.toString());
+
+ buffer.append((String)null);
+ assertEquals("", buffer.toString());
+
+ buffer.append((CharBuffer)null);
+ assertEquals("", buffer.toString());
+
+ buffer.append((char[])null);
+ assertEquals("", buffer.toString());
+ }
+
+ public void testAppendCharArrayBuffer() throws Exception {
+ CharBuffer buffer1 = new CharBuffer(8);
+ buffer1.append(" and more stuff");
+ CharBuffer buffer2 = new CharBuffer(8);
+ buffer2.append("stuff");
+ buffer2.append(buffer1);
+ assertEquals("stuff and more stuff", buffer2.toString());
+ }
+
+ public void testAppendSingleChar() throws Exception {
+ CharBuffer buffer = new CharBuffer(4);
+ buffer.append('1');
+ buffer.append('2');
+ buffer.append('3');
+ buffer.append('4');
+ buffer.append('5');
+ buffer.append('6');
+ assertEquals("123456", buffer.toString());
+ }
+
+ public void testProvideCapacity() throws Exception {
+ CharBuffer buffer = new CharBuffer(4);
+ buffer.provideCapacity(2);
+ assertEquals(4, buffer.capacity());
+ buffer.provideCapacity(8);
+ assertTrue(buffer.capacity() >= 8);
+ }
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/CharBufferTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/AllTests.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/AllTests.java?view=diff&rev=493488&r1=493487&r2=493488
==============================================================================
--- jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/AllTests.java (original)
+++ jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/AllTests.java Sat Jan 6 07:40:40 2007
@@ -1,19 +1,19 @@
-package org.apache.commons.csv.writer;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite("Test for org.apache.commons.csv.writer");
- //$JUnit-BEGIN$
- suite.addTestSuite(CSVConfigGuesserTest.class);
- suite.addTestSuite(CSVConfigTest.class);
- suite.addTestSuite(CSVFieldTest.class);
- suite.addTestSuite(CSVWriterTest.class);
- //$JUnit-END$
- return suite;
- }
-
-}
+package org.apache.commons.csv.writer;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite("Test for org.apache.commons.csv.writer");
+ //$JUnit-BEGIN$
+ suite.addTestSuite(CSVConfigGuesserTest.class);
+ suite.addTestSuite(CSVConfigTest.class);
+ suite.addTestSuite(CSVFieldTest.class);
+ suite.addTestSuite(CSVWriterTest.class);
+ //$JUnit-END$
+ return suite;
+ }
+
+}
Propchange: jakarta/commons/sandbox/csv/trunk/src/test/org/apache/commons/csv/writer/AllTests.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org