Further optimize OrderedBy effective statement dispatch 80/87180/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 27 Jan 2020 20:26:14 +0000 (21:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 27 Jan 2020 23:44:56 +0000 (00:44 +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>
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/OrderedByStatementSupport.java

index 4a57a107b347891817ec39d844a28d6489b422da..5dbc8e1838c3c396ea630862d967264573f97a69 100644 (file)
@@ -105,23 +105,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 Ordering 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);
     }
 }