code: private static MoneyAmountStyle getLocalizedStyle(Locale locale) {
          MoneyAmountStyle protoStyle = LOCALIZED_CACHE.get(locale);
          if (protoStyle == null) {
              DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(locale);
              NumberFormat format = NumberFormat.getCurrencyInstance(locale);
              int size = (format instanceof DecimalFormat ? ((DecimalFormat) format).getGroupingSize() : 3);
              size = size <= 0 ? 3 : size;
              protoStyle = new MoneyAmountStyle(
                      symbols.getZeroDigit(),
                      '+', 
                      symbols.getMinusSign(),
                      symbols.getMonetaryDecimalSeparator(),
                      GroupingStyle.FULL,
                      symbols.getGroupingSeparator(), 
                      size, 
                      0, 
                      false, 
                      false);
              LOCALIZED_CACHE.putIfAbsent(locale, protoStyle);
          }
          return protoStyle;
      }
docs: Gets the prototype localized style for the given locale.
  <p>
  This uses {@link DecimalFormatSymbols} and {@link NumberFormat}.
  <p>
  The method {@code DecimalFormatSymbols.getInstance(locale)} will be used
  in order to allow the use of locales defined as extensions.
  
  @param locale  the {@link Locale} used to get the correct {@link DecimalFormatSymbols}
  @return the symbols, never null