From 8c08ae05535ab2179b54c1a4edd264079b34dbaf Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 10 Apr 2022 01:01:09 +0200 Subject: [PATCH] Use switch expression to dispatch operators We are switching on an enum, hence we can ditch the default case when we have an exhaustive expression. Change-Id: I6df494319383d8ae39a8a42152e94c190b2f1186 Signed-off-by: Robert Varga --- .../xpath/api/BigDecimalXPathMathSupport.java | 47 +++++-------------- .../xpath/api/DoubleXPathMathSupport.java | 47 +++++-------------- 2 files changed, 26 insertions(+), 68 deletions(-) diff --git a/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/BigDecimalXPathMathSupport.java b/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/BigDecimalXPathMathSupport.java index 437ff0dc50..9044c1d178 100644 --- a/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/BigDecimalXPathMathSupport.java +++ b/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/BigDecimalXPathMathSupport.java @@ -60,40 +60,19 @@ final class BigDecimalXPathMathSupport extends AbstractYangXPathMathSupport 0); - case GTE: - return YangBooleanConstantExpr.of(l.compareTo(r) >= 0); - case LT: - return YangBooleanConstantExpr.of(l.compareTo(r) < 0); - case LTE: - return YangBooleanConstantExpr.of(l.compareTo(r) <= 0); - case MINUS: - result = l.subtract(r); - break; - case MOD: - result = l.remainder(r); - break; - case MUL: - result = l.multiply(r); - break; - case NOT_EQUALS: - return YangBooleanConstantExpr.of(!l.equals(r)); - case PLUS: - result = l.add(r); - break; - default: - throw new IllegalStateException("Unhandled operator " + operator); - } - - return BigDecimalNumberExpr.of(result); + return switch (operator) { + case DIV -> BigDecimalNumberExpr.of(l.divide(r)); + case EQUALS -> YangBooleanConstantExpr.of(l.equals(r)); + case GT -> YangBooleanConstantExpr.of(l.compareTo(r) > 0); + case GTE -> YangBooleanConstantExpr.of(l.compareTo(r) >= 0); + case LT -> YangBooleanConstantExpr.of(l.compareTo(r) < 0); + case LTE -> YangBooleanConstantExpr.of(l.compareTo(r) <= 0); + case MINUS -> BigDecimalNumberExpr.of(l.subtract(r)); + case MOD -> BigDecimalNumberExpr.of(l.remainder(r)); + case MUL -> BigDecimalNumberExpr.of(l.multiply(r)); + case NOT_EQUALS -> YangBooleanConstantExpr.of(!l.equals(r)); + case PLUS -> BigDecimalNumberExpr.of(l.add(r)); + }; } @Override diff --git a/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/DoubleXPathMathSupport.java b/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/DoubleXPathMathSupport.java index 4662b72501..7aaf4c7ac5 100644 --- a/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/DoubleXPathMathSupport.java +++ b/xpath/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/DoubleXPathMathSupport.java @@ -37,40 +37,19 @@ final class DoubleXPathMathSupport extends AbstractYangXPathMathSupport r); - case GTE: - return YangBooleanConstantExpr.of(l >= r); - case LT: - return YangBooleanConstantExpr.of(l < r); - case LTE: - return YangBooleanConstantExpr.of(l <= r); - case MINUS: - result = l - r; - break; - case MOD: - result = l % r; - break; - case MUL: - result = l * r; - break; - case NOT_EQUALS: - return YangBooleanConstantExpr.of(!left.equals(right)); - case PLUS: - result = l + r; - break; - default: - throw new IllegalStateException("Unhandled operator " + operator); - } - - return DoubleNumberExpr.of(result); + return switch (operator) { + case DIV -> DoubleNumberExpr.of(l / r); + case EQUALS -> YangBooleanConstantExpr.of(left.equals(right)); + case GT -> YangBooleanConstantExpr.of(l > r); + case GTE -> YangBooleanConstantExpr.of(l >= r); + case LT -> YangBooleanConstantExpr.of(l < r); + case LTE -> YangBooleanConstantExpr.of(l <= r); + case MINUS -> DoubleNumberExpr.of(l - r); + case MOD -> DoubleNumberExpr.of(l % r); + case MUL -> DoubleNumberExpr.of(l * r); + case NOT_EQUALS -> YangBooleanConstantExpr.of(!left.equals(right)); + case PLUS -> DoubleNumberExpr.of(l + r); + }; } @Override -- 2.36.6