Package org.neo4j.batchimport.importer

Source Code of org.neo4j.batchimport.importer.CsvLineData

package org.neo4j.batchimport.importer;

import au.com.bytecode.opencsv.CSVReader;

import java.io.IOException;
import java.io.Reader;

import static org.neo4j.helpers.collection.MapUtil.map;

public class CsvLineData extends AbstractLineData {
    private final CSVReader csvReader;

    public CsvLineData(Reader reader, char delim, int offset) {
        super(offset);
        this.csvReader = new CSVReader(reader, delim,'"','\\',0,false,false);
        initHeaders(createHeaders(readRawRow()));
        createMapData(lineSize, offset);
    }

    @Override
    protected String[] readRawRow() {
        try {
            return csvReader.readNext();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    protected boolean readLine() {
        final String[] row = readRawRow();
        if (row==null || row.length==0) return false;
        for (int i = 0; i < row.length && i < lineSize; i++) {
            String value = row[i];
            if (value != null && !value.isEmpty()) {
                lineData[i] = headers[i].type == Type.STRING ? value : headers[i].type.convert(value);
            } else {
                lineData[i] = null;
            }
        }
        return true;
    }

}
TOP

Related Classes of org.neo4j.batchimport.importer.CsvLineData

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.