Skip to content

Commit 6ca617d

Browse files
authored
Merge pull request #30 from neo4j-contrib/java_format_fix
Preserve newline in generated Java concatenation code
2 parents 92b180d + 55d40ee commit 6ca617d

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

src/main/java/com/neo4j/sandbox/updater/Updater.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,11 @@ private String withToken(String repositoryUri) {
8888
}
8989

9090
private QueryIndenter newQueryFormatter(String languageName) {
91-
QueryIndenter queryIndenter;
9291
IndentDetector indentDetector = new IndentDetector();
9392
if (languageName.equals("java")) {
94-
queryIndenter = new JavaQueryIndenter(indentDetector);
95-
} else {
96-
queryIndenter = new DefaultQueryIndenter(indentDetector);
93+
return new JavaQueryIndenter(indentDetector);
9794
}
98-
return queryIndenter;
95+
return new DefaultQueryIndenter(indentDetector);
9996
}
10097

10198
private String substituteValues(Path sandboxRepositoryRootFolder,

src/main/java/com/neo4j/sandbox/updater/formatting/JavaQueryIndenter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public String indent(String initialCode, String newQuery) {
2525

2626
private String quote(String indentedQuery) {
2727
String prefix = "\"";
28-
String intermediateLineSuffix = "\" +";
28+
String intermediateLineSuffix = "\\n\" +";
2929
String finalSuffix = "\";";
3030
String[] lines = indentedQuery.split("\n");
3131
StringBuilder result = new StringBuilder();

src/test/java/com/neo4j/sandbox/updater/UpdaterIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ void updates_Java_example() throws Exception {
102102
" try (Session session = driver.session(SessionConfig.forDatabase(\"neo4j\"))) {\n" +
103103
"\n" +
104104
" String cypherQuery =\n" +
105-
" \"MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->\" +\n" +
106-
" \" (:Category {categoryName:$category})\" +\n" +
105+
" \"MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->\\n\" +\n" +
106+
" \" (:Category {categoryName:$category})\\n\" +\n" +
107107
" \" RETURN p.productName as product\";\n" +
108108
"\n" +
109109
" var result = session.readTransaction(\n" +
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.neo4j.sandbox.updater.formatting;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.assertj.core.api.Assertions.assertThat;
6+
7+
class JavaQueryIndenterTest {
8+
9+
private final JavaQueryIndenter indenter = new JavaQueryIndenter(new IndentDetector());
10+
11+
private final String templateQuery = "MATCH (m:Movie {title:$movie})<-[:RATED]-(u:User)-[:RATED]->(rec:Movie)\nRETURN distinct rec.title AS recommendation LIMIT 20";
12+
13+
@Test
14+
void includes_newlines_in_query_lines() {
15+
String multilineQuery = "MATCH (m:Merchant{name:$name})<-[:TO]-(:Transaction)<-[:PERFORMED]-(c:Client)\n" +
16+
"RETURN c.name as client";
17+
18+
String result = indenter.indent(templateQuery, multilineQuery);
19+
20+
assertThat(result).isEqualTo("MATCH (m:Merchant{name:$name})<-[:TO]-(:Transaction)<-[:PERFORMED]-(c:Client)\\n\" +\n" +
21+
"\"RETURN c.name as client\";");
22+
}
23+
}

0 commit comments

Comments
 (0)