docs: public MoneyAmountStyle localize(Locale locale) {
          MoneyFormatter.checkNotNull(locale, "Locale must not be null");
          MoneyAmountStyle result = this;
          MoneyAmountStyle protoStyle = null;
          if (zeroCharacter < 0) {
              protoStyle = getLocalizedStyle(locale);
              result = result.withZeroCharacter(protoStyle.getZeroCharacter());
          }
          if (positiveCharacter < 0) {
              protoStyle = (protoStyle == null ? getLocalizedStyle(locale) : protoStyle);
              result = result.withPositiveSignCharacter(protoStyle.getPositiveSignCharacter());
          }
          if (negativeCharacter < 0) {
              protoStyle = (protoStyle == null ? getLocalizedStyle(locale) : protoStyle);
              result = result.withNegativeSignCharacter(protoStyle.getNegativeSignCharacter());
          }
          if (decimalPointCharacter < 0) {
              protoStyle = (protoStyle == null ? getLocalizedStyle(locale) : protoStyle);
              result = result.withDecimalPointCharacter(protoStyle.getDecimalPointCharacter());
          }
          if (groupingCharacter < 0) {
              protoStyle = (protoStyle == null ? getLocalizedStyle(locale) : protoStyle);
              result = result.withGroupingCharacter(protoStyle.getGroupingCharacter());
          }
          if (groupingSize < 0) {
              protoStyle = (protoStyle == null ? getLocalizedStyle(locale) : protoStyle);
              result = result.withGroupingSize(protoStyle.getGroupingSize());
          }
          if (extendedGroupingSize < 0) {
              protoStyle = (protoStyle == null ? getLocalizedStyle(locale) : protoStyle);
              result = result.withExtendedGroupingSize(protoStyle.getExtendedGroupingSize());
          }
          return result;
      }