switch (type) {
case DATETIME_CODE:
try {
valueStr = XMLSystemFunctions.convertToAtomicValue(value).getStringValue();
} catch (TransformerException e) {
throw new TransformationException(e, e.getMessage());
}
break;
case DOUBLE_CODE:
valueStr = doubleToDouble((Double)value);
break;
case FLOAT_CODE:
valueStr = floatToFloat((Float)value);
break;
case GDAY_CODE:
valueStr = bigIntegerTogDay((BigInteger)value);
break;
case GMONTH_CODE:
valueStr = bigIntegerTogMonth((BigInteger)value);
break;
case GMONTHDAY_CODE:
valueStr = FunctionMethods.format((Timestamp)value, GMONTHDAY_FORMAT);
break;
case GYEAR_CODE:
valueStr = FunctionMethods.format((BigInteger)value, GYEAR_FORMAT);
break;
case GYEARMONTH_CODE:
DateTimeValue dtv;
try {
dtv = ((DateTimeValue)XMLSystemFunctions.convertToAtomicValue(value));
} catch (TransformerException e) {
throw new TransformationException(e, e.getMessage());
}
valueStr = new GYearMonthValue(dtv.getYear(), dtv.getMonth(), dtv.getTimezoneInMinutes()).getStringValue();
break;
default:
valueStr = defaultTranslation(value);