in generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java [514:569]
final void encodeObject(Object a, boolean weak, StringBuilder sb, int[] vmId) {
if (a == null) {
sb.append(Strings.v_null());
} else if (a.getClass().isArray()) {
int len = Array.getLength(a);
sb.append('[');
String sep = "";
for (int i = 0; i < len; i++) {
Object o = Array.get(a, i);
sb.append(sep);
encodeObject(o, weak, sb, null);
sep = ",";
}
sb.append(']');
} else if (a instanceof Number) {
sb.append(a.toString());
} else if (a instanceof String) {
sb.append('"');
String s = (String)a;
int len = s.length();
for (int i = 0; i < len; i++) {
char ch = s.charAt(i);
switch (ch) {
case '\\': sb.append("\\\\"); break;
case '\n': sb.append("\\n"); break;
case '\"': sb.append("\\\""); break;
default:
sb.append(ch);
break;
}
}
sb.append('"');
} else if (a instanceof Boolean) {
sb.append(a.toString());
} else if (a instanceof Character) {
sb.append((int)(Character)a);
} else if (a instanceof JSObject) {
sb.append("ds(").append(key).append(").o(").append(((JSObject) a).index).append(")");
} else {
if (vmId != null) {
sb.append("ds(").append(key).append(").v(").append(vmId[0]).append(")");
} else {
String[] valueOf = { null };
sb.append("ds(").append(key).append(").j(").append(registerObject(a, weak, null, valueOf));
sb.append(",");
encodeObject(valueOf[0], weak, sb, null);
if (a instanceof Object[]) {
for (Object n : ((Object[])a)) {
sb.append(",");
encodeObject(n, weak, sb, null);
}
}
sb.append(")");
}
}
}