in json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java [1445:1501]
private boolean generateJSONReceiveBody(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) {
boolean error = false;
body.append(
" case " + index + ": {\n" +
" if (type == 2) { /* on error */\n" +
" Exception ex = (Exception)data;\n"
);
if (onR.onError().isEmpty()) {
body.append(
" ex.printStackTrace();\n"
);
} else {
int errorParamsLength = findOnError(e, ((TypeElement)clazz), onR.onError(), className);
error = errorParamsLength < 0;
body.append(" ").append(inPckName(clazz, false)).append(".").append(onR.onError()).append("(");
body.append("model, ex");
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, false)).append(".").append(n).append("(");
String sep = "";
for (String arg : args) {
body.append(sep);
body.append(arg);
sep = ", ";
}
body.append(");\n");
}
body.append("""
return;
}