Use switch patterns in LeafrefSpecificationSupport 40/112140/1 master
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 13 Jun 2024 16:50:47 +0000 (18:50 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 13 Jun 2024 16:50:47 +0000 (18:50 +0200)
We are looking for two specific statements, express that in a switch.

Change-Id: I7b117373a8edc21b0408ca32f01234b0e01743fd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/LeafrefSpecificationSupport.java

index 290faaef5eaca84db6eee3fcb9b4a1f3fde8b25a..a06def1e4160ea8d5212a35f6e127c0d71744532 100644 (file)
@@ -17,7 +17,6 @@ import org.opendaylight.yangtools.yang.model.api.stmt.PathEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.LeafrefSpecification;
 import org.opendaylight.yangtools.yang.model.ri.type.BaseTypes;
-import org.opendaylight.yangtools.yang.model.ri.type.LeafrefTypeBuilder;
 import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
 import org.opendaylight.yangtools.yang.parser.spi.meta.BoundStmtCtx;
 import org.opendaylight.yangtools.yang.parser.spi.meta.CommonStmtCtx;
@@ -69,13 +68,15 @@ final class LeafrefSpecificationSupport extends AbstractTypeSupport<LeafrefSpeci
             throw noPath(stmt);
         }
 
-        final LeafrefTypeBuilder builder = BaseTypes.leafrefTypeBuilder(stmt.argumentAsTypeQName());
+        final var builder = BaseTypes.leafrefTypeBuilder(stmt.argumentAsTypeQName());
 
-        for (final EffectiveStatement<?, ?> subStmt : substatements) {
-            if (subStmt instanceof PathEffectiveStatement) {
-                builder.setPathStatement(((PathEffectiveStatement) subStmt).argument());
-            } else if (subStmt instanceof RequireInstanceEffectiveStatement) {
-                builder.setRequireInstance(((RequireInstanceEffectiveStatement)subStmt).argument());
+        for (var subStmt : substatements) {
+            switch (subStmt) {
+                case PathEffectiveStatement path -> builder.setPathStatement(path.argument());
+                case RequireInstanceEffectiveStatement ries -> builder.setRequireInstance(ries.argument());
+                case null, default -> {
+                    // No-op
+                }
             }
         }