All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.chrisgleissner.jutil.jdbi.RenamingRowMapperFactory Maven / Gradle / Ivy

The newest version!
package com.github.chrisgleissner.jutil.jdbi;

import com.github.chrisgleissner.jutil.jdbi.mapping.ColumnNameMapping;
import lombok.RequiredArgsConstructor;
import org.jdbi.v3.core.config.ConfigRegistry;
import org.jdbi.v3.core.mapper.RowMapper;
import org.jdbi.v3.core.mapper.RowMapperFactory;

import java.lang.reflect.Type;
import java.util.Optional;

@RequiredArgsConstructor
public class RenamingRowMapperFactory implements RowMapperFactory {
    private final RowMapperFactory underlying;
    private final ColumnNameMapping columnNameMapping;

    public static  RenamingRowMapperFactory mapColNames(RowMapperFactory underlying, ColumnNameMapping columnNameMapping) {
        return new RenamingRowMapperFactory<>(underlying, columnNameMapping);
    }

    @Override
    public Optional> build(Type type, ConfigRegistry config) {
        final RowMapper rowMapper = underlying.build(type, config)
                .orElseThrow(() -> new RuntimeException("Could not create col mapping result transformer"));
        return Optional.of(RenamingRowMapper.mapColNames(rowMapper, columnNameMapping));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy