Example usage for com.fasterxml.jackson.dataformat.csv CsvSchema withColumnSeparator

List of usage examples for com.fasterxml.jackson.dataformat.csv CsvSchema withColumnSeparator

Introduction

In this page you can find the example usage for com.fasterxml.jackson.dataformat.csv CsvSchema withColumnSeparator.

Prototype

public CsvSchema withColumnSeparator(char sep) 

Source Link

Usage

From source file:org.jberet.support.io.JacksonCsvItemReaderWriterBase.java

protected CsvSchema buildCsvSchema(CsvSchema schema) throws Exception {
    if (schema == null) {
        columns = columns.trim();//  ww  w.ja va  2 s. com
        if (columns.indexOf(',') < 0 && columns.indexOf(' ') < 0) {
            //no comma and no space, assume it's java class name for schema
            schema = csvMapper.schemaFor(getClass().getClassLoader().loadClass(columns));
        } else {
            //manually build CsvSchema
            final String[] cols = columns.split(",");
            final CsvSchema.Builder builder = new CsvSchema.Builder();
            for (String e : cols) {
                e = e.trim();
                final int lastSpace = e.lastIndexOf(' ');
                if (lastSpace > 0) {
                    final String e1 = e.substring(0, lastSpace).trim();
                    final String e2 = e.substring(lastSpace + 1);
                    builder.addColumn(e1, CsvSchema.ColumnType.valueOf(e2));
                } else {
                    builder.addColumn(e);
                }
            }
            schema = builder.build();
        }
    }

    schema = useHeader ? schema.withHeader() : schema.withoutHeader();

    if (columnSeparator != null) {
        schema = schema.withColumnSeparator(columnSeparator.charAt(0));
    }
    if (quoteChar != null) {
        schema = schema.withQuoteChar(quoteChar.charAt(0));
    }
    if (nullValue != null) {
        schema = schema.withNullValue(nullValue);
    }

    //to allow comments like "# this is comments".
    //comments can be enabled or disabled with com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_YAML_COMMENTS
    //which corresponds to batch property jsonParserFeatures
    return schema.withComments();
}