code: public static Currency getInstance(String currencyCode) {
          synchronized (codesToCurrencies) {
              Currency currency = codesToCurrencies.get(currencyCode);
              if (currency == null) {
                  currency = new Currency(currencyCode);
                  codesToCurrencies.put(currencyCode, currency);
              }
              return currency;
          }
      }
docs: Returns the {@code Currency} instance for the given ISO 4217 currency code.
  @throws IllegalArgumentException
  if the currency code is not a supported ISO 4217 currency code.