Split individual lines into separate strings
authorJaroslav Tulach <jtulach@netbeans.org>
Mon, 27 Jan 2014 06:17:04 +0100
changeset 181145d8e7ac3015a
parent 18113 8c6054820dfa
child 18116 e6f2aba59183
Split individual lines into separate strings
project.jsjava/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBody.java
project.jsjava/test/unit/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBodyTest.java
     1.1 --- a/project.jsjava/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBody.java	Fri Jan 24 19:41:30 2014 +0100
     1.2 +++ b/project.jsjava/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBody.java	Mon Jan 27 06:17:04 2014 +0100
     1.3 @@ -162,7 +162,21 @@
     1.4              if (body.contains("@") && body.contains("::")) {
     1.5                  arr.add(make.Assignment(make.Identifier("javacall"), make.Literal(true)));
     1.6              }
     1.7 -            arr.add(make.Assignment(make.Identifier("body"), make.Literal(body)));
     1.8 +            ExpressionTree exp = null;
     1.9 +            final String[] lines = body.split("\n");
    1.10 +            for (int i = 0; i < lines.length; i++) {
    1.11 +                String line = lines[i];
    1.12 +                if (i < lines.length - 1) {
    1.13 +                    line = line + "\n";
    1.14 +                }
    1.15 +                if (exp == null) {
    1.16 +                    exp = make.Literal(line);
    1.17 +                } else {
    1.18 +                    exp = make.Binary(Kind.PLUS, exp, make.Literal(line));
    1.19 +                }
    1.20 +                
    1.21 +            }
    1.22 +            arr.add(make.Assignment(make.Identifier("body"), exp));
    1.23              
    1.24              AnnotationTree jsBody = make.Annotation(make.QualIdent("net.java.html.js.JavaScriptBody"), arr);
    1.25              ctx.getWorkingCopy().rewrite(mt.getModifiers(), make.addModifiersAnnotation(mt.getModifiers(), jsBody));
     2.1 --- a/project.jsjava/test/unit/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBodyTest.java	Fri Jan 24 19:41:30 2014 +0100
     2.2 +++ b/project.jsjava/test/unit/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBodyTest.java	Mon Jan 27 06:17:04 2014 +0100
     2.3 @@ -81,7 +81,7 @@
     2.4              + "class Test {\n"
     2.5              + "\n"
     2.6              + "    /** javadoc */\n"
     2.7 -            + "    @JavaScriptBody(args = {}, body = \"\\n        // body\\n  \")\n"
     2.8 +            + "    @JavaScriptBody(args = {}, body = \"\\n\" + \"        // body\\n\" + \" \")\n"
     2.9              + "    public native void test();\n"
    2.10              + "}\n";
    2.11  
    2.12 @@ -112,7 +112,7 @@
    2.13              + "    /** javadoc */\n"
    2.14              + "    @SuppressWarnings(\"unused\")\n"
    2.15              + "    // comment\n"
    2.16 -            + "    @JavaScriptBody(args = {}, body = \"\\n        // body\\n  \")\n"
    2.17 +            + "    @JavaScriptBody(args = {}, body = \"\\n\" + \"        // body\\n\" + \"  \")\n"
    2.18              + "    public native void test();\n"
    2.19              + "}\n";
    2.20          HintTest.create()
    2.21 @@ -147,8 +147,8 @@
    2.22              + "    /** javadoc */\n"
    2.23              + "    @SuppressWarnings(\"unused\")\n"
    2.24              + "    // comment\n"
    2.25 -            + "    @JavaScriptBody(args = {\"builder\"}, javacall = true, body = \"\\n"
    2.26 -            + "        @org.netbeans.modules.project.jsjava.JSNI2JavaScriptBodyTest::append(Ljava/lang/StringBuilder;Ljava/lang/String;)(builder, 'Ahoj');\\n  \")\n"
    2.27 +            + "    @JavaScriptBody(args = {\"builder\"}, javacall = true, body = \"\\n\" + "
    2.28 +            + "    \"    @org.netbeans.modules.project.jsjava.JSNI2JavaScriptBodyTest::append(Ljava/lang/StringBuilder;Ljava/lang/String;)(builder, 'Ahoj');\\n\" + \"  \")\n"
    2.29              + "    public native void test(String builder);\n"
    2.30              + "}\n";
    2.31          HintTest.create()
    2.32 @@ -168,7 +168,7 @@
    2.33              + "    @SuppressWarnings(\"unused\")\n"
    2.34              + "    // comment\n"
    2.35              + "    public native void test(String builder) /*-{\n"
    2.36 -            + "        @java.lang.StringBuilder::append(Ljava/lang/String;)(builder, 'Ahoj');\n"
    2.37 +            + "        builder.@java.lang.StringBuilder::append(Ljava/lang/String;)('Ahoj');\n"
    2.38              + "    }-*/;\n"
    2.39              + "}\n";
    2.40  
    2.41 @@ -178,8 +178,8 @@
    2.42              + "    /** javadoc */\n"
    2.43              + "    @SuppressWarnings(\"unused\")\n"
    2.44              + "    // comment\n"
    2.45 -            + "    @JavaScriptBody(args = {\"builder\"}, javacall = true, body = \"\\n"
    2.46 -            + "        @java.lang.StringBuilder::append(Ljava/lang/String;)(builder, 'Ahoj');\\n    \")"
    2.47 +            + "    @JavaScriptBody(args = {\"builder\"}, javacall = true, body = \"\\n\" + \""
    2.48 +            + "        builder.@java.lang.StringBuilder::append(Ljava/lang/String;)('Ahoj');\\n\" + \"    \")"
    2.49              + "    public native void test(String builder);\n"
    2.50              + "}\n";
    2.51          HintTest.create()