Optimize StmtContextUtils.isMandatoryNode() 00/104900/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Mar 2023 17:50:22 +0000 (18:50 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Mar 2023 19:10:26 +0000 (20:10 +0100)
Use instanceof pattern and a switch expression to remove an explicit
cast and make the implementation less verbose.

Change-Id: Ic4800aac65469565f4aead71a740f96aa3d126bf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit af5447de59826de9504b6b742a6fa7e1cf52a1cc)
(cherry picked from commit 24737704c2ae0b5f26df0891d36131c4ad7fa0ca)

parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java

index 9d62e62c88aee4e72564bd45145ebbd1422f8f09..f7c15881693dac59ef489ba5a8b735502d7aaa29 100644 (file)
@@ -275,21 +275,18 @@ public final class StmtContextUtils {
      *         according to RFC6020.
      */
     public static boolean isMandatoryNode(final StmtContext<?, ?, ?> stmtCtx) {
-        if (!(stmtCtx.publicDefinition() instanceof YangStmtMapping)) {
-            return false;
-        }
-        switch ((YangStmtMapping) stmtCtx.publicDefinition()) {
-            case LEAF:
-            case CHOICE:
-            case ANYXML:
-                return Boolean.TRUE.equals(firstSubstatementAttributeOf(stmtCtx, MandatoryStatement.class));
-            case LIST:
-            case LEAF_LIST:
-                final Integer minElements = firstSubstatementAttributeOf(stmtCtx, MinElementsStatement.class);
-                return minElements != null && minElements > 0;
-            default:
-                return false;
+        if (stmtCtx.publicDefinition() instanceof YangStmtMapping mapping) {
+            return switch (mapping) {
+                case LEAF, CHOICE, ANYXML -> Boolean.TRUE.equals(
+                    firstSubstatementAttributeOf(stmtCtx, MandatoryStatement.class));
+                case LIST, LEAF_LIST -> {
+                    final Integer minElements = firstSubstatementAttributeOf(stmtCtx, MinElementsStatement.class);
+                    yield minElements != null && minElements > 0;
+                }
+                default -> false;
+            };
         }
+        return false;
     }
 
     /**