Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.simpleflatmapper.poi.SheetMapperBuilder Maven / Gradle / Ivy
package org.simpleflatmapper.poi;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.simpleflatmapper.map.ConsumerErrorHandler;
import org.simpleflatmapper.map.ContextualSourceFieldMapper;
import org.simpleflatmapper.map.SetRowMapper;
import org.simpleflatmapper.map.context.MappingContextFactory;
import org.simpleflatmapper.map.getter.ContextualGetterFactory;
import org.simpleflatmapper.map.getter.ContextualGetterFactoryAdapter;
import org.simpleflatmapper.map.mapper.ColumnDefinition;
import org.simpleflatmapper.map.mapper.MapperBuilder;
import org.simpleflatmapper.map.mapper.SetRowMapperBuilderImpl;
import org.simpleflatmapper.map.property.FieldMapperColumnDefinition;
import org.simpleflatmapper.poi.impl.JoinSheetMapper;
import org.simpleflatmapper.poi.impl.StaticSheetMapper;
import org.simpleflatmapper.poi.impl.TransformRowMapper;
import org.simpleflatmapper.poi.impl.UnorderedJoinSheetMapper;
import org.simpleflatmapper.reflect.getter.GetterFactory;
import org.simpleflatmapper.csv.CsvColumnKey;
import org.simpleflatmapper.map.MapperConfig;
import org.simpleflatmapper.map.context.MappingContextFactoryBuilder;
import org.simpleflatmapper.map.mapper.KeyFactory;
import org.simpleflatmapper.map.mapper.MapperSourceImpl;
import org.simpleflatmapper.poi.impl.CsvColumnKeyRowKeySourceGetter;
import org.simpleflatmapper.poi.impl.RowGetterFactory;
import org.simpleflatmapper.reflect.meta.ClassMeta;
import org.simpleflatmapper.util.BiFunction;
import org.simpleflatmapper.util.Enumerable;
import org.simpleflatmapper.util.Function;
import org.simpleflatmapper.util.UnaryFactory;
import java.util.List;
public class SheetMapperBuilder extends MapperBuilder, RowMapper, SheetMapperBuilder> {
public static final MapperSourceImpl FIELD_MAPPER_SOURCE =
new MapperSourceImpl(Row.class, new ContextualGetterFactoryAdapter(new RowGetterFactory()));
private static final KeyFactory KEY_FACTORY = new KeyFactory() {
@Override
public CsvColumnKey newKey(String name, int i) {
return new CsvColumnKey(name, i);
}
};
public static final Function> COLUMN_DEFINITION_FACTORY = FieldMapperColumnDefinition.factory();
public SheetMapperBuilder(ClassMeta classMeta,
MapperConfig mapperConfig,
GetterFactory super Row, CsvColumnKey> getterFactory) {
this(classMeta, mapperConfig, new ContextualGetterFactoryAdapter(getterFactory));
}
public SheetMapperBuilder(ClassMeta classMeta,
MapperConfig mapperConfig,
ContextualGetterFactory super Row, CsvColumnKey> getterFactory) { super(KEY_FACTORY,
new SetRowMapperBuilderImpl , Row, Sheet, T, CsvColumnKey, RuntimeException>(
classMeta,
new MappingContextFactoryBuilder(CsvColumnKeyRowKeySourceGetter.INSTANCE, !mapperConfig.unorderedJoin()),
mapperConfig,
FIELD_MAPPER_SOURCE.getterFactory(getterFactory),
KEY_FACTORY,
new UnaryFactory>() {
@Override
public Enumerable newInstance(Sheet rows) {
throw new UnsupportedOperationException();
}
},
new RowMapperFactory(),
CsvColumnKeyRowKeySourceGetter.INSTANCE), new BiFunction, List, RowMapper>() {
@Override
public RowMapper apply(RowMapper setRowMapper, List keys) {
return setRowMapper;
}
}, COLUMN_DEFINITION_FACTORY, 0
);
}
private static class RowMapperFactory implements SetRowMapperBuilderImpl.SetRowMapperFactory, Row, Sheet, T, RuntimeException> {
@Override
public RowMapper newJoinMapper(ContextualSourceFieldMapper mapper, ConsumerErrorHandler consumerErrorHandler, MappingContextFactory super Row> mappingContextFactory, UnaryFactory> enumerableFactory) {
return new JoinSheetMapper(mapper, consumerErrorHandler, mappingContextFactory);
}
@Override
public RowMapper newUnorderedJoinMapper(ContextualSourceFieldMapper mapper, ConsumerErrorHandler consumerErrorHandler, MappingContextFactory super Row> mappingContextFactory, UnaryFactory> enumerableFactory) {
return new UnorderedJoinSheetMapper(mapper, consumerErrorHandler, mappingContextFactory);
}
@Override
public RowMapper newStaticMapper(ContextualSourceFieldMapper mapper, ConsumerErrorHandler consumerErrorHandler, MappingContextFactory super Row> mappingContextFactory, UnaryFactory> enumerableFactory) {
return new StaticSheetMapper(mapper, consumerErrorHandler, mappingContextFactory);
}
@Override
public RowMapper newTransformer(SetRowMapper setRowMapper, Function transform) {
return new TransformRowMapper((RowMapper)setRowMapper, transform);
}
}
}