Variable: org-babel-java--result-wrapper

org-babel-java--result-wrapper is a variable defined in ob-java.el.gz.

Value

"\n    public static String __toString(Object val) {\n        if (val instanceof String) {\n            return \"\\\"\" + val + \"\\\"\";\n        } else if (val == null) {\n            return \"null\";\n        } else if (val.getClass().isArray()) {\n            StringBuffer sb = new StringBuffer();\n            Object[] vals = (Object[])val;\n            sb.append(\"[\");\n            for (int ii=0; ii<vals.length; ii++) {\n                sb.append(__toString(vals[ii]));\n                if (ii<vals.length-1)\n                    sb.append(\",\");\n            }\n            sb.append(\"]\");\n            return sb.toString();\n        } else if (val instanceof List) {\n            StringBuffer sb = new StringBuffer();\n            List vals = (List)val;\n            sb.append(\"[\");\n            for (int ii=0; ii<vals.size(); ii++) {\n                sb.append(__toString(vals.get(ii)));\n                if (ii<vals.size()-1)\n                    sb.append(\",\");\n            }\n            sb.append(\"]\");\n            return sb.toString();\n        } else {\n            return String.valueOf(val);\n        }\n    }\n\n    public static void main(String[] args) throws IOException {\n        BufferedWriter output = new BufferedWriter(new FileWriter(\"%s\"));\n        output.write(__toString(_main(args)));\n        output.close();\n    }"

Documentation

Code to inject into a class so that we can capture the value it returns.

This implementation was inspired by ob-python, although not as elegant. This modified the source block to write out the value it wants to return to a temporary file so that ob-java can read it back. The name of the temporary file to write must be replaced in this string.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-java.el.gz
(defconst org-babel-java--result-wrapper "\n    public static String __toString(Object val) {
        if (val instanceof String) {
            return \"\\\"\" + val + \"\\\"\";
        } else if (val == null) {
            return \"null\";
        } else if (val.getClass().isArray()) {
            StringBuffer sb = new StringBuffer();
            Object[] vals = (Object[])val;
            sb.append(\"[\");
            for (int ii=0; ii<vals.length; ii++) {
                sb.append(__toString(vals[ii]));
                if (ii<vals.length-1)
                    sb.append(\",\");
            }
            sb.append(\"]\");
            return sb.toString();
        } else if (val instanceof List) {
            StringBuffer sb = new StringBuffer();
            List vals = (List)val;
            sb.append(\"[\");
            for (int ii=0; ii<vals.size(); ii++) {
                sb.append(__toString(vals.get(ii)));
                if (ii<vals.size()-1)
                    sb.append(\",\");
            }
            sb.append(\"]\");
            return sb.toString();
        } else {
            return String.valueOf(val);
        }
    }

    public static void main(String[] args) throws IOException {
        BufferedWriter output = new BufferedWriter(new FileWriter(\"%s\"));
        output.write(__toString(_main(args)));
        output.close();
    }"
  "Code to inject into a class so that we can capture the value it returns.
This implementation was inspired by ob-python, although not as
elegant.  This modified the source block to write out the value
it wants to return to a temporary file so that ob-java can read
it back.  The name of the temporary file to write must be
replaced in this string.")