// 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/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/main/java/br/com/tecsinapse/dataio/converter/LocalDateTableCellConverter.java
// public class LocalDateTableCellConverter implements FromDateConverter<LocalDate> {
// 
//     @Override
//     public LocalDate apply(Date input) {
//         return LocalDateTimeTableCellConverter.LOCAL_DATE_TIME_CONVERTER.apply(input).toLocalDate();
//     }
// 
//     @Override
//     public LocalDate apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : LocalDate.parse(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/LocalDateTimeTableCellConverter.java
// public class LocalDateTimeTableCellConverter implements FromDateConverter<LocalDateTime> {
// 
//     public static final LocalDateTimeTableCellConverter LOCAL_DATE_TIME_CONVERTER = new LocalDateTimeTableCellConverter();
// 
//     @Override
//     public LocalDateTime apply(Date input) {
//         return LocalDateTime.ofInstant(input.toInstant(), ZoneId.systemDefault());
//     }
// 
//     @Override
//     public LocalDateTime apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : LocalDateTime.parse(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/LocalTimeTableCellConverter.java
// public class LocalTimeTableCellConverter implements FromDateConverter<LocalTime> {
// 
//     @Override
//     public LocalTime apply(Date input) {
//         return LocalDateTimeTableCellConverter.LOCAL_DATE_TIME_CONVERTER.apply(input).toLocalTime();
//     }
// 
//     @Override
//     public LocalTime apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : LocalTime.parse(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/StringTableCellConverter.java
// public class StringTableCellConverter implements FromStringConverter<String> {
// 
//     @Override
//     public String apply(String input) {
//         if (Strings.isNullOrEmpty(input)) {
//             return "";
//         }
//         return input.trim();
//     }
// 
// }


import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import org.testng.Assert;
import br.com.tecsinapse.dataio.annotation.TableCellMapping;
import br.com.tecsinapse.dataio.converter.BigDecimalTableCellConverter;
import br.com.tecsinapse.dataio.converter.IntegerTableCellConverter;
import br.com.tecsinapse.dataio.converter.LocalDateTableCellConverter;
import br.com.tecsinapse.dataio.converter.LocalDateTimeTableCellConverter;
import br.com.tecsinapse.dataio.converter.LocalTimeTableCellConverter;
import br.com.tecsinapse.dataio.converter.StringTableCellConverter;

    public LocalDate getDate() {
        return date;
    }

    public LocalDateTime getDateTime() {
        return dateTime;
    }

    public BigDecimal getDecimal() {
        return decimal;
    }

    public Integer getInteger() {
        return integer;
    }

    public String getString() {
        return string;
    }

    public String getEmpty() {
        return empty;
    }

    public LocalTime getTime() {
        return time;
    }

    // Test for not accessible method
// 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/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/main/java/br/com/tecsinapse/dataio/converter/LocalDateTableCellConverter.java
// public class LocalDateTableCellConverter implements FromDateConverter<LocalDate> {
// 
//     @Override
//     public LocalDate apply(Date input) {
//         return LocalDateTimeTableCellConverter.LOCAL_DATE_TIME_CONVERTER.apply(input).toLocalDate();
//     }
// 
//     @Override
//     public LocalDate apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : LocalDate.parse(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/LocalDateTimeTableCellConverter.java
// public class LocalDateTimeTableCellConverter implements FromDateConverter<LocalDateTime> {
// 
//     public static final LocalDateTimeTableCellConverter LOCAL_DATE_TIME_CONVERTER = new LocalDateTimeTableCellConverter();
// 
//     @Override
//     public LocalDateTime apply(Date input) {
//         return LocalDateTime.ofInstant(input.toInstant(), ZoneId.systemDefault());
//     }
// 
//     @Override
//     public LocalDateTime apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : LocalDateTime.parse(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/LocalTimeTableCellConverter.java
// public class LocalTimeTableCellConverter implements FromDateConverter<LocalTime> {
// 
//     @Override
//     public LocalTime apply(Date input) {
//         return LocalDateTimeTableCellConverter.LOCAL_DATE_TIME_CONVERTER.apply(input).toLocalTime();
//     }
// 
//     @Override
//     public LocalTime apply(String input) {
//         return Strings.isNullOrEmpty(input) ? null : LocalTime.parse(input);
//     }
// 
// }
// 
// Path: src/main/java/br/com/tecsinapse/dataio/converter/StringTableCellConverter.java
// public class StringTableCellConverter implements FromStringConverter<String> {
// 
//     @Override
//     public String apply(String input) {
//         if (Strings.isNullOrEmpty(input)) {
//             return "";
//         }
//         return input.trim();
//     }
// 
// }


// Path: src/test/java/br/com/tecsinapse/datasources/DataParser.java
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import org.testng.Assert;
import br.com.tecsinapse.dataio.annotation.TableCellMapping;
import br.com.tecsinapse.dataio.converter.BigDecimalTableCellConverter;
import br.com.tecsinapse.dataio.converter.IntegerTableCellConverter;
import br.com.tecsinapse.dataio.converter.LocalDateTableCellConverter;
import br.com.tecsinapse.dataio.converter.LocalDateTimeTableCellConverter;
import br.com.tecsinapse.dataio.converter.LocalTimeTableCellConverter;
import br.com.tecsinapse.dataio.converter.StringTableCellConverter;


    public LocalDate getDate() {
        return date;
    }

    public LocalDateTime getDateTime() {
        return dateTime;
    }

    public BigDecimal getDecimal() {
        return decimal;
    }

    public Integer getInteger() {
        return integer;
    }

    public String getString() {
        return string;
    }

    public String getEmpty() {
        return empty;
    }

    public LocalTime getTime() {
        return time;
    }

    // Test for not accessible method
    @TableCellMapping(columnIndex = 0, converter = LocalDateTableCellConverter.class)