Skip to content

Commit 0e972f5

Browse files
committed
Update for new J.Case API
See: - openrewrite/rewrite#4661
1 parent 4acfa89 commit 0e972f5

File tree

12 files changed

+45
-24
lines changed

12 files changed

+45
-24
lines changed

.run/RemotingServer.run.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<option name="ALTERNATIVE_JRE_PATH" value="17" />
44
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
55
<option name="MAIN_CLASS_NAME" value="org.openrewrite.remote.java.RemotingServer" />
6-
<module name="rewrite-python.rewrite-test-engine-remote.main" />
6+
<module name="rewrite-python.rewrite-python-remote.test" />
77
<method v="2">
88
<option name="Make" enabled="true" />
99
</method>
1010
</configuration>
11-
</component>
11+
</component>

rewrite-python-remote/src/main/java/org/openrewrite/python/remote/PythonReceiver.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -567,9 +567,10 @@ public J.Case visitCase(J.Case case_, ReceiverContext ctx) {
567567
case_ = case_.withPrefix(ctx.receiveNonNullNode(case_.getPrefix(), PythonReceiver::receiveSpace));
568568
case_ = case_.withMarkers(ctx.receiveNonNullNode(case_.getMarkers(), ctx::receiveMarkers));
569569
case_ = case_.withType(ctx.receiveNonNullValue(case_.getType(), J.Case.Type.class));
570-
case_ = case_.getPadding().withExpressions(ctx.receiveNonNullNode(case_.getPadding().getExpressions(), PythonReceiver::receiveContainer));
570+
case_ = case_.getPadding().withCaseLabels(ctx.receiveNonNullNode(case_.getPadding().getCaseLabels(), PythonReceiver::receiveContainer));
571571
case_ = case_.getPadding().withStatements(ctx.receiveNonNullNode(case_.getPadding().getStatements(), PythonReceiver::receiveContainer));
572572
case_ = case_.getPadding().withBody(ctx.receiveNode(case_.getPadding().getBody(), PythonReceiver::receiveRightPaddedTree));
573+
case_ = case_.withGuard(ctx.receiveNode(case_.getGuard(), ctx::receiveTree));
573574
return case_;
574575
}
575576

@@ -1783,7 +1784,8 @@ private static J.Case createJCase(ReceiverContext ctx) {
17831784
ctx.receiveNonNullValue(null, J.Case.Type.class),
17841785
ctx.receiveNonNullNode(null, PythonReceiver::receiveContainer),
17851786
ctx.receiveNonNullNode(null, PythonReceiver::receiveContainer),
1786-
ctx.receiveNode(null, PythonReceiver::receiveRightPaddedTree)
1787+
ctx.receiveNode(null, PythonReceiver::receiveRightPaddedTree),
1788+
ctx.receiveNode(null, ctx::receiveTree)
17871789
);
17881790
}
17891791

rewrite-python-remote/src/main/java/org/openrewrite/python/remote/PythonSender.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,9 +549,10 @@ public J.Case visitCase(J.Case case_, SenderContext ctx) {
549549
ctx.sendNode(case_, J.Case::getPrefix, PythonSender::sendSpace);
550550
ctx.sendNode(case_, J.Case::getMarkers, ctx::sendMarkers);
551551
ctx.sendValue(case_, J.Case::getType);
552-
ctx.sendNode(case_, e -> e.getPadding().getExpressions(), PythonSender::sendContainer);
552+
ctx.sendNode(case_, e -> e.getPadding().getCaseLabels(), PythonSender::sendContainer);
553553
ctx.sendNode(case_, e -> e.getPadding().getStatements(), PythonSender::sendContainer);
554554
ctx.sendNode(case_, e -> e.getPadding().getBody(), PythonSender::sendRightPadded);
555+
ctx.sendNode(case_, J.Case::getGuard, ctx::sendTree);
555556
return case_;
556557
}
557558

rewrite-python-remote/src/main/java/org/openrewrite/python/remote/PythonValidator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,9 +362,10 @@ public J.Break visitBreak(J.Break break_, P p) {
362362

363363
@Override
364364
public J.Case visitCase(J.Case case_, P p) {
365-
visitAndValidate(case_.getExpressions(), Expression.class, p);
365+
visitAndValidate(case_.getCaseLabels(), J.class, p);
366366
visitAndValidate(case_.getStatements(), Statement.class, p);
367367
visitAndValidate(case_.getBody(), J.class, p);
368+
visitAndValidate(case_.getGuard(), Expression.class, p);
368369
return case_;
369370
}
370371

rewrite-test-engine-remote/src/main/java/org/openrewrite/csharp/remote/package-info.java renamed to rewrite-test-engine-remote/src/main/java/org/openrewrite/python/remote/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
@NullMarked
1717
@NonNullFields
18-
package org.openrewrite.remote.csharp;
18+
package org.openrewrite.python.remote;
1919

2020
import org.jspecify.annotations.NullMarked;
2121
import org.openrewrite.internal.lang.NonNullFields;

rewrite/rewrite/java/remote/receiver.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,10 @@ def visit_case(self, case: Case, ctx: ReceiverContext) -> J:
124124
case = case.with_prefix(ctx.receive_node(case.prefix, JavaReceiver.receive_space))
125125
case = case.with_markers(ctx.receive_node(case.markers, ctx.receive_markers))
126126
case = case.with_type(ctx.receive_value(case.type, Case.Type))
127-
case = case.padding.with_expressions(ctx.receive_node(case.padding.expressions, JavaReceiver.receive_container))
127+
case = case.padding.with_case_labels(ctx.receive_node(case.padding.case_labels, JavaReceiver.receive_container))
128128
case = case.padding.with_statements(ctx.receive_node(case.padding.statements, JavaReceiver.receive_container))
129129
case = case.padding.with_body(ctx.receive_node(case.padding.body, JavaReceiver.receive_right_padded_tree))
130+
case = case.with_guard(ctx.receive_node(case.guard, ctx.receive_tree))
130131
return case
131132

132133
def visit_class_declaration(self, class_declaration: ClassDeclaration, ctx: ReceiverContext) -> J:
@@ -760,7 +761,8 @@ def create(self, type: str, ctx: ReceiverContext) -> Tree:
760761
ctx.receive_value(None, Case.Type),
761762
ctx.receive_node(None, JavaReceiver.receive_container),
762763
ctx.receive_node(None, JavaReceiver.receive_container),
763-
ctx.receive_node(None, JavaReceiver.receive_right_padded_tree)
764+
ctx.receive_node(None, JavaReceiver.receive_right_padded_tree),
765+
ctx.receive_node(None, ctx.receive_tree)
764766
)
765767

766768
if type in ["rewrite.java.tree.ClassDeclaration", "org.openrewrite.java.tree.J$ClassDeclaration"]:

rewrite/rewrite/java/remote/sender.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,10 @@ def visit_case(self, case: Case, ctx: SenderContext) -> J:
118118
ctx.send_node(case, attrgetter('_prefix'), JavaSender.send_space)
119119
ctx.send_node(case, attrgetter('_markers'), ctx.send_markers)
120120
ctx.send_value(case, attrgetter('_type'))
121-
ctx.send_node(case, attrgetter('_expressions'), JavaSender.send_container)
121+
ctx.send_node(case, attrgetter('_case_labels'), JavaSender.send_container)
122122
ctx.send_node(case, attrgetter('_statements'), JavaSender.send_container)
123123
ctx.send_node(case, attrgetter('_body'), JavaSender.send_right_padded)
124+
ctx.send_node(case, attrgetter('_guard'), ctx.send_tree)
124125
return case
125126

126127
def visit_class_declaration(self, class_declaration: ClassDeclaration, ctx: SenderContext) -> J:

rewrite/rewrite/java/tree.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -810,14 +810,14 @@ def with_markers(self, markers: Markers) -> Case:
810810
def with_type(self, type: Type) -> Case:
811811
return self if type is self._type else replace(self, _type=type)
812812

813-
_expressions: JContainer[Expression]
813+
_case_labels: JContainer[J]
814814

815815
@property
816-
def expressions(self) -> List[Expression]:
817-
return self._expressions.elements
816+
def case_labels(self) -> List[J]:
817+
return self._case_labels.elements
818818

819-
def with_expressions(self, expressions: List[Expression]) -> Case:
820-
return self.padding.with_expressions(JContainer.with_elements(self._expressions, expressions))
819+
def with_case_labels(self, case_labels: List[J]) -> Case:
820+
return self.padding.with_case_labels(JContainer.with_elements(self._case_labels, case_labels))
821821

822822
_statements: JContainer[Statement]
823823

@@ -837,6 +837,15 @@ def body(self) -> Optional[J]:
837837
def with_body(self, body: Optional[J]) -> Case:
838838
return self.padding.with_body(JRightPadded.with_element(self._body, body))
839839

840+
_guard: Optional[Expression]
841+
842+
@property
843+
def guard(self) -> Optional[Expression]:
844+
return self._guard
845+
846+
def with_guard(self, guard: Optional[Expression]) -> Case:
847+
return self if guard is self._guard else replace(self, _guard=guard)
848+
840849
class Type(Enum):
841850
Statement = 0
842851
Rule = 1
@@ -846,11 +855,11 @@ class PaddingHelper:
846855
_t: Case
847856

848857
@property
849-
def expressions(self) -> JContainer[Expression]:
850-
return self._t._expressions
858+
def case_labels(self) -> JContainer[J]:
859+
return self._t._case_labels
851860

852-
def with_expressions(self, expressions: JContainer[Expression]) -> Case:
853-
return self._t if self._t._expressions is expressions else replace(self._t, _expressions=expressions)
861+
def with_case_labels(self, case_labels: JContainer[J]) -> Case:
862+
return self._t if self._t._case_labels is case_labels else replace(self._t, _case_labels=case_labels)
854863

855864
@property
856865
def statements(self) -> JContainer[Statement]:

rewrite/rewrite/java/visitor.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,10 @@ def visit_case(self, case: Case, p: P) -> J:
144144
return temp_statement
145145
case = cast(Case, temp_statement)
146146
case = case.with_markers(self.visit_markers(case.markers, p))
147-
case = case.padding.with_expressions(self.visit_container(case.padding.expressions, JContainer.Location.CASE_EXPRESSION, p))
147+
case = case.padding.with_case_labels(self.visit_container(case.padding.case_labels, JContainer.Location.CASE_CASE_LABELS, p))
148148
case = case.padding.with_statements(self.visit_container(case.padding.statements, JContainer.Location.CASE, p))
149149
case = case.padding.with_body(self.visit_right_padded(case.padding.body, JRightPadded.Location.CASE_BODY, p))
150+
case = case.with_guard(self.visit_and_cast(case.guard, Expression, p))
150151
return case
151152

152153
def visit_class_declaration(self, class_declaration: ClassDeclaration, p: P) -> J:

rewrite/rewrite/python/_parser_visitor.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,8 @@ def visit_match_case(self, node):
865865
Markers.EMPTY
866866
),
867867
JContainer.empty(),
868-
self.__pad_right(self.__convert_block(node.body), Space.EMPTY)
868+
self.__pad_right(self.__convert_block(node.body), Space.EMPTY),
869+
None
869870
)
870871

871872
def visit_MatchValue(self, node):

rewrite/rewrite/python/remote/receiver.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,9 +432,10 @@ def visit_case(self, case: Case, ctx: ReceiverContext) -> J:
432432
case = case.with_prefix(ctx.receive_node(case.prefix, PythonReceiver.receive_space))
433433
case = case.with_markers(ctx.receive_node(case.markers, ctx.receive_markers))
434434
case = case.with_type(ctx.receive_value(case.type, Case.Type))
435-
case = case.padding.with_expressions(ctx.receive_node(case.padding.expressions, PythonReceiver.receive_container))
435+
case = case.padding.with_case_labels(ctx.receive_node(case.padding.case_labels, PythonReceiver.receive_container))
436436
case = case.padding.with_statements(ctx.receive_node(case.padding.statements, PythonReceiver.receive_container))
437437
case = case.padding.with_body(ctx.receive_node(case.padding.body, PythonReceiver.receive_right_padded_tree))
438+
case = case.with_guard(ctx.receive_node(case.guard, ctx.receive_tree))
438439
return case
439440

440441
def visit_class_declaration(self, class_declaration: ClassDeclaration, ctx: ReceiverContext) -> J:
@@ -1396,7 +1397,8 @@ def create(self, type: str, ctx: ReceiverContext) -> Tree:
13961397
ctx.receive_value(None, Case.Type),
13971398
ctx.receive_node(None, PythonReceiver.receive_container),
13981399
ctx.receive_node(None, PythonReceiver.receive_container),
1399-
ctx.receive_node(None, PythonReceiver.receive_right_padded_tree)
1400+
ctx.receive_node(None, PythonReceiver.receive_right_padded_tree),
1401+
ctx.receive_node(None, ctx.receive_tree)
14001402
)
14011403

14021404
if type in ["rewrite.python.tree.ClassDeclaration", "org.openrewrite.java.tree.J$ClassDeclaration"]:

rewrite/rewrite/python/remote/sender.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,10 @@ def visit_case(self, case: Case, ctx: SenderContext) -> J:
426426
ctx.send_node(case, attrgetter('_prefix'), PythonSender.send_space)
427427
ctx.send_node(case, attrgetter('_markers'), ctx.send_markers)
428428
ctx.send_value(case, attrgetter('_type'))
429-
ctx.send_node(case, attrgetter('_expressions'), PythonSender.send_container)
429+
ctx.send_node(case, attrgetter('_case_labels'), PythonSender.send_container)
430430
ctx.send_node(case, attrgetter('_statements'), PythonSender.send_container)
431431
ctx.send_node(case, attrgetter('_body'), PythonSender.send_right_padded)
432+
ctx.send_node(case, attrgetter('_guard'), ctx.send_tree)
432433
return case
433434

434435
def visit_class_declaration(self, class_declaration: ClassDeclaration, ctx: SenderContext) -> J:

0 commit comments

Comments
 (0)