code: public static CurrencyUnit ofNumericCode(String numericCurrencyCode) {
          MoneyUtils.checkNotNull(numericCurrencyCode, "Currency code must not be null");
          switch (numericCurrencyCode.length()) {
              case 1:
                  return ofNumericCode(numericCurrencyCode.charAt(0) - '0');
              case 2:
                  return ofNumericCode((numericCurrencyCode.charAt(0) - '0') * 10 +
                                        numericCurrencyCode.charAt(1) - '0');
              case 3:
                  return ofNumericCode((numericCurrencyCode.charAt(0) - '0') * 100 +
                                       (numericCurrencyCode.charAt(1) - '0') * 10 +
                                        numericCurrencyCode.charAt(2) - '0');
              default:
                  throw new IllegalCurrencyException("Unknown currency '" + numericCurrencyCode + '\'');
          }
      }
docs: Obtains an instance of {@code CurrencyUnit} for the specified ISO-4217 numeric currency code.
  <p>
  The numeric code is an alternative to the three letter code.
  This method is lenient and does not require the string to be left padded with zeroes.
  
  @param numericCurrencyCode  the currency code, not null
  @return the singleton instance, never null
  @throws IllegalCurrencyException if the currency is unknown