// Path: src/main/java/br/com/tecsinapse/dataio/converter/BigDecimalTableCellConverter.java
// public class BigDecimalTableCellConverter implements Converter<BigDecimal, BigDecimal> {
// 
//     @Override
//     public BigDecimal apply(BigDecimal input) {
//         return input;
//     }
// 
//     @Override
//     public BigDecimal apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : new BigDecimal(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/IntegerFromBigDecimalTableCellConverter.java
// public class IntegerFromBigDecimalTableCellConverter implements FromNumberConverter<Integer> {
// 
//     @Override
//     public Integer apply(BigDecimal input) {
//         return input.intValue();
//     }
// 
//     @Override
//     public Integer apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : new BigDecimal(input).intValue();
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/IntegerTableCellConverter.java
// public class IntegerTableCellConverter implements FromNumberConverter<Integer> {
// 
//     @Override
//     public Integer apply(BigDecimal input) {
//         return input.intValue();
//     }
// 
//     @Override
//     public Integer apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : Integer.valueOf(input);
//     }
// 
// }
// 
// Path: src/test/java/br/com/tecsinapse/files/test/ImporterFileTest.java
// public static final class LocalDateConverter implements FromDateConverter<LocalDate> {
// 
//     private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern(DD_MM_YYYY);
// 
//     @Override
//     public LocalDate apply(Date input) {
//         return LocalDate.from(input.toInstant().atZone(ZoneId.systemDefault()));
//     }
// 
//     @Override
//     public LocalDate apply(String input) {
//         return LocalDate.from(FORMATTER.parse(input));
//     }
// 
// }


import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import br.com.tecsinapse.dataio.annotation.TableCellMapping;
import br.com.tecsinapse.dataio.converter.BigDecimalTableCellConverter;
import br.com.tecsinapse.dataio.converter.IntegerFromBigDecimalTableCellConverter;
import br.com.tecsinapse.dataio.converter.IntegerTableCellConverter;
import br.com.tecsinapse.files.test.ImporterFileTest.LocalDateConverter;
    @TableCellMapping(columnIndex = 0)
    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    @TableCellMapping(columnIndex = 1)
    public void setEstado(String estado) {
        this.estado = estado;
    }

    @TableCellMapping(columnIndex = 2, converter = LocalDateConverter.class)
    public void setData(LocalDate data) {
        this.data = data;
    }

    @TableCellMapping(columnIndex = 3)
    public void setVazia(String vazia) {
        this.vazia = vazia;
    }

    @TableCellMapping(columnIndex = 4, converter = IntegerTableCellConverter.class)
    public void setInteiro(Integer inteiro) {
        this.inteiro = inteiro;
    }

    @TableCellMapping(columnIndex = 5, converter = BigDecimalTableCellConverter.class)
    public void setDecimal(BigDecimal decimal) {
        this.decimal = decimal;
    }

// Path: src/main/java/br/com/tecsinapse/dataio/converter/BigDecimalTableCellConverter.java
// public class BigDecimalTableCellConverter implements Converter<BigDecimal, BigDecimal> {
// 
//     @Override
//     public BigDecimal apply(BigDecimal input) {
//         return input;
//     }
// 
//     @Override
//     public BigDecimal apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : new BigDecimal(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/IntegerFromBigDecimalTableCellConverter.java
// public class IntegerFromBigDecimalTableCellConverter implements FromNumberConverter<Integer> {
// 
//     @Override
//     public Integer apply(BigDecimal input) {
//         return input.intValue();
//     }
// 
//     @Override
//     public Integer apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : new BigDecimal(input).intValue();
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/IntegerTableCellConverter.java
// public class IntegerTableCellConverter implements FromNumberConverter<Integer> {
// 
//     @Override
//     public Integer apply(BigDecimal input) {
//         return input.intValue();
//     }
// 
//     @Override
//     public Integer apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : Integer.valueOf(input);
//     }
// 
// }
// 
// Path: src/test/java/br/com/tecsinapse/files/test/ImporterFileTest.java
// public static final class LocalDateConverter implements FromDateConverter<LocalDate> {
// 
//     private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern(DD_MM_YYYY);
// 
//     @Override
//     public LocalDate apply(Date input) {
//         return LocalDate.from(input.toInstant().atZone(ZoneId.systemDefault()));
//     }
// 
//     @Override
//     public LocalDate apply(String input) {
//         return LocalDate.from(FORMATTER.parse(input));
//     }
// 
// }


// Path: src/test/java/br/com/tecsinapse/files/test/FileBean.java
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import br.com.tecsinapse.dataio.annotation.TableCellMapping;
import br.com.tecsinapse.dataio.converter.BigDecimalTableCellConverter;
import br.com.tecsinapse.dataio.converter.IntegerFromBigDecimalTableCellConverter;
import br.com.tecsinapse.dataio.converter.IntegerTableCellConverter;
import br.com.tecsinapse.files.test.ImporterFileTest.LocalDateConverter;

    @TableCellMapping(columnIndex = 0)
    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    @TableCellMapping(columnIndex = 1)
    public void setEstado(String estado) {
        this.estado = estado;
    }

    @TableCellMapping(columnIndex = 2, converter = LocalDateConverter.class)
    public void setData(LocalDate data) {
        this.data = data;
    }

    @TableCellMapping(columnIndex = 3)
    public void setVazia(String vazia) {
        this.vazia = vazia;
    }

    @TableCellMapping(columnIndex = 4, converter = IntegerTableCellConverter.class)
    public void setInteiro(Integer inteiro) {
        this.inteiro = inteiro;
    }

    @TableCellMapping(columnIndex = 5, converter = BigDecimalTableCellConverter.class)
    public void setDecimal(BigDecimal decimal) {
        this.decimal = decimal;
    }

    @TableCellMapping(columnIndex = 4, converter = IntegerFromBigDecimalTableCellConverter.class)