docs: Number numberFor(String source, Class<?> destinationType) {
      String sourceString = source.trim();
      if (sourceString.length() == 0)
        return null;
  
      try {
        if (destinationType.equals(Byte.class))
          return Byte.valueOf(source);
        if (destinationType.equals(Short.class))
          return Short.valueOf(source);
        if (destinationType.equals(Integer.class))
          return Integer.valueOf(source);
        if (destinationType.equals(Long.class))
          return Long.valueOf(source);
        if (destinationType.equals(Float.class))
          return Float.valueOf(source);
        if (destinationType.equals(Double.class))
          return Double.valueOf(source);
        if (destinationType.equals(BigDecimal.class))
          return new BigDecimal(source);
        if (destinationType.equals(BigInteger.class))
          return new BigInteger(source);
      } catch (Exception e) {
        throw new Errors().errorMapping(source, destinationType, e).toMappingException();
      }
  
      throw new Errors().errorMapping(source, destinationType).toMappingException();
    }