private boolean generateJSONReceiveBody()

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;
                          }