// 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;
/*
 * Tecsinapse Data Input and Output
 *
 * License: GNU Lesser General Public License (LGPL), version 3 or later
 * See the LICENSE file in the root directory or <http://www.gnu.org/licenses/lgpl-3.0.html>.
 */
package br.com.tecsinapse.datasources;




public class DataParser implements ApplyTest<DataParser> {

    private LocalDate date;
    private LocalDateTime dateTime;
    private BigDecimal decimal;
    private Integer integer;
    private int integerPrimitive;
    private String string;
    private String empty;
    private LocalTime time;

    private DataParser actual;
    private String identifier;

    public DataParser() {
    }

    public DataParser(String date, String dateTime, String decimal, Integer integer, String string, String empty, String time) {
        this.date = LocalDate.parse(date);
        this.dateTime = LocalDateTime.parse(dateTime);
        this.decimal = decimal != null ? new BigDecimal(decimal) : null;
        this.integer = integer;
        this.string = string;
        this.empty = empty;
        this.time = LocalTime.parse(time);
    }

    public LocalDate getDate() {
        return date;
    }

    public LocalDateTime getDateTime() {
        return dateTime;
    }

// 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;

/*
 * Tecsinapse Data Input and Output
 *
 * License: GNU Lesser General Public License (LGPL), version 3 or later
 * See the LICENSE file in the root directory or <http://www.gnu.org/licenses/lgpl-3.0.html>.
 */
package br.com.tecsinapse.datasources;




public class DataParser implements ApplyTest<DataParser> {

    private LocalDate date;
    private LocalDateTime dateTime;
    private BigDecimal decimal;
    private Integer integer;
    private int integerPrimitive;
    private String string;
    private String empty;
    private LocalTime time;

    private DataParser actual;
    private String identifier;

    public DataParser() {
    }

    public DataParser(String date, String dateTime, String decimal, Integer integer, String string, String empty, String time) {
        this.date = LocalDate.parse(date);
        this.dateTime = LocalDateTime.parse(dateTime);
        this.decimal = decimal != null ? new BigDecimal(decimal) : null;
        this.integer = integer;
        this.string = string;
        this.empty = empty;
        this.time = LocalTime.parse(time);
    }

    public LocalDate getDate() {
        return date;
    }

    public LocalDateTime getDateTime() {
        return dateTime;
    }

    public BigDecimal getDecimal() {