// Path: src/main/java/org/sfm/beans/FinalSmallBenchmarkObject.java
// public class FinalSmallBenchmarkObject {
// 	
// 	private final long id;
// 	
// 	private final int yearStarted;
// 	private final String name;
// 	private final String email;
// 
//     public FinalSmallBenchmarkObject(long id, int yearStarted, String name, String email) {
//         this.id = id;
//         this.yearStarted = yearStarted;
//         this.name = name;
//         this.email = email;
//     }
// 
//     public long getId() {
// 		return id;
// 	}
// 	public String getName() {
// 		return name;
// 	}
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public int getYearStarted() {
// 		return yearStarted;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "FinalSmallBenchmarkObject [id=" + id + ", yearStarted="
// 				+ yearStarted + ", name=" + name + ", email=" + email + "]";
// 	}
// 	
// 	
// }
// 
// Path: src/main/java/org/sfm/beans/SmallBenchmarkObject.java
// @Entity
// @Table(name="test_small_benchmark_object")
// public class SmallBenchmarkObject {
// 	
// 	@Id
// 	@RowMapperField(columnName="ID")
// 	private long id;
// 
// 	@RowMapperField(columnName="YEAR_STARTED")
// 	private int yearStarted;
// 	@RowMapperField(columnName = "NAME")
// 	private String name;
// 	@RowMapperField(columnName="EMAIL")
// 	private String email;
// 
// 	@Column(name="ID")
// 	public long getId() {
// 		return id;
// 	}
// 	public void setId(long id) {
// 		this.id = id;
// 	}
// 	@Column(name="NAME")
// 	public String getName() {
// 		return name;
// 	}
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 	@Column(name="EMAIL")
// 	public String getEmail() {
// 		return email;
// 	}
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 	
// 	@Column(name="YEAR_STARTED")
// 	public int getYearStarted() {
// 		return yearStarted;
// 	}
// 	public void setYearStarted(int yearStarted) {
// 		this.yearStarted = yearStarted;
// 	}
// 	@Override
// 	public String toString() {
// 		return "SmallBenchmarkObject [id=" + id + ", yearStarted="
// 				+ yearStarted + ", name=" + name + ", email=" + email + "]";
// 	}
// 	
// 	
// }


import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import au.com.bytecode.opencsv.bean.ColumnPositionMappingStrategy;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.input.CharSequenceReader;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;
import org.sfm.beans.FinalSmallBenchmarkObject;
import org.sfm.beans.SmallBenchmarkObject;
import org.sfm.csv.CsvMapper;
import org.sfm.csv.CsvMapperBuilder;
import org.sfm.csv.CsvMapperFactory;
import org.sfm.csv.CsvParser;
import org.sfm.utils.RowHandler;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.bean.CsvToBean;
import au.com.bytecode.opencsv.bean.HeaderColumnNameTranslateMappingStrategy;
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import com.univocity.parsers.common.ParsingContext;
import com.univocity.parsers.common.processor.BeanProcessor;
import com.univocity.parsers.csv.CsvParserSettings;
package org.sfm.benchmark.csv;





@State(Scope.Benchmark)
public class CsvMapperBenchmark {

	private CsvMapper<SmallBenchmarkObject> mapper;
// Path: src/main/java/org/sfm/beans/FinalSmallBenchmarkObject.java
// public class FinalSmallBenchmarkObject {
// 	
// 	private final long id;
// 	
// 	private final int yearStarted;
// 	private final String name;
// 	private final String email;
// 
//     public FinalSmallBenchmarkObject(long id, int yearStarted, String name, String email) {
//         this.id = id;
//         this.yearStarted = yearStarted;
//         this.name = name;
//         this.email = email;
//     }
// 
//     public long getId() {
// 		return id;
// 	}
// 	public String getName() {
// 		return name;
// 	}
// 	public String getEmail() {
// 		return email;
// 	}
// 
// 	public int getYearStarted() {
// 		return yearStarted;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "FinalSmallBenchmarkObject [id=" + id + ", yearStarted="
// 				+ yearStarted + ", name=" + name + ", email=" + email + "]";
// 	}
// 	
// 	
// }
// 
// Path: src/main/java/org/sfm/beans/SmallBenchmarkObject.java
// @Entity
// @Table(name="test_small_benchmark_object")
// public class SmallBenchmarkObject {
// 	
// 	@Id
// 	@RowMapperField(columnName="ID")
// 	private long id;
// 
// 	@RowMapperField(columnName="YEAR_STARTED")
// 	private int yearStarted;
// 	@RowMapperField(columnName = "NAME")
// 	private String name;
// 	@RowMapperField(columnName="EMAIL")
// 	private String email;
// 
// 	@Column(name="ID")
// 	public long getId() {
// 		return id;
// 	}
// 	public void setId(long id) {
// 		this.id = id;
// 	}
// 	@Column(name="NAME")
// 	public String getName() {
// 		return name;
// 	}
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 	@Column(name="EMAIL")
// 	public String getEmail() {
// 		return email;
// 	}
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 	
// 	@Column(name="YEAR_STARTED")
// 	public int getYearStarted() {
// 		return yearStarted;
// 	}
// 	public void setYearStarted(int yearStarted) {
// 		this.yearStarted = yearStarted;
// 	}
// 	@Override
// 	public String toString() {
// 		return "SmallBenchmarkObject [id=" + id + ", yearStarted="
// 				+ yearStarted + ", name=" + name + ", email=" + email + "]";
// 	}
// 	
// 	
// }


// Path: src/main/java/org/sfm/benchmark/csv/CsvMapperBenchmark.java
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
import au.com.bytecode.opencsv.bean.ColumnPositionMappingStrategy;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.input.CharSequenceReader;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;
import org.sfm.beans.FinalSmallBenchmarkObject;
import org.sfm.beans.SmallBenchmarkObject;
import org.sfm.csv.CsvMapper;
import org.sfm.csv.CsvMapperBuilder;
import org.sfm.csv.CsvMapperFactory;
import org.sfm.csv.CsvParser;
import org.sfm.utils.RowHandler;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.bean.CsvToBean;
import au.com.bytecode.opencsv.bean.HeaderColumnNameTranslateMappingStrategy;
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import com.univocity.parsers.common.ParsingContext;
import com.univocity.parsers.common.processor.BeanProcessor;
import com.univocity.parsers.csv.CsvParserSettings;

package org.sfm.benchmark.csv;





@State(Scope.Benchmark)
public class CsvMapperBenchmark {

	private CsvMapper<SmallBenchmarkObject> mapper;
    private CsvMapper<FinalSmallBenchmarkObject> finalMapper;