if (stateObject.isDecorated()) {
toText(stateObject);
}
else {
FunctionExpression expression = stateObject.getExpression();
// FUNC
appendIdentifier((expression != null) ? expression.getActualIdentifier() : FUNC, FUNC);
// (
if (shouldOutput(expression) || expression.hasLeftParenthesis()) {
writer.append(LEFT_PARENTHESIS);
}
else if (exactMatch && expression.hasSpaceAfterIdentifier()) {
writer.append(SPACE);
}
// Function name
if (stateObject.hasFunctionName()) {
writer.append(stateObject.getQuotedFunctionName());
if (shouldOutput(expression) || expression.hasComma()) {
writer.append(COMMA);
}
if (shouldOutput(expression) || expression.hasSpaceAfterComma()) {
writer.append(SPACE);
}
}
// Arguments
toStringChildren(stateObject, true);
// )
if (shouldOutput(expression) || expression.hasRightParenthesis()) {
writer.append(RIGHT_PARENTHESIS);
}
}
}