
org.simpleflatmapper.sql2o.SfmResultSetHandlerFactoryBuilder Maven / Gradle / Ivy
package org.simpleflatmapper.sql2o;
import org.simpleflatmapper.jdbc.DynamicJdbcMapper;
import org.simpleflatmapper.jdbc.JdbcMapperFactory;
import org.simpleflatmapper.map.PropertyNameMatcherFactory;
import org.simpleflatmapper.map.mapper.DefaultPropertyNameMatcherFactory;
import org.simpleflatmapper.util.Function;
import org.sql2o.DefaultResultSetHandlerFactoryBuilder;
import org.sql2o.ResultSetHandlerFactory;
import java.util.Map;
public class SfmResultSetHandlerFactoryBuilder extends DefaultResultSetHandlerFactoryBuilder {
private final Function, JdbcMapperFactory> jdbcMapperFactoryFactory;
public SfmResultSetHandlerFactoryBuilder() {
this(JdbcMapperFactory.newInstance());
}
public SfmResultSetHandlerFactoryBuilder(final JdbcMapperFactory jdbcMapperFactory) {
this(new Function, JdbcMapperFactory>() {
@Override
public JdbcMapperFactory apply(Class> aClass) {
return jdbcMapperFactory;
}
});
}
public SfmResultSetHandlerFactoryBuilder(Function, JdbcMapperFactory> jdbcMapperFactoryFactory) {
this.jdbcMapperFactoryFactory = jdbcMapperFactoryFactory;
}
@Override
public ResultSetHandlerFactory newFactory(Class aClass) {
boolean exactMatch = !isAutoDeriveColumnNames();
JdbcMapperFactory jdbcMapperFactory = jdbcMapperFactoryFactory.apply(aClass);
PropertyNameMatcherFactory propertyNameMatcherFactory =
jdbcMapperFactory.mapperConfig(aClass).propertyNameMatcherFactory();
if (propertyNameMatcherFactory instanceof DefaultPropertyNameMatcherFactory) {
propertyNameMatcherFactory =
((DefaultPropertyNameMatcherFactory)propertyNameMatcherFactory).exactMatch(exactMatch).caseSensitive(isCaseSensitive());
}
jdbcMapperFactory.propertyNameMatcherFactory(propertyNameMatcherFactory);
Map columnMappings = getColumnMappings();
if (columnMappings != null) {
jdbcMapperFactory.addAliases(columnMappings);
}
DynamicJdbcMapper dynamicJdbcMapper = (DynamicJdbcMapper) jdbcMapperFactory.newMapper(aClass);
return new SfmResultSetHandlerFactory(dynamicJdbcMapper);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy