private final String computePattern (DecimalFormatSymbols syms)
private String computePattern(DecimalFormatSymbols syms)
  private final String computePattern (DecimalFormatSymbols syms)  {    StringBuffer mainPattern = new StringBuffer ();		// We have to at least emit a zero for the minimum number of		// digits.  Past that we need hash marks up to the grouping		// separator (and one beyond).    int total_digits = Math.max(minimumIntegerDigits,				groupingUsed ? groupingSize + 1: groupingSize);		for (int i = 0; i < total_digits - minimumIntegerDigits; ++i)			mainPattern.append(syms.getDigit());		for (int i = total_digits - minimumIntegerDigits; i < total_digits; ++i)			mainPattern.append(syms.getZeroDigit());		// Inserting the gropuing operator afterwards is easier.		if (groupingUsed)      mainPattern.insert(mainPattern.length() - groupingSize,			 syms.getGroupingSeparator());		// See if we need decimal info.    if (minimumFractionDigits > 0 || maximumFractionDigits > 0	|| decimalSeparatorAlwaysShown)			mainPattern.append(syms.getDecimalSeparator());		for (int i = 0; i < minimumFractionDigits; ++i)			mainPattern.append(syms.getZeroDigit());		for (int i = minimumFractionDigits; i < maximumFractionDigits; ++i)			mainPattern.append(syms.getDigit());    if (useExponentialNotation)      {			mainPattern.append(syms.getExponential());			for (int i = 0; i < minExponentDigits; ++i)				mainPattern.append(syms.getZeroDigit());			if (minExponentDigits == 0)				mainPattern.append(syms.getDigit());		}		String main = mainPattern.toString();    String patChars = patternChars (syms);		mainPattern.setLength(0);    quoteFix (mainPattern, positivePrefix, patChars);		mainPattern.append(main);    quoteFix (mainPattern, positiveSuffix, patChars);    if (negativePrefix != null)      {	quoteFix (mainPattern, negativePrefix, patChars);			mainPattern.append(main);	quoteFix (mainPattern, negativeSuffix, patChars);		}		return mainPattern.toString();	}