CsvFactoryBuilder.java
package tools.jackson.dataformat.csv;
import tools.jackson.core.ErrorReportConfiguration;
import tools.jackson.core.JsonGenerator;
import tools.jackson.core.StreamReadConstraints;
import tools.jackson.core.StreamWriteConstraints;
import tools.jackson.core.base.DecorableTSFactory.DecorableTSFBuilder;
/**
* {@link tools.jackson.core.TSFBuilder}
* implementation for constructing {@link CsvFactory}
* instances.
*
* @since 3.0
*/
public class CsvFactoryBuilder extends DecorableTSFBuilder<CsvFactory, CsvFactoryBuilder>
{
/*
/**********************************************************************
/* Configuration
/**********************************************************************
*/
protected CsvCharacterEscapes _characterEscapes;
/*
/**********************************************************************
/* Life cycle
/**********************************************************************
*/
protected CsvFactoryBuilder() {
super(StreamReadConstraints.defaults(), StreamWriteConstraints.defaults(),
ErrorReportConfiguration.defaults(),
CsvFactory.DEFAULT_CSV_PARSER_FEATURE_FLAGS,
CsvFactory.DEFAULT_CSV_GENERATOR_FEATURE_FLAGS);
}
public CsvFactoryBuilder(CsvFactory base) {
super(base);
}
@Override
public CsvFactory build() {
// 28-Dec-2017, tatu: No special settings beyond base class ones, so:
return new CsvFactory(this);
}
// // // Parser features
public CsvFactoryBuilder enable(CsvReadFeature f) {
_formatReadFeatures |= f.getMask();
return _this();
}
public CsvFactoryBuilder enable(CsvReadFeature first, CsvReadFeature... other) {
_formatReadFeatures |= first.getMask();
for (CsvReadFeature f : other) {
_formatReadFeatures |= f.getMask();
}
return _this();
}
public CsvFactoryBuilder disable(CsvReadFeature f) {
_formatReadFeatures &= ~f.getMask();
return _this();
}
public CsvFactoryBuilder disable(CsvReadFeature first, CsvReadFeature... other) {
_formatReadFeatures &= ~first.getMask();
for (CsvReadFeature f : other) {
_formatReadFeatures &= ~f.getMask();
}
return _this();
}
public CsvFactoryBuilder configure(CsvReadFeature f, boolean state) {
return state ? enable(f) : disable(f);
}
// // // Generator features
public CsvFactoryBuilder enable(CsvWriteFeature f) {
_formatWriteFeatures |= f.getMask();
return _this();
}
public CsvFactoryBuilder enable(CsvWriteFeature first, CsvWriteFeature... other) {
_formatWriteFeatures |= first.getMask();
for (CsvWriteFeature f : other) {
_formatWriteFeatures |= f.getMask();
}
return _this();
}
public CsvFactoryBuilder disable(CsvWriteFeature f) {
_formatWriteFeatures &= ~f.getMask();
return _this();
}
public CsvFactoryBuilder disable(CsvWriteFeature first, CsvWriteFeature... other) {
_formatWriteFeatures &= ~first.getMask();
for (CsvWriteFeature f : other) {
_formatWriteFeatures &= ~f.getMask();
}
return _this();
}
public CsvFactoryBuilder configure(CsvWriteFeature f, boolean state) {
return state ? enable(f) : disable(f);
}
// // // Other CSV-specific configuration
/**
* Method for defining custom escapes factory uses for {@link JsonGenerator}s
* it creates.
*/
public CsvFactoryBuilder characterEscapes(CsvCharacterEscapes esc) {
_characterEscapes = esc;
return this;
}
public CsvCharacterEscapes characterEscapes() {
if (_characterEscapes == null) {
}
return _characterEscapes;
}
}