in json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java [1529:1603]
private boolean generateWSReceiveBody(int index, StringWriter method, StringBuilder body, OnReceive onR, ExecutableElement e, Element clazz, String className, boolean expectsList, String modelClass, String n, List<String> args, List<String> params, StringBuilder urlBefore, String jsonpVarName, StringBuilder urlAfter, String dataMirror, StringBuilder headers) {
body.append(
" case " + index + ": {\n" +
" if (type == 0) { /* on open */\n" +
" ").append(inPckName(clazz, true)).append(".").append(n).append("(");
{
String sep = "";
for (String arg : args) {
body.append(sep);
if (arg.startsWith("arr") || arg.startsWith("net.java.html.json.Models.asList")) {
body.append("null");
} else {
body.append(arg);
}
sep = ", ";
}
}
body.append(");\n");
body.append("""
return;
} else if (type == 2) { /* on error */
Exception value = (Exception)data;
""");
if (onR.onError().isEmpty()) {
body.append(
" value.printStackTrace();\n"
);
} else {
int errorParamsLength = findOnError(e, ((TypeElement)clazz), onR.onError(), className);
if (errorParamsLength < 0) {
return true;
}
body.append(" ").append(inPckName(clazz, true)).append(".").append(onR.onError()).append("(");
body.append("model, value");
for (int i = 2; i < errorParamsLength; i++) {
String arg = args.get(i);
body.append(", ");
if (arg.startsWith("arr") || arg.startsWith("java.util.Array")) {
body.append("null");
} else {
body.append(arg);
}
}
body.append(");\n");
}
body.append("""
return;
} else if (type == 1) {
Object[] ev = (Object[])data;
""");
if (expectsList) {
body.append(
" " + modelClass + "[] arr = new " + modelClass + "[ev.length];\n"
);
} else {
body.append(
" " + modelClass + "[] arr = { null };\n"
);
}
body.append(
" TYPE.copyJSON(model.proto.getContext(), ev, " + modelClass + ".class, arr);\n"
);
{
body.append(" ").append(inPckName(clazz, true)).append(".").append(n).append("(");
String sep = "";
for (String arg : args) {
body.append(sep);
body.append(arg);
sep = ", ";
}
body.append(");\n");
}
body.append("""
return;
}""");