com.fasterxml.jackson.dataformat.csv
Class CsvSchema

java.lang.Object
  extended by com.fasterxml.jackson.dataformat.csv.CsvSchema
All Implemented Interfaces:
com.fasterxml.jackson.core.FormatSchema, Iterable<CsvSchema.Column>

public class CsvSchema
extends Object
implements com.fasterxml.jackson.core.FormatSchema, Iterable<CsvSchema.Column>

Simple FormatSchema sub-type that defines properties of a CSV document to read or write. Properties supported currently are:

Note that schemas without any columns are legal, but if no columns are added, behavior of parser/generator is usually different and content will be exposed as logical Arrays instead of Objects.

There are 4 ways to create CsvSchema instances:

Since:
1.9

Nested Class Summary
static class CsvSchema.Builder
          Class used for building CsvSchema instances.
static class CsvSchema.Column
           
static class CsvSchema.ColumnType
          Enumeration that defines optional type indicators that can be passed with schema.
 
Field Summary
protected  CsvSchema.Column[] _columns
          Column definitions, needed for optional header and/or mapping of field names to column positions.
protected  Map<String,CsvSchema.Column> _columnsByName
           
protected  char _columnSeparator
           
protected  int _escapeChar
           
protected  char[] _lineSeparator
           
protected  char _quoteChar
           
protected  boolean _skipFirstDataRow
           
protected  boolean _useHeader
           
static char DEFAULT_COLUMN_SEPARATOR
           
static int DEFAULT_ESCAPE_CHAR
          By default, no escape character is used -- this is denoted by int value that does not map to a valid character
static char[] DEFAULT_LINEFEED
           
static char DEFAULT_QUOTE_CHAR
           
static boolean DEFAULT_SKIP_FIRST_DATA_ROW
           
static boolean DEFAULT_USE_HEADER
          By default we do NOT expect the first line to be header.
protected static CsvSchema.Column[] NO_COLUMNS
           
 
Constructor Summary
  CsvSchema(CsvSchema.Column[] columns, boolean useHeader, boolean skipFirstDataRow, char columnSeparator, char quoteChar, int escapeChar, char[] lineSeparator)
           
protected CsvSchema(CsvSchema.Column[] columns, boolean useHeader, boolean skipFirstDataRow, char columnSeparator, char quoteChar, int escapeChar, char[] lineSeparator, Map<String,CsvSchema.Column> columnsByName)
          Copy constructor used for creating variants using withXxx() methods.
 
Method Summary
static CsvSchema.Builder builder()
           
 CsvSchema.Column column(int index)
           
 CsvSchema.Column column(String name)
           
static CsvSchema emptySchema()
          Accessor for creating a "default" CSV schema instance, with following settings: Does NOT use header line Uses double quotes ('"') for quoting of field values (if necessary) Uses comma (',') as the field separator Uses Unix linefeed ('\n') as row separator Does NOT use any escape characters Does NOT have any columns defined
 String getColumnDesc()
          Method for getting description of column definitions in developer-readable form
 char getColumnSeparator()
           
 int getEscapeChar()
           
 char[] getLineSeparator()
           
 char getQuoteChar()
           
 String getSchemaType()
           
 Iterator<CsvSchema.Column> iterator()
           
 CsvSchema.Builder rebuild()
          Helper method for constructing Builder that can be used to create modified schema.
 int size()
           
 boolean skipFirstDataRow()
           
 String toString()
           
 boolean useHeader()
           
 CsvSchema withColumnSeparator(char sep)
           
 CsvSchema withEscapeChar(char c)
           
 CsvSchema withHeader()
          Helper method for construcing and returning schema instance that is similar to this one, except that it will be using header line.
 CsvSchema withLineSeparator(String sep)
           
 CsvSchema withoutColumns()
           
 CsvSchema withoutEscapeChar()
           
 CsvSchema withoutHeader()
          Helper method for construcing and returning schema instance that is similar to this one, except that it will not be using header line.
 CsvSchema withQuoteChar(char c)
           
 CsvSchema withSkipFirstDataRow(boolean state)
           
 CsvSchema withUseHeader(boolean state)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_COLUMNS

protected static final CsvSchema.Column[] NO_COLUMNS

DEFAULT_COLUMN_SEPARATOR

public static final char DEFAULT_COLUMN_SEPARATOR
See Also:
Constant Field Values

DEFAULT_QUOTE_CHAR

public static final char DEFAULT_QUOTE_CHAR
See Also:
Constant Field Values

DEFAULT_ESCAPE_CHAR

public static final int DEFAULT_ESCAPE_CHAR
By default, no escape character is used -- this is denoted by int value that does not map to a valid character

See Also:
Constant Field Values

DEFAULT_LINEFEED

public static final char[] DEFAULT_LINEFEED

DEFAULT_USE_HEADER

public static final boolean DEFAULT_USE_HEADER
By default we do NOT expect the first line to be header.

See Also:
Constant Field Values

DEFAULT_SKIP_FIRST_DATA_ROW

public static final boolean DEFAULT_SKIP_FIRST_DATA_ROW
See Also:
Constant Field Values

_columns

protected final CsvSchema.Column[] _columns
Column definitions, needed for optional header and/or mapping of field names to column positions.


_columnsByName

protected final Map<String,CsvSchema.Column> _columnsByName

_useHeader

protected final boolean _useHeader

_skipFirstDataRow

protected final boolean _skipFirstDataRow

_columnSeparator

protected final char _columnSeparator

_quoteChar

protected final char _quoteChar

_escapeChar

protected final int _escapeChar

_lineSeparator

protected final char[] _lineSeparator
Constructor Detail

CsvSchema

public CsvSchema(CsvSchema.Column[] columns,
                 boolean useHeader,
                 boolean skipFirstDataRow,
                 char columnSeparator,
                 char quoteChar,
                 int escapeChar,
                 char[] lineSeparator)

CsvSchema

protected CsvSchema(CsvSchema.Column[] columns,
                    boolean useHeader,
                    boolean skipFirstDataRow,
                    char columnSeparator,
                    char quoteChar,
                    int escapeChar,
                    char[] lineSeparator,
                    Map<String,CsvSchema.Column> columnsByName)
Copy constructor used for creating variants using withXxx() methods.

Method Detail

builder

public static CsvSchema.Builder builder()

emptySchema

public static CsvSchema emptySchema()
Accessor for creating a "default" CSV schema instance, with following settings:


rebuild

public CsvSchema.Builder rebuild()
Helper method for constructing Builder that can be used to create modified schema.


withUseHeader

public CsvSchema withUseHeader(boolean state)

withHeader

public CsvSchema withHeader()
Helper method for construcing and returning schema instance that is similar to this one, except that it will be using header line.


withoutHeader

public CsvSchema withoutHeader()
Helper method for construcing and returning schema instance that is similar to this one, except that it will not be using header line.


withSkipFirstDataRow

public CsvSchema withSkipFirstDataRow(boolean state)

withColumnSeparator

public CsvSchema withColumnSeparator(char sep)

withQuoteChar

public CsvSchema withQuoteChar(char c)

withEscapeChar

public CsvSchema withEscapeChar(char c)

withoutEscapeChar

public CsvSchema withoutEscapeChar()

withLineSeparator

public CsvSchema withLineSeparator(String sep)

withoutColumns

public CsvSchema withoutColumns()

getSchemaType

public String getSchemaType()
Specified by:
getSchemaType in interface com.fasterxml.jackson.core.FormatSchema

useHeader

public boolean useHeader()

skipFirstDataRow

public boolean skipFirstDataRow()

getColumnSeparator

public char getColumnSeparator()

getQuoteChar

public char getQuoteChar()

getEscapeChar

public int getEscapeChar()

getLineSeparator

public char[] getLineSeparator()

iterator

public Iterator<CsvSchema.Column> iterator()
Specified by:
iterator in interface Iterable<CsvSchema.Column>

size

public int size()

column

public CsvSchema.Column column(int index)

column

public CsvSchema.Column column(String name)

getColumnDesc

public String getColumnDesc()
Method for getting description of column definitions in developer-readable form


toString

public String toString()
Overrides:
toString in class Object


Copyright © 2012 fasterxml.com. All Rights Reserved.