Skip to content

Commit 901ba81

Browse files
OpenRewrite recipe best practices
Use this link to re-run the recipe: https://app.moderne.io/recipes/org.openrewrite.recipes.rewrite.OpenRewriteRecipeBestPractices?organizationId=QUxML01vZGVybmUvTW9kZXJuZSArIE9wZW5SZXdyaXRl Co-authored-by: Moderne <team@moderne.io>
1 parent 927f25d commit 901ba81

7 files changed

Lines changed: 16 additions & 34 deletions

File tree

src/main/java/org/openrewrite/staticanalysis/MinimumSwitchCases.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,11 @@ public J visitSwitch(J.Switch switch_, ExecutionContext ctx) {
119119
if (isDefault(cases[0])) {
120120
return switch_.withMarkers(switch_.getMarkers().add(new DefaultOnly()));
121121
}
122-
generatedIf = JavaTemplate.builder("if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n}").build()
123-
.apply(getCursor(), switch_.getCoordinates().replace(), cases[0].getPattern(), tree);
122+
generatedIf = JavaTemplate.apply("if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n}", getCursor(), switch_.getCoordinates().replace(), cases[0].getPattern(), tree);
124123
} else if (isDefault(cases[1])) {
125-
generatedIf = JavaTemplate.builder("if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n} else {\n}").build()
126-
.apply(getCursor(), switch_.getCoordinates().replace(), cases[0].getPattern(), tree);
124+
generatedIf = JavaTemplate.apply("if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n} else {\n}", getCursor(), switch_.getCoordinates().replace(), cases[0].getPattern(), tree);
127125
} else {
128-
generatedIf = JavaTemplate.builder("if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n} else if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n}").build()
129-
.apply(getCursor(), switch_.getCoordinates().replace(), cases[0].getPattern(), tree, cases[1].getPattern(), tree);
126+
generatedIf = JavaTemplate.apply("if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n} else if(#{any(java.lang.String)}.equals(#{any(java.lang.String)})) {\n}", getCursor(), switch_.getCoordinates().replace(), cases[0].getPattern(), tree, cases[1].getPattern(), tree);
130127
}
131128
} else if (switchesOnEnum(switch_)) {
132129
if (cases[1] == null && isDefault(cases[0])) {
@@ -154,14 +151,11 @@ public J visitSwitch(J.Switch switch_, ExecutionContext ctx) {
154151
if (isDefault(cases[0])) {
155152
return switch_.withMarkers(switch_.getMarkers().add(new DefaultOnly()));
156153
}
157-
generatedIf = JavaTemplate.builder("if(#{any()} == #{any()}) {\n}").build()
158-
.apply(getCursor(), switch_.getCoordinates().replace(), tree, cases[0].getPattern());
154+
generatedIf = JavaTemplate.apply("if(#{any()} == #{any()}) {\n}", getCursor(), switch_.getCoordinates().replace(), tree, cases[0].getPattern());
159155
} else if (isDefault(cases[1])) {
160-
generatedIf = JavaTemplate.builder("if(#{any()} == #{any()}) {\n} else {\n}").build()
161-
.apply(getCursor(), switch_.getCoordinates().replace(), tree, cases[0].getPattern());
156+
generatedIf = JavaTemplate.apply("if(#{any()} == #{any()}) {\n} else {\n}", getCursor(), switch_.getCoordinates().replace(), tree, cases[0].getPattern());
162157
} else {
163-
generatedIf = JavaTemplate.builder("if(#{any()} == #{any()}) {\n} else if(#{any()} == #{any()}) {\n}").build()
164-
.apply(getCursor(), switch_.getCoordinates().replace(), tree, cases[0].getPattern(), tree, cases[1].getPattern());
158+
generatedIf = JavaTemplate.apply("if(#{any()} == #{any()}) {\n} else if(#{any()} == #{any()}) {\n}", getCursor(), switch_.getCoordinates().replace(), tree, cases[0].getPattern(), tree, cases[1].getPattern());
165159
}
166160
}
167161

src/main/java/org/openrewrite/staticanalysis/RemoveEmptyJavaDocParameters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration method, Ex
5656
md = md.withComments(ListUtils.map(md.getComments(), it -> {
5757
if (it instanceof Javadoc.DocComment) {
5858
Javadoc.DocComment docComment = (Javadoc.DocComment) it;
59-
return (Comment) removeEmptyParamVisitor.visitDocComment(docComment, ctx);
59+
return (Comment) removeEmptyParamVisitor.visit(docComment, ctx, getCursor().getParentTreeCursor());
6060
}
6161
return it;
6262
}));

src/main/java/org/openrewrite/staticanalysis/SimplifyBooleanExpression.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@
1919
import org.jspecify.annotations.Nullable;
2020
import org.openrewrite.ExecutionContext;
2121
import org.openrewrite.Recipe;
22-
import org.openrewrite.SourceFile;
2322
import org.openrewrite.Tree;
2423
import org.openrewrite.TreeVisitor;
2524
import org.openrewrite.java.cleanup.SimplifyBooleanExpressionVisitor;
26-
import org.openrewrite.java.tree.Expression;
2725
import org.openrewrite.java.tree.J;
28-
import org.openrewrite.java.tree.JavaType;
2926
import org.openrewrite.kotlin.marker.IsNullSafe;
3027

3128
import java.util.Set;

src/main/java/org/openrewrite/staticanalysis/SimplifyBooleanReturn.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,10 @@ public J visitIf(J.If iff, ExecutionContext ctx) {
114114
if (ifCondition instanceof J.Unary) {
115115
J.Unary u = (J.Unary) ifCondition;
116116
if (u.getOperator() == J.Unary.Type.Not) {
117-
return JavaTemplate.builder("return #{any(boolean)};")
118-
.build()
119-
.apply(updateCursor(i), i.getCoordinates().replace(), u.getExpression());
117+
return JavaTemplate.apply("return #{any(boolean)};", updateCursor(i), i.getCoordinates().replace(), u.getExpression());
120118
}
121119
}
122-
return JavaTemplate.builder("return !(#{any(boolean)});")
123-
.build()
124-
.apply(updateCursor(i), i.getCoordinates().replace(), ifCondition);
120+
return JavaTemplate.apply("return !(#{any(boolean)});", updateCursor(i), i.getCoordinates().replace(), ifCondition);
125121
}
126122
}
127123
}

src/main/java/org/openrewrite/staticanalysis/SimplifyConsecutiveAssignments.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,14 +176,12 @@ private Statement combine(Cursor cursor, String op, Expression right) {
176176
if (s instanceof J.Assignment) {
177177
J.Assignment assign = (J.Assignment) s;
178178
// TODO if we had a `replace()` coordinate on every `Expression`, we wouldn't need the left side of this
179-
J.Assignment after = JavaTemplate.builder("o = (#{any()} #{} #{any()});").build()
180-
.apply(cursor, s.getCoordinates().replace(), assign.getAssignment(), op, right);
179+
J.Assignment after = JavaTemplate.apply("o = (#{any()} #{} #{any()});", cursor, s.getCoordinates().replace(), assign.getAssignment(), op, right);
181180
return assign.withAssignment(after.getAssignment());
182181
}
183182
if (s instanceof J.VariableDeclarations) {
184183
J.VariableDeclarations variables = (J.VariableDeclarations) s;
185-
J.Assignment after = JavaTemplate.builder("o = (#{any()} #{} #{any()});").build()
186-
.apply(cursor, s.getCoordinates().replace(), variables.getVariables().get(0).getInitializer(), op, right);
184+
J.Assignment after = JavaTemplate.apply("o = (#{any()} #{} #{any()});", cursor, s.getCoordinates().replace(), variables.getVariables().get(0).getInitializer(), op, right);
187185
return variables.withVariables(ListUtils.map(variables.getVariables(), (i, namedVar) -> i == 0 ?
188186
namedVar.withInitializer(after.getAssignment()) : namedVar));
189187
}

src/main/java/org/openrewrite/staticanalysis/WhileInsteadOfFor.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ public J visitForLoop(J.ForLoop forLoop, ExecutionContext ctx) {
4747
forLoop.getControl().getUpdate().get(0) instanceof J.Empty &&
4848
!(forLoop.getControl().getCondition() instanceof J.Empty)
4949
) {
50-
J.WhileLoop w = JavaTemplate.builder("while(#{any(boolean)}) {}")
51-
.build()
52-
.apply(getCursor(), forLoop.getCoordinates().replace(), forLoop.getControl().getCondition());
50+
J.WhileLoop w = JavaTemplate.apply("while(#{any(boolean)}) {}", getCursor(), forLoop.getCoordinates().replace(), forLoop.getControl().getCondition());
5351
return w.withBody(forLoop.getBody());
5452
}
5553
return super.visitForLoop(forLoop, ctx);

src/test/java/org/openrewrite/staticanalysis/csharp/JavaToCsharp.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424
import org.openrewrite.java.tree.Statement;
2525
import org.openrewrite.test.AdHocRecipe;
2626

27-
import java.util.Collections;
28-
27+
import static java.util.Collections.emptyList;
2928
import static org.openrewrite.test.RewriteTest.toRecipe;
3029

3130
public class JavaToCsharp {
@@ -51,9 +50,9 @@ private static Cs.CompilationUnit compilationUnit(J.CompilationUnit cu) {
5150
cu.getCharset().name(),
5251
cu.isCharsetBomMarked(),
5352
cu.getChecksum(),
54-
Collections.emptyList(),
55-
Collections.emptyList(),
56-
Collections.emptyList(),
53+
emptyList(),
54+
emptyList(),
55+
emptyList(),
5756
cu.getClasses().stream()
5857
.map(Statement.class::cast)
5958
.map(JRightPadded::build)

0 commit comments

Comments
 (0)