![JAR search and dependency download from the Maven repository](/logo.png)
org.simpleflatmapper.map.mapper.SetRowMapperBuilderImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sfm-map Show documentation
Show all versions of sfm-map Show documentation
Java library to map flat record - ResultSet, csv - to java object with minimum configuration and low footprint.
package org.simpleflatmapper.map.mapper;
import org.simpleflatmapper.map.ConsumerErrorHandler;
import org.simpleflatmapper.map.ContextualSourceFieldMapper;
import org.simpleflatmapper.map.FieldKey;
import org.simpleflatmapper.map.FieldMapper;
import org.simpleflatmapper.map.SetRowMapper;
import org.simpleflatmapper.map.MapperConfig;
import org.simpleflatmapper.map.context.KeySourceGetter;
import org.simpleflatmapper.map.context.MappingContextFactory;
import org.simpleflatmapper.map.context.MappingContextFactoryBuilder;
import org.simpleflatmapper.map.impl.DiscriminatorReflectionService;
import org.simpleflatmapper.map.property.IgnoreRowIfNullProperty;
import org.simpleflatmapper.reflect.meta.ClassMeta;
import org.simpleflatmapper.util.Enumerable;
import org.simpleflatmapper.util.ErrorHelper;
import org.simpleflatmapper.util.ForEachCallBack;
import org.simpleflatmapper.util.Function;
import org.simpleflatmapper.util.Predicate;
import org.simpleflatmapper.util.PredicatedEnumerable;
import org.simpleflatmapper.util.TypeHelper;
import org.simpleflatmapper.util.UnaryFactory;
import java.lang.reflect.Array;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @param the targeted type of the mapper
*/
public class SetRowMapperBuilderImpl, ROW, SET, T, K extends FieldKey, E extends Exception> implements SetRowMapperBuilder {
private final ConstantSourceMapperBuilder constantSourceMapperBuilder;
protected final MapperConfig mapperConfig;
protected final MappingContextFactoryBuilder super ROW, K> mappingContextFactoryBuilder;
private final UnaryFactory> enumerableFactory;
private final SetRowMapperFactory setRowMapperFactory;
private final KeySourceGetter keySourceGetter;
/**
* @param classMeta the meta for the target class.
* @param parentBuilder the parent builder, null if none.
* @param mapperConfig the mapperConfig.
* @param mapperSource the Mapper source.
* @param keyFactory
* @param enumerableFactory
* @param keySourceGetter
*/
public SetRowMapperBuilderImpl(
final ClassMeta classMeta,
MappingContextFactoryBuilder parentBuilder,
MapperConfig mapperConfig,
MapperSource super ROW, K> mapperSource,
KeyFactory keyFactory,
UnaryFactory> enumerableFactory,
SetRowMapperFactory setRowMapperFactory,
KeySourceGetter keySourceGetter) {
this.setRowMapperFactory = setRowMapperFactory;
this.enumerableFactory = enumerableFactory;
this.keySourceGetter = keySourceGetter;
this.constantSourceMapperBuilder =
ConstantSourceMapperBuilder.newConstantSourceMapperBuilder(
mapperSource,
prepareClassMetaForDiscriminator(classMeta, mapperConfig),
mapperConfig,
parentBuilder,
keyFactory);
this.mapperConfig = mapperConfig;
this.mappingContextFactoryBuilder = parentBuilder;
}
private ClassMeta prepareClassMetaForDiscriminator(ClassMeta classMeta, MapperConfig mapperConfig) {
List> discriminators = mapperConfig.getDiscriminators();
if (discriminators.isEmpty()) {
return classMeta;
} else {
Map, List>> discriminatorMap = new HashMap, List>>();
for(MapperConfig.Discriminator, ?, ?> d : discriminators) {
Class
© 2015 - 2025 Weber Informatics LLC | Privacy Policy