Open Source Repository

Home /csv/supercsv-1.52 | Repository Home



org/supercsv/io/CsvListWriter.java
package org.supercsv.io;

import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;

import org.supercsv.cellprocessor.ift.CellProcessor;
import org.supercsv.prefs.CsvPreference;
import org.supercsv.util.Util;

/**
 * The writer class capable of writing arrays and lists to a CSV file. Notice that the cell processors can also be
 * utilized when writing (using the <code>org.bestcsv.util</code>). They can help ensure that only numbers are written
 * in numeric columns, that numbers are unique or the output does not contain certain characters or exceed specified
 * string lengths.
 
 @author Kasper B. Graversen
 */
public class CsvListWriter extends AbstractCsvWriter implements ICsvListWriter {

/**
 * Create a CSV writer. Note that the <tt>writer</tt> provided in the argument will be wrapped in a
 <tt>BufferedWriter</tt> before accessed.
 
 @param stream
 *            Stream to write to
 @param preference
 *            defines separation character, end of line character, etc.
 */
public CsvListWriter(final Writer stream, final CsvPreference preference) {
  super(stream, preference);
}

/**
 * {@inheritDoc}
 */
public void write(final List<? extends Object> content, final CellProcessor[] processorsthrows IOException {
  final List<? super Object> destination = new ArrayList<Object>();
  
  // convert source to List<String>
  final List<String> source = new ArrayList<String>();
  forint i = 0; i < content.size(); i++ ) {
    Object value = content.get(i);
    source.add(value == null null : value.toString());
  }
  
  Util.processStringList(destination, source, processors, super.getLineNumber());
  write(destination);
}

/**
 * {@inheritDoc}
 */
@Override
public void write(final List<?> contentthrows IOException {
  super.write(content);
}

/**
 * {@inheritDoc}
 */
@Override
public void write(final Object... contentthrows IOException {
  super.write(content);
}

/**
 * {@inheritDoc}
 */
@Override
public void write(final String... contentthrows IOException {
  super.write(content);
}
}