private static <S> Class<? extends S> classByPrefix(String prefix, Class<S> spec) {
        final String implName = spec.getPackage().getName() + '.' + prefix + spec.getSimpleName();
        try {
            return Class.forName(implName).asSubclass(spec);
        } catch (ClassNotFoundException e) {
            throw new IllegalArgumentException("Couldn't locate default implementation class " + implName, e);
        }
    }
Register bean arguments and row mapping for an {@code Modifiable*} value class, using a supplied implementation and constructor.
@param spec the specification interface or abstract class
@param impl the modifiable class
@param constructor a supplier of new Modifiable instances
@param <S> the specification class
@param <M> the modifiable class
@return a plugin that configures type mapping for the given class
core/src/main/java/org/jdbi/v3/core/mapper/immutables/JdbiImmutables.java