@@ -27,7 +27,7 @@ public enum Operator {
2727
2828 private final String name ;
2929
30- private Operator (String name ) {
30+ Operator (String name ) {
3131 this .name = name ;
3232 }
3333
@@ -36,7 +36,8 @@ public String getName() {
3636 }
3737 }
3838
39- public final Node expr1 , expr2 ;
39+ public final Node expr1 ;
40+ public final Node expr2 ;
4041 public final Operator operation ;
4142
4243 public ConditionalExpression (Operator operation , Node expr1 , Node expr2 ) {
@@ -47,25 +48,20 @@ public ConditionalExpression(Operator operation, Node expr1, Node expr2) {
4748
4849 @ Override
4950 public Value eval () {
50- switch (operation ) {
51- case AND :
52- return NumberValue .fromBoolean ((expr1AsInt () != 0 ) && (expr2AsInt () != 0 ));
53- case OR :
54- return NumberValue .fromBoolean ((expr1AsInt () != 0 ) || (expr2AsInt () != 0 ));
55-
56- case NULL_COALESCE :
57- return nullCoalesce ();
58-
59- default :
60- return NumberValue .fromBoolean (evalAndCompare ());
61- }
51+ return switch (operation ) {
52+ case AND -> NumberValue .fromBoolean ((expr1AsInt () != 0 ) && (expr2AsInt () != 0 ));
53+ case OR -> NumberValue .fromBoolean ((expr1AsInt () != 0 ) || (expr2AsInt () != 0 ));
54+ case NULL_COALESCE -> nullCoalesce ();
55+ default -> NumberValue .fromBoolean (evalAndCompare ());
56+ };
6257 }
6358
6459 private boolean evalAndCompare () {
6560 final Value value1 = expr1 .eval ();
6661 final Value value2 = expr2 .eval ();
6762
68- double number1 , number2 ;
63+ double number1 ;
64+ double number2 ;
6965 if (value1 .type () == Types .NUMBER ) {
7066 number1 = value1 .asNumber ();
7167 number2 = value2 .asNumber ();
@@ -74,18 +70,15 @@ private boolean evalAndCompare() {
7470 number2 = 0 ;
7571 }
7672
77- switch (operation ) {
78- case EQUALS : return number1 == number2 ;
79- case NOT_EQUALS : return number1 != number2 ;
80-
81- case LT : return number1 < number2 ;
82- case LTEQ : return number1 <= number2 ;
83- case GT : return number1 > number2 ;
84- case GTEQ : return number1 >= number2 ;
85-
86- default :
87- throw new OperationIsNotSupportedException (operation );
88- }
73+ return switch (operation ) {
74+ case EQUALS -> number1 == number2 ;
75+ case NOT_EQUALS -> number1 != number2 ;
76+ case LT -> number1 < number2 ;
77+ case LTEQ -> number1 <= number2 ;
78+ case GT -> number1 > number2 ;
79+ case GTEQ -> number1 >= number2 ;
80+ default -> throw new OperationIsNotSupportedException (operation );
81+ };
8982 }
9083
9184 private Value nullCoalesce () {
0 commit comments