Package org.beangle.model.transfer.csv

Source Code of org.beangle.model.transfer.csv.CsvItemWriter

/* Copyright c 2005-2012.
* Licensed under GNU  LESSER General Public License, Version 3.
* http://www.gnu.org/licenses
*/
package org.beangle.model.transfer.csv;

import java.io.OutputStream;
import java.io.OutputStreamWriter;

import org.beangle.model.transfer.io.AbstractItemWriter;
import org.beangle.model.transfer.io.TransferFormats;
import org.beangle.util.csv.CsvFormat;
import org.beangle.util.csv.CsvWriter;

public class CsvItemWriter extends AbstractItemWriter {

  protected CsvWriter csvr;

  protected CsvFormat csvFormat;

  public CsvItemWriter() {
    super();
  }

  public CsvItemWriter(OutputStream outputStream) {
    setOutputStream(outputStream);
  }

  public void write(Object obj) {
    if (null == csvr) {
      if (null == csvFormat) {
        this.csvr = new CsvWriter(new OutputStreamWriter(outputStream));
      } else {
        this.csvr = new CsvWriter(new OutputStreamWriter(outputStream), csvFormat);
      }
    }
    if (null == obj) return;
    try {
      if (obj.getClass().isArray()) {
        Object[] values = (Object[]) obj;
        String[] strValues = new String[values.length];
        for (int i = 0; i < values.length; i++) {
          strValues[i] = (null == values[i]) ? "" : values[i].toString();
        }
        csvr.write(strValues);
      } else {
        csvr.write(new String[] { obj.toString() });
      }
    } catch (Exception e) {
      throw new RuntimeException(e.getMessage());
    }
  }

  public void writeTitle(String titleName, Object data) {
    write(data);
  }

  public void close() {
    try {
      csvr.close();
    } catch (Exception e) {
      throw new RuntimeException(e.getMessage());
    }
  }

  public String getFormat() {
    return TransferFormats.CSV;
  }

  public void setOutputStream(OutputStream outputStream) {
    this.outputStream = outputStream;
  }

  public CsvFormat getCsvFormat() {
    return csvFormat;
  }

  public void setCsvFormat(CsvFormat csvFormat) {
    this.csvFormat = csvFormat;
  }

}
TOP

Related Classes of org.beangle.model.transfer.csv.CsvItemWriter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.