All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.simpleflatmapper.poi.SheetMapperBuilder Maven / Gradle / Ivy

There is a newer version: 9.0.2
Show newest version
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