private boolean generateWSReceiveBody()

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