X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fleafref%2FLeafRefValidation.java;h=bf1433203f84f0e8eda2b92ae5778dc851d07bba;hb=4e0cbdcf9b628ca9eeb94c924854ca25e9c8f73d;hp=5de4f032ba03ab0ea1c9439d51fe1d45232f2297;hpb=2e5aa3f65c94a36a2f94fc4ee679a851e6f01ca5;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefValidation.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefValidation.java index 5de4f032ba..bf1433203f 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefValidation.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefValidation.java @@ -390,9 +390,13 @@ public final class LeafRefValidation { final YangInstanceIdentifier current) { final Optional> child = parent.getChild(arg); if (!child.isPresent()) { - for (final DataContainerChild choice : parent.getValue()) { - if (choice instanceof ChoiceNode) { - addValues(values, choice, nodePredicates, path, current); + // FIXME: YANGTOOLS-901. We have SchemaContext nearby, hence we should be able to cache how to get + // to the leaf with with specified QName, without having to iterate through Choices/Augmentations. + // That perhaps means we should not have QNameWithPredicates, but NodeIdentifierWithPredicates as + // the path specification. + for (final DataContainerChild mixin : parent.getValue()) { + if (mixin instanceof AugmentationNode || mixin instanceof ChoiceNode) { + addValues(values, mixin, nodePredicates, path, current); } } } else {