view flys-artifacts/src/main/java/de/intevation/flys/exports/StepCSVWriter.java @ 3784:9f9d5ada96ca

Merged revisions 5498-5499 via svnmerge from file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk ........ r5498 | rrenkert | 2012-09-17 16:38:47 +0200 (Mo, 17 Sep 2012) | 3 lines Refactor MINFO bed quality resultsets and facets. ........ r5499 | rrenkert | 2012-09-17 16:47:05 +0200 (Mo, 17 Sep 2012) | 2 lines Fixed date range in minfo bed quality result. ........ flys-artifacts/tags/2.9.1@5530 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 19 Sep 2012 14:56:13 +0000
parents 475dd07c2cb1
children
line wrap: on
line source
package de.intevation.flys.exports;

import au.com.bytecode.opencsv.CSVWriter;

import java.util.ArrayList;
import java.util.Arrays;

/**
 * Class to overcome shortcoming of CSVWriter to accept String-Arrays only.
 * The StepCSVWriter buffers incoming values, such that rows in a csv can be
 * created more dynamically. Do not forget to call flush().
 */
public class StepCSVWriter {

    /** Writer to use when calling flush. */
    CSVWriter writer = null;
    /** Buffer of strings (values). */
    ArrayList<String> buffer;


    /** Trivial constructor. */
    public StepCSVWriter() {
        buffer = new ArrayList<String>();
    }


    /** Set writer. */
    public void setCSVWriter(CSVWriter writer) {
        this.writer = writer;
    }


    /** Add a value to next flush. */
    public void addNext(String value) {
        buffer.add(value);
    }


    /** Add many values to next flush. */
    public void addNexts(String ... values) {
        buffer.addAll(Arrays.asList(values));
    }


    /** Write the row with csvwriter. */
    public void flush() {
        writer.writeNext(buffer.toArray(new String[buffer.size()]));
        buffer.clear();
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org