org.simpleflatmapper.jooq.SelectQueryMapperFactory Maven / Gradle / Ivy
The newest version!
package org.simpleflatmapper.jooq;
import org.simpleflatmapper.jdbc.ResultSetGetterFactory;
import org.simpleflatmapper.map.FieldKey;
import org.simpleflatmapper.map.context.MappingContextFactoryBuilder;
import org.simpleflatmapper.map.getter.ContextualGetter;
import org.simpleflatmapper.map.getter.ContextualGetterFactory;
import org.simpleflatmapper.map.mapper.AbstractColumnDefinitionProvider;
import org.simpleflatmapper.map.mapper.AbstractColumnNameDiscriminatorMapperFactory;
import org.simpleflatmapper.map.mapper.AbstractMapperFactory;
import org.simpleflatmapper.map.mapper.FieldMapperColumnDefinitionProviderImpl;
import org.simpleflatmapper.map.property.FieldMapperColumnDefinition;
import org.simpleflatmapper.reflect.property.SpeculativeObjectLookUpProperty;
import org.simpleflatmapper.util.ConstantPredicate;
import java.lang.reflect.Type;
import java.sql.ResultSet;
import static org.simpleflatmapper.jooq.JooqJdbcMapperBuilder.toJdbcColumnKey;
public class SelectQueryMapperFactory
extends AbstractColumnNameDiscriminatorMapperFactory {
public static SelectQueryMapperFactory newInstance() {
return new SelectQueryMapperFactory();
}
public static SelectQueryMapperFactory newInstance(
AbstractMapperFactory config) {
return new SelectQueryMapperFactory(config);
}
private SelectQueryMapperFactory() {
super(new FieldMapperColumnDefinitionProviderImpl(), FieldMapperColumnDefinition.identity(), adapt(ResultSetGetterFactory.INSTANCE));
addColumnProperty(ConstantPredicate.truePredicate(), SpeculativeObjectLookUpProperty.INSTANCE);
}
private SelectQueryMapperFactory(AbstractMapperFactory config) {
super(config);
addColumnProperty(ConstantPredicate.truePredicate(), SpeculativeObjectLookUpProperty.INSTANCE);
}
private SelectQueryMapperFactory(AbstractColumnDefinitionProvider columnDefinitions, FieldMapperColumnDefinition identity) {
super(columnDefinitions, identity, adapt(ResultSetGetterFactory.INSTANCE));
addColumnProperty(ConstantPredicate.truePredicate(), SpeculativeObjectLookUpProperty.INSTANCE);
}
private static ContextualGetterFactory adapt(final ResultSetGetterFactory instance) {
return new ContextualGetterFactory() {
@Override
public ContextualGetter newGetter(Type target, JooqFieldKey key, MappingContextFactoryBuilder, ? extends FieldKey>> mappingContextFactoryBuilder, Object... properties) {
return instance.newGetter(target, toJdbcColumnKey(key), mappingContextFactoryBuilder, properties);
}
};
}
public SelectQueryMapper newMapper(Class clazz) {
return new SelectQueryMapper(getReflectionService().getClassMeta(clazz), mapperConfig(clazz));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy