Use instanceof pattern match in yang-model-export 78/102878/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 26 Oct 2022 09:48:11 +0000 (11:48 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 26 Oct 2022 09:54:17 +0000 (11:54 +0200)
This allows for more exhaustive checks and makes code a bit more clear.

Change-Id: I50c8ab52f39b398890621cdd474a0f85aef7f181
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
model/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/StatementPrefixResolver.java
model/yang-model-export/src/main/java/org/opendaylight/yangtools/yang/model/export/YinXMLEventReader.java

index bf242599c7d6c6e2d71bee55597da98f0c91ad10..b9432312b770e807bada3ebc7a840f1ba460704e 100644 (file)
@@ -11,6 +11,7 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Verify.verify;
 import static java.util.Objects.requireNonNull;
 
+import com.google.common.base.VerifyException;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableMap;
@@ -170,14 +171,16 @@ final class StatementPrefixResolver {
     }
 
     private static Optional<String> decodeEntry(final Object entry, final DeclaredStatement<?> stmt) {
-        if (entry instanceof String) {
-            return Optional.of((String)entry);
+        if (entry instanceof String str) {
+            return Optional.of(str);
+        } else if (entry instanceof Conflict conflict) {
+            final var prefix = conflict.findPrefix(stmt);
+            checkArgument(prefix != null, "Failed to find prefix for statement %s", stmt);
+            verify(!prefix.isEmpty(), "Empty prefix for statement %s", stmt);
+            return Optional.of(prefix);
+        } else {
+            throw new VerifyException("Unexpected entry " + entry);
         }
-        verify(entry instanceof Conflict, "Unexpected entry %s", entry);
-        final String prefix = ((Conflict) entry).findPrefix(stmt);
-        checkArgument(prefix != null, "Failed to find prefix for statement %s", stmt);
-        verify(!prefix.isEmpty(), "Empty prefix for statement %s", stmt);
-        return Optional.of(prefix);
     }
 
     private static void indexPrefixes(final Map<String, Multimap<QNameModule, EffectiveStatement<?, ?>>> map,
index c3abcc1665a94f1ec4bb25664ad89f3f841c1640..75b6f6d0f69fc54375e7f28f59db9f8955a17f7a 100644 (file)
@@ -125,10 +125,10 @@ final class YinXMLEventReader implements XMLEventReader {
         }
 
         current = next();
-        if (!(current instanceof Characters)) {
+        if (!(current instanceof Characters chars)) {
             throw new XMLStreamException("Encountered non-text event " + current);
         }
-        final String ret = ((Characters)current).getData();
+        final String ret = chars.getData();
 
         current = next();
         if (!(current instanceof EndElement)) {