Further optimize OrderedBy effective statement dispatch 74/87274/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 27 Jan 2020 20:26:14 +0000 (21:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 29 Jan 2020 16:14:46 +0000 (17:14 +0100)
Comparing both argument and declared instance is not necessary.
We are using identity comparison, so just do that.

Change-Id: I6e28b9013ae2d056907b52f87cd2813bbcdd23c9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 40132b0512978eecbeae6133ce357b8beb08a5df)

yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/OrderedByStatementSupport.java

index e1f02af77bed1cf8c7dd29b2430db782f85192df..223b6a44ca3fa7144cc360b0b9802d849a5a050f 100644 (file)
@@ -97,23 +97,13 @@ public final class OrderedByStatementSupport
             final OrderedByStatement declared) {
         // Aggressively reuse effective instances which are backed by the corresponding empty declared instance, as this
         // is the case unless there is a weird extension in use.
-        final String argument = declared.getValue();
-        switch (argument) {
-            case "system":
-                if (EMPTY_SYSTEM_DECL.equals(declared)) {
-                    return EMPTY_SYSTEM_EFF;
-                }
-                break;
-            case "user":
-                if (EMPTY_USER_DECL.equals(declared)) {
-                    return EMPTY_USER_EFF;
-                }
-                break;
-            default:
-                throw new IllegalStateException("Unhandled argument " + argument);
+        if (EMPTY_USER_DECL.equals(declared)) {
+            // Most likely to be seen (as system is the default)
+            return EMPTY_USER_EFF;
+        } else if (EMPTY_SYSTEM_DECL.equals(declared)) {
+            return EMPTY_SYSTEM_EFF;
+        } else {
+            return new EmptyOrderedByEffectiveStatement(declared);
         }
-
-        // Declared instance was non-empty, which can happen with extensions
-        return new EmptyOrderedByEffectiveStatement(declared);
     }
 }