Package org.voltdb.utils

Source Code of org.voltdb.utils.SQLCommandOutputFormatterCSV

/* This file is part of VoltDB.
* Copyright (C) 2008-2014 VoltDB Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with VoltDB.  If not, see <http://www.gnu.org/licenses/>.
*/

package org.voltdb.utils;

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

import org.voltdb.VoltTable;
import org.voltdb.VoltType;

import au.com.bytecode.opencsv_voltpatches.CSVWriter;

/**
* CSV output formatter for SQLCommand.
*/
class SQLCommandOutputFormatterCSV implements SQLCommandOutputFormatter
{
    class OutputStreamWriter extends Writer
    {
        OutputStream m_stream;

        OutputStreamWriter(OutputStream stream)
        {
            m_stream = stream;
        }

        @Override
        public void write(char[] cbuf, int off, int len) throws IOException
        {
            m_stream.write(new String(cbuf, off, len).getBytes());
        }

        @Override
        public void flush() throws IOException
        {
            m_stream.flush();
        }

        @Override
        public void close() throws IOException
        {
            m_stream.close();
        }
    }

    @Override
    public void printTable(PrintStream stream, VoltTable t, boolean includeColumnNames)
            throws IOException
    {
        final int columnCount = t.getColumnCount();
        List<VoltType> columnTypes = new ArrayList<VoltType>(columnCount);
        for (int i = 0; i < columnCount; i++) {
            columnTypes.add(t.getColumnType(i));
        }
        CSVWriter csvWriter = new CSVWriter(new OutputStreamWriter(stream));
        if (includeColumnNames) {
            String[] columnNames = new String[columnCount];
            for (int i = 0; i < columnCount; i++) {
                columnNames[i] = t.getColumnName(i);
            }
            csvWriter.writeNext(columnNames);
        }
        VoltTableUtil.toCSVWriter(csvWriter, t, columnTypes);
    }
}
TOP

Related Classes of org.voltdb.utils.SQLCommandOutputFormatterCSV

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.