Speed up NormalizedNodes.getDirectChild() 49/93349/1
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 25 Oct 2020 20:05:39 +0000 (21:05 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 25 Oct 2020 20:06:14 +0000 (21:06 +0100)
Deal with positive matches first, let ValueNode be dealt with using
the default path.

Change-Id: If74b9ee05f0a4b5fb867e4b2db5f53bb06728e38
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/NormalizedNodes.java

index 0ff92be6082f94dc7afbc4f740fbabda2471c92c..5706bd327805aea2d10a164655c8fffb9bb0be4a 100644 (file)
@@ -108,15 +108,14 @@ public final class NormalizedNodes {
     @SuppressWarnings({ "unchecked", "rawtypes" })
     public static Optional<NormalizedNode<?, ?>> getDirectChild(final NormalizedNode<?, ?> node,
             final PathArgument pathArg) {
-        if (node instanceof ValueNode) {
-            return Optional.empty();
-        } else if (node instanceof DataContainerNode) {
+        if (node instanceof DataContainerNode) {
             return (Optional) ((DataContainerNode<?>) node).getChild(pathArg);
         } else if (node instanceof MapNode && pathArg instanceof NodeIdentifierWithPredicates) {
             return (Optional) ((MapNode) node).getChild((NodeIdentifierWithPredicates) pathArg);
         } else if (node instanceof LeafSetNode && pathArg instanceof NodeWithValue) {
             return (Optional) ((LeafSetNode<?>) node).getChild((NodeWithValue) pathArg);
         }
+        // Anything else, including ValueNode
         return Optional.empty();
     }