code: protected String getToken(MonetaryAmount amount) {
          switch (style) {
              case NUMERIC_CODE:
                  return String.valueOf(amount.getCurrency()
                          .getNumericCode());
              case NAME:
                  return getCurrencyName(amount.getCurrency());
              case SYMBOL:
                  // Fix for https://github.com/JavaMoney/jsr354-ri/issues/151
                  if("BG".equals(locale.getCountry())){
                      return "лв";
                  }
                  return getCurrencySymbol(amount.getCurrency());
              default:
              case CODE:
                  return amount.getCurrency().getCurrencyCode();
          }
      }
docs: Evaluate the formatted(localized) token.
  
  @param amount the {@link MonetaryAmount} containing the {@link CurrencyUnit}
  to be formatted.
  @return the formatted currency.