public <T> Optional<RowMapper<T>> findFor(QualifiedType<T> type) {
        if (type.getQualifiers().isEmpty()) {
            @SuppressWarnings("unchecked")
            Optional<RowMapper<T>> result = rowMappers.findFor(type.getType()).map(m -> (RowMapper<T>) m);
            if (result.isPresent()) {
                return result;
            }
        }

        return columnMappers.findFor(type).map(SingleColumnMapper::new);
    }
Obtain a mapper for the given qualified type. If the type is unqualified,
and a row mapper is registered for the given type, it is returned. If a
column mapper is registered for the given qualified type, it is adapted
into a row mapper, mapping the first column of the result set. If neither
a row or column mapper is registered, empty is returned.

@param type the target qualified type to map to
@return a mapper for the given type, or empty if no row or column mapper
is registered for the given type.
core/src/main/java/org/jdbi/v3/core/mapper/Mappers.java