All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mygreen.supercsv.builder.standard.BooleanProcessorBuilder Maven / Gradle / Ivy

Go to download

CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。

There is a newer version: 2.3
Show newest version
package com.github.mygreen.supercsv.builder.standard;

import java.util.Optional;

import com.github.mygreen.supercsv.annotation.format.CsvBooleanFormat;
import com.github.mygreen.supercsv.builder.AbstractProcessorBuilder;
import com.github.mygreen.supercsv.builder.Configuration;
import com.github.mygreen.supercsv.builder.FieldAccessor;
import com.github.mygreen.supercsv.cellprocessor.format.BooleanFormatter;
import com.github.mygreen.supercsv.cellprocessor.format.TextFormatter;


/**
 * boolean/Boolean型のビルダクラス。
 * 
 * @version 2.0
 * @author T.TSUCHIE
 *
 */
public class BooleanProcessorBuilder extends AbstractProcessorBuilder {
    
    @Override
    protected TextFormatter getDefaultFormatter(final FieldAccessor field, final Configuration config) {
        
        final Optional formatAnno = field.getAnnotation(CsvBooleanFormat.class);
        
        final BooleanFormatter formatter = formatAnno.map(anno -> new BooleanFormatter(anno.readForTrue(), anno.readForFalse(),
                anno.writeAsTrue(), anno.writeAsFalse(), anno.ignoreCase(), anno.failToFalse()))
                .orElseGet(() -> new BooleanFormatter());
        
        formatAnno.ifPresent(a -> formatter.setValidationMessage(a.message()));
        
        return formatter;
    }
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy