package org.simpleflatmapper.map.fieldmapper; import org.simpleflatmapper.map.FieldKey; import org.simpleflatmapper.map.FieldMapper; import org.simpleflatmapper.map.MapperBuilderErrorHandler; import org.simpleflatmapper.map.property.FieldMapperColumnDefinition; import org.simpleflatmapper.map.context.MappingContextFactoryBuilder; import org.simpleflatmapper.map.mapper.PropertyMapping; import org.simpleflatmapper.reflect.Getter; import org.simpleflatmapper.reflect.meta.ClassMeta; import org.simpleflatmapper.util.Supplier; import java.lang.reflect.Type; public interface ConstantSourceFieldMapperFactory<S, K extends FieldKey<K>> { <T, P> FieldMapper<S, T> newFieldMapper( PropertyMapping<T, P, K, FieldMapperColumnDefinition<K>> propertyMapping, MappingContextFactoryBuilder contextFactoryBuilder, MapperBuilderErrorHandler mappingErrorHandler); <P> Getter<? super S, ? extends P> getGetterFromSource( K columnKey, Type propertyType, FieldMapperColumnDefinition<K> columnDefinition, Supplier<ClassMeta<P>> propertyClassMetaSupplier); }