Suggested by Lahvac: Use make.Identifier on the whole, concatenated string to preserve new lines
authorJaroslav Tulach <jtulach@netbeans.org>
Tue, 28 Jan 2014 11:07:53 +0100
changeset 18121363fb381d03f
parent 18120 9f4662ea9190
child 18124 03e0b3965817
Suggested by Lahvac: Use make.Identifier on the whole, concatenated string to preserve new lines
project.jsjava/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBody.java
     1.1 --- a/project.jsjava/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBody.java	Tue Jan 28 11:07:12 2014 +0100
     1.2 +++ b/project.jsjava/src/org/netbeans/modules/project/jsjava/JSNI2JavaScriptBody.java	Tue Jan 28 11:07:53 2014 +0100
     1.3 @@ -57,6 +57,7 @@
     1.4  import static org.netbeans.api.java.lexer.JavaTokenId.JAVADOC_COMMENT;
     1.5  import static org.netbeans.api.java.lexer.JavaTokenId.LINE_COMMENT;
     1.6  import static org.netbeans.api.java.lexer.JavaTokenId.WHITESPACE;
     1.7 +import org.netbeans.api.java.source.Comment;
     1.8  import org.netbeans.api.java.source.CompilationInfo;
     1.9  import org.netbeans.api.java.source.TreeMaker;
    1.10  import org.netbeans.api.lexer.Token;
    1.11 @@ -162,21 +163,18 @@
    1.12              if (body.contains("@") && body.contains("::")) {
    1.13                  arr.add(make.Assignment(make.Identifier("javacall"), make.Literal(true)));
    1.14              }
    1.15 -            ExpressionTree exp = null;
    1.16              final String[] lines = body.split("\n");
    1.17 +            StringBuilder jsB = new StringBuilder();
    1.18 +            String sep = "\"";
    1.19              for (int i = 0; i < lines.length; i++) {
    1.20                  String line = lines[i];
    1.21                  if (i < lines.length - 1) {
    1.22 -                    line = line + "\n";
    1.23 +                    line = line + "\\n";
    1.24                  }
    1.25 -                if (exp == null) {
    1.26 -                    exp = make.Literal(line);
    1.27 -                } else {
    1.28 -                    exp = make.Binary(Kind.PLUS, exp, make.Literal(line));
    1.29 -                }
    1.30 -                
    1.31 +                jsB.append(sep).append(line).append("\"");
    1.32 +                sep = " + \n\"";
    1.33              }
    1.34 -            arr.add(make.Assignment(make.Identifier("body"), exp));
    1.35 +            arr.add(make.Assignment(make.Identifier("body"), make.Identifier(jsB.toString())));
    1.36              
    1.37              AnnotationTree jsBody = make.Annotation(make.QualIdent("net.java.html.js.JavaScriptBody"), arr);
    1.38              ctx.getWorkingCopy().rewrite(mt.getModifiers(), make.addModifiersAnnotation(mt.getModifiers(), jsBody));