return String.valueOf(value);
boolean isGroupDefault = (groupValue instanceof DefaultValue); boolean isPointDefault = (pointValue instanceof DefaultValue);  if  (!isPointDefault && isGroupDefault) { env.warning(L.l("wrong parameter count")); return null; }  String pattern;  char point = '.';  if (!pointValue.isNull()) { String pointString = pointValue.toString();  point =  (pointString.length() == 0) ? 0 : pointString.charAt(0); }  char group = ',';  if (!groupValue.isNull()) { String groupString = groupValue.toString();  group = (groupString.length() == 0) ? 0 : groupString.charAt(0); }  if (decimals > 0) { StringBuilder patternBuilder = new StringBuilder(6 + decimals);  patternBuilder.append(group == 0 ? "###0." : "#,##0.");  for (int i = 0; i < decimals; i++) patternBuilder.append('0');  pattern = patternBuilder.toString(); } else { pattern = group == 0 ? "###0" : "#,##0"; }  DecimalFormatSymbols decimalFormatSymbols;  if (point == '.' && group == ',') decimalFormatSymbols = DEFAULT_DECIMAL_FORMAT_SYMBOLS; else { decimalFormatSymbols = new DecimalFormatSymbols(); decimalFormatSymbols.setDecimalSeparator(point); decimalFormatSymbols.setGroupingSeparator(group); decimalFormatSymbols.setZeroDigit('0'); }  DecimalFormat format = new DecimalFormat(pattern, decimalFormatSymbols);  String result = format.format(value);  if (point == 0 && decimals > 0) {   int i = result.lastIndexOf(point);  return result.substring(0, i) + result.substring(i + 1, result.length()); } else return result;
  public static String number_format(double value,				     @Optional int decimals,				     @Optional String point,				     @Optional String group)  {    // XXX: stub    return String.valueOf(value);  }