@@ -38,21 +38,25 @@ public boolean onResultFound(
3838 final Node node ,
3939 final Result result ) {
4040
41+ // handle the while case
4142 if (node instanceof WhileStmt ) {
42- return handleUnbracedStmt (context , cu , new UnbracedWhileStatement ((WhileStmt ) node ), result );
43- } else if (node .getParentNode ().isPresent () && node .getParentNode ().get () instanceof IfStmt ) {
44- return handleUnbracedStmt (
45- context , cu , new UnbracedIfStatement ((IfStmt ) node .getParentNode ().get ()), result );
43+ return handleUnbracedStmt (new UnbracedWhileStatement ((WhileStmt ) node ));
44+
45+ // handle the if case
46+ } else if (node .getParentNode ().isPresent ()
47+ && node .getParentNode ().get () instanceof IfStmt ifStmt ) {
48+ if (ifStmt .getThenStmt () == node ) {
49+ return handleUnbracedStmt (new UnbracedIfStatement (ifStmt ));
50+ // handle the else case
51+ } else if (ifStmt .getElseStmt ().isPresent () && ifStmt .getElseStmt ().get () == node ) {
52+ return handleUnbracedStmt (new UnbracedElseStatement (ifStmt ));
53+ }
4654 }
4755 return false ;
4856 }
4957
50- /** Handles the case where the {@link Node} is a while statement. */
51- private boolean handleUnbracedStmt (
52- final CodemodInvocationContext context ,
53- final CompilationUnit cu ,
54- final UnbracedStatement stmt ,
55- final Result result ) {
58+ /** Handles the case where the {@link Node} is a while unbracedStatement. */
59+ private boolean handleUnbracedStmt (final UnbracedStatement stmt ) {
5660 Node parentNode = stmt .getParentNode ();
5761 List <Node > childNodes = parentNode .getChildNodes ();
5862 int index = childNodes .indexOf (stmt .getStatement ());
@@ -139,4 +143,30 @@ public Statement getStatement() {
139143 return ifStmt ;
140144 }
141145 }
146+
147+ private record UnbracedElseStatement (IfStmt ifStmt ) implements UnbracedStatement {
148+ private UnbracedElseStatement {
149+ Objects .requireNonNull (ifStmt );
150+ }
151+
152+ @ Override
153+ public Node getParentNode () {
154+ return ifStmt .getParentNode ().get ();
155+ }
156+
157+ @ Override
158+ public Range getExistingSingleStatementRange () {
159+ return ifStmt .getElseStmt ().get ().getRange ().get ();
160+ }
161+
162+ @ Override
163+ public void addBraces () {
164+ ifStmt .setElseStmt (new BlockStmt (NodeList .nodeList (ifStmt .getElseStmt ().get ())));
165+ }
166+
167+ @ Override
168+ public Statement getStatement () {
169+ return ifStmt ;
170+ }
171+ }
142172}
0 commit comments