void (Node node, StringBuilder sb) { if (node.target == ERROR_NODE) { sb.append(node.method); return; } else if (node.target != null) { appendNode(node.target, sb); sb.append('.'); } sb.append(node.method).append('('); boolean first = true; for (Object arg : (node.args == null ? ArrayUtilRt.EMPTY_OBJECT_ARRAY : node.args)) { if (first) first = false; else sb.append(',').append(' '); if (arg instanceof Node) { appendNode((Node)arg, sb); } else if (arg instanceof String) { sb.append('\"').append(StringUtil.escapeStringCharacters((String)arg)).append('\"'); } else if (arg instanceof Number) { sb.append(arg); } } sb.append(')'); }