code: public MoneyAmountStyle withExtendedGroupingSize(Integer extendedGroupingSize) {
          int sizeVal = (extendedGroupingSize == null ? -1 : extendedGroupingSize);
          if (extendedGroupingSize != null && sizeVal < 0) {
              throw new IllegalArgumentException("Extended grouping size must not be negative");
          }
          if (sizeVal == this.extendedGroupingSize) {
              return this;
          }
          return new MoneyAmountStyle(
                  zeroCharacter,
                  positiveCharacter, negativeCharacter,
                  decimalPointCharacter, groupingStyle,
                  groupingCharacter, groupingSize, sizeVal, forceDecimalPoint, absValue);
      }
docs: Returns a copy of this style with the specified extended grouping size.
  
  @param extendedGroupingSize  the size of each group, such as 3 for thousands,
  not zero or negative, null if to be determined by locale
  @return the new instance for chaining, never null
  @throws IllegalArgumentException if the grouping size is zero or less