liquibase-core/src/main/java/liquibase/executor/jvm/SingleColumnRowMapper.java
protected Object convertValueToRequiredType(Object value, Class requiredType) {
        if (String.class.equals(this.requiredType)) {
            return value.toString();
        } else if (Number.class.isAssignableFrom(this.requiredType)) {
            if (value instanceof Number) {
                // Convert original Number to target Number class.
                return NumberUtils.convertNumberToTargetClass(((Number) value), this.requiredType);
            } else {
                // Convert stringified value to target Number class.
                return NumberUtils.parseNumber(value.toString(), this.requiredType);
            }
        } else {
            throw new IllegalArgumentException(
                    "Value [" + value + "] is of type [" + value.getClass().getName() +
                            "] and cannot be converted to required type [" + this.requiredType.getName() + "]");
        }
    }
protected Object convertValueToRequiredType(Object value, Class requiredType) {
        if (String.class.equals(this.requiredType)) {
            return value.toString();
        } else if (Number.class.isAssignableFrom(this.requiredType)) {
            if (value instanceof Number) {
                // Convert original Number to target Number class.
                return NumberUtils.convertNumberToTargetClass(((Number) value), this.requiredType);
            } else {
                // Convert stringified value to target Number class.
                return NumberUtils.parseNumber(value.toString(), this.requiredType);
            }
        } else {
            throw new IllegalArgumentException(
                    "Value [" + value + "] is of type [" + value.getClass().getName() +
                            "] and cannot be converted to required type [" + this.requiredType.getName() + "]");
        }
    }
protected Object convertValueToRequiredType ( Object value , Class requiredType ) { if ( String . class . equals ( this . requiredType ) ) { return value . toString ( ) ; } else if ( Number . class . isAssignableFrom ( this . requiredType ) ) { if ( value instanceof Number ) { // Convert original Number to target Number class. return NumberUtils . convertNumberToTargetClass ( ( ( Number ) value ) , this . requiredType ) ; } else { // Convert stringified value to target Number class. return NumberUtils . parseNumber ( value . toString ( ) , this . requiredType ) ; } } else { throw new IllegalArgumentException ( "Value [" + value + "] is of type [" + value . getClass ( ) . getName ( ) + "] and cannot be converted to required type [" + this . requiredType . getName ( ) + "]" ) ; } }
Convert the given column value to the specified required type.
Only called if the extracted column value does not match already.
<p>If the required type is String, the value will simply get stringified
via <code>toString()</code>. In case of a Number, the value will be
converted into a Number, either through number conversion or through
String parsing (depending on the value type).

@param value        the column value as extracted from <code>getColumnValue()</code>
(never <code>null</code>)
@param requiredType the type that each result object is expected to match
(never <code>null</code>)
@return the converted value
@see #getColumnValue(java.sql.ResultSet,int,Class)
Convert the given column value to the specified required type . Only called if the extracted column value does not match already . <p > If the required type is String the value will simply get stringified via <code > toString () < / code > . In case of a Number the value will be converted into a Number either through number conversion or through String parsing ( depending on the value type ) .