Class GenericMapMapperFactory

  • All Implemented Interfaces:
    RowMapperFactory

    @Beta
    public class GenericMapMapperFactory
    extends java.lang.Object
    implements RowMapperFactory
    Factory for a RowMapper that can map resultset rows to column name/generic value Maps. Each row in the resultset becomes a distinct Map, in which the keys are all distinct column names and the values are the corresponding cell contents. All values are mapped to the same generic type T (e.g. BigDecimal) by a ColumnMapper from the ConfigRegistry. This differs from MapMapper by supporting a concrete type instead of only Object, and from collecting into a Map in that the latter maps an entire resultset to a single Map and can only keep 1 key and 1 value from each row. Use cases for this are mainly single-row results like numeric reports (e.g. the price components, taxes, etc of a product for sale, or a set of possible labeled values for a user setting), and matrices.
    See Also:
    ResultBearing.mapToMap(GenericType), MapMapper, ResultBearing.mapToMap(), ResultBearing.collectInto(GenericType)
    • Constructor Detail

      • GenericMapMapperFactory

        public GenericMapMapperFactory()
    • Method Detail

      • build

        public java.util.Optional<RowMapper<?>> build​(java.lang.reflect.Type mapType,
                                                      ConfigRegistry config)
        Description copied from interface: RowMapperFactory
        Supplies a row mapper which will map result set rows to type if the factory supports it; empty otherwise.
        Specified by:
        build in interface RowMapperFactory
        Parameters:
        mapType - the target type to map to
        config - the config registry, for composition
        Returns:
        a row mapper for the given type if this factory supports it; Optional.empty() otherwise.
        See Also:
        for composition
      • getMapperForValueType

        @Beta
        public static <T> RowMapper<java.util.Map<java.lang.String,​T>> getMapperForValueType​(java.lang.Class<T> valueType,
                                                                                                   ConfigRegistry config)