
org.simpleflatmapper.poi.SheetMapperBuilder Maven / Gradle / Ivy
package org.simpleflatmapper.poi;
import org.apache.poi.ss.usermodel.Row;
import org.simpleflatmapper.reflect.getter.GetterFactory;
import org.simpleflatmapper.csv.CsvColumnKey;
import org.simpleflatmapper.map.mapper.AbstractMapperBuilder;
import org.simpleflatmapper.map.Mapper;
import org.simpleflatmapper.map.MapperConfig;
import org.simpleflatmapper.map.property.FieldMapperColumnDefinition;
import org.simpleflatmapper.map.context.MappingContextFactoryBuilder;
import org.simpleflatmapper.map.mapper.KeyFactory;
import org.simpleflatmapper.map.mapper.MapperSourceImpl;
import org.simpleflatmapper.poi.impl.JoinSheetMapper;
import org.simpleflatmapper.poi.impl.CsvColumnKeyRowKeySourceGetter;
import org.simpleflatmapper.poi.impl.RowGetterFactory;
import org.simpleflatmapper.poi.impl.StaticSheetMapper;
import org.simpleflatmapper.reflect.meta.ClassMeta;
public class SheetMapperBuilder extends AbstractMapperBuilder, SheetMapperBuilder> {
public static final MapperSourceImpl FIELD_MAPPER_SOURCE =
new MapperSourceImpl(Row.class, new RowGetterFactory());
private static final KeyFactory KEY_FACTORY = new KeyFactory() {
@Override
public CsvColumnKey newKey(String name, int i) {
return new CsvColumnKey(name, i);
}
};
public SheetMapperBuilder(ClassMeta classMeta,
MapperConfig> mapperConfig,
GetterFactory getterFactory) {
super(classMeta, new MappingContextFactoryBuilder(new CsvColumnKeyRowKeySourceGetter()),
mapperConfig, FIELD_MAPPER_SOURCE.getterFactory(getterFactory),
KEY_FACTORY, 0);
}
@Override
protected RowMapper newJoinJdbcMapper(Mapper mapper) {
return new JoinSheetMapper(mapper, mapperConfig.consumerErrorHandler(), mappingContextFactoryBuilder.newFactory());
}
@Override
protected RowMapper newStaticJdbcMapper(Mapper mapper) {
return new StaticSheetMapper(mapper, mapperConfig.consumerErrorHandler(), mappingContextFactoryBuilder.newFactory());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy