org.sfm.jooq.JooqMapperBuilder Maven / Gradle / Ivy
package org.sfm.jooq;
import org.jooq.Record;
import org.sfm.map.Mapper;
import org.sfm.map.MapperBuildingException;
import org.sfm.map.MapperConfig;
import org.sfm.map.mapper.FieldMapperMapperBuilder;
import org.sfm.map.mapper.MapperSource;
import org.sfm.map.column.FieldMapperColumnDefinition;
import org.sfm.map.context.MappingContextFactoryBuilder;
import org.sfm.map.mapper.MapperSourceImpl;
import org.sfm.reflect.ReflectionService;
import org.sfm.reflect.meta.ClassMeta;
import java.lang.reflect.Type;
public class JooqMapperBuilder {
public static final MapperSource FIELD_MAPPER_SOURCE = new MapperSourceImpl(Record.class, new RecordGetterFactory());
private final FieldMapperMapperBuilder fieldMapperMapperBuilder;
public JooqMapperBuilder(final Type target) throws MapperBuildingException {
this(target, ReflectionService.newInstance());
}
@SuppressWarnings("unchecked")
public JooqMapperBuilder(final Type target, ReflectionService reflectService) throws MapperBuildingException {
this(reflectService.getClassMeta(target), new JooqMappingContextFactoryBuilder());
}
public JooqMapperBuilder(final ClassMeta classMeta,
MappingContextFactoryBuilder mappingContextFactoryBuilder) throws MapperBuildingException {
this(classMeta, mappingContextFactoryBuilder, MapperConfig.fieldMapperConfig());
}
public JooqMapperBuilder(final ClassMeta classMeta,
MappingContextFactoryBuilder mappingContextFactoryBuilder,
MapperConfig> mapperConfig) throws MapperBuildingException {
fieldMapperMapperBuilder =
new FieldMapperMapperBuilder(
FIELD_MAPPER_SOURCE,
classMeta,
mapperConfig,
mappingContextFactoryBuilder);
}
public JooqMapperBuilder addField(JooqFieldKey key) {
fieldMapperMapperBuilder.addMapping(key, FieldMapperColumnDefinition.identity());
return this;
}
public Mapper mapper() {
return fieldMapperMapperBuilder.mapper();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy