Package org.shiftone.jrat.util.io.csv

Source Code of org.shiftone.jrat.util.io.csv.DelimitedWriter

package org.shiftone.jrat.util.io.csv;

import org.shiftone.jrat.util.io.InputOutputException;
import org.shiftone.jrat.util.io.csv.field.Field;
import org.shiftone.jrat.util.log.Logger;
import java.io.IOException;
import java.io.Writer;

/**
* @author Jeff Drost
* @version $Revision: 1.3 $
*/
public class DelimitedWriter {

  private static final Logger LOG = Logger.getLogger(DelimitedWriter.class);
  private final DelimitedFormat delimitedFormat;
  private final Writer writer;
  private String[] current;

  public DelimitedWriter(Writer writer, DelimitedFormat delimitedFormat) {

    this.writer = writer;
    this.delimitedFormat = delimitedFormat;
    this.delimitedFormat.lock();
    this.current = new String[delimitedFormat.getFieldCount()];
  }

  public void write() {

    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < current.length; i++) {
      if (i != 0) {
        sb.append(delimitedFormat.getDelimiter());
      }
      if (current[i] != null) {
        sb.append(current[i]);
      }
    }
    sb.append("\n");
    try {
      writer.write(sb.toString());
    } catch (IOException e) {
      throw new InputOutputException("failed to record", e);
    }
    current = new String[delimitedFormat.getFieldCount()];
  }

  public void setValue(int fieldIndex, Object value) {

    Field field = delimitedFormat.getField(fieldIndex);
    current[fieldIndex] = field.format(value);
  }

  public void setValue(String fieldTitle, Object value) {

    int fieldIndex = delimitedFormat.getFieldIndex(fieldTitle);
    setValue(fieldIndex, value);
  }

  public void setValue(int fieldIndex, long value) {

    setValue(fieldIndex, new Long(value));
  }

  public void setValue(String fieldTitle, long value) {

    setValue(fieldTitle, new Long(value));
  }

  public void setValue(int fieldIndex, double value) {

    setValue(fieldIndex, new Double(value));
  }

  public void setValue(String fieldTitle, double value) {

    setValue(fieldTitle, new Double(value));
  }

  public void setValue(int fieldIndex, boolean value) {

    setValue(fieldIndex, Boolean.valueOf(value));
  }

  public void setValue(String fieldTitle, boolean value) {

    setValue(fieldTitle, Boolean.valueOf(value));
  }
}
TOP

Related Classes of org.shiftone.jrat.util.io.csv.DelimitedWriter

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.