public static Integer parseNumberStringAsInt(final String str) throws NumberFormatException {
        final Long num = parseNumberString(str, SIZE_DIVIDER);
        if (num == null) {
            return null;
        }
        if (num > Integer.MAX_VALUE) {
            throw new NumberFormatException(str + " is too big for an int.  (Max value " + formatCsv(Integer.MAX_VALUE)
                                            + " and you number was " + formatCsv(num) + ")");
        }
        if (num < Integer.MIN_VALUE) {
            throw new NumberFormatException(str + " is too small for an int.  (Min value " +
                                            formatCsv(Integer.MIN_VALUE) +
                                            " and you number was " +
                                            formatCsv(num) +
                                            ")");
        }
        return num.intValue();
    }
Parses human-readable numbers that use SI unit prefixes into a {@link Integer}.
e.g. '1.1k' => 1100, '1M' => 1_000_000. The case of the unit prefixes is ignored.
Valid unit prefixes are 'k', 'M', 'G', 'T', 'P'.
If there is no unit prefix then the number is converted from the string as is.

@return The number or null for a null/empty input.
@throws NumberFormatException If it can't be parsed or the number is too large
                              for an {@link Integer}
stroom-util-shared/src/main/java/stroom/util/shared/ModelStringUtil.java